我正在尝试自己编写简单的Intel HEX解析器。
阅读后http://en.wikipedia.org/wiki/Intel_HEX维基我还有一些问题。
1.地址可以重叠吗?我的意思是,这张支票总是正确的吗?
if (hexl[k]->address + hexl[k]->count > hexl[k+1]->address)
{
// These addresses are sorted
HEX_DEBUG("Addresses [%" PRIx16 "] and [%"PRIx16"]"
" are overlapping", hexl[k]->address,
hexl[k+1]->address);
return HEX_EOVERLAP;
}
2.用于加载到某些EPROM的HEX文件的地址之间是否存在间隙?我的意思是我应该使用吗
if (hexl[k]->address + hexl[k]->count > hexl[k+1]->address) {} // > comparison
or
if (hexl[k]->address + hexl[k]->count != hexl[k+1]->address) {} // != comparison
检查。我找不到一些限制。
- 在我的实践中,我从未遇到过重叠,所以我也很想知道这件事,但更广泛地说,考虑到这种情况,重叠可能发生在任何记录上,而不仅仅是下一个。intelhex Python库认为这种情况是错误的
- 这是非常具体的目标记忆,但它是非常常见的发生。我正在为微控制器开发固件,生成的十六进制文件有几个内存区域。每个区域都以"扩展线性地址"记录开头