2014-02-18 42 views
1

我正在嘗試自己編寫簡單的Intel HEX解析器。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 

檢查。我找不到一些限制。

回答

0
  1. 在我的實踐我從未遇到過重疊,所以我也有興趣知道這樣的事情,但更廣泛,考慮的情況下,重疊的任何記錄,不僅是下一個可能發生的時候。 intelhex Python library認爲這種情況是錯誤的。
  2. 這是非常具體的目標記憶,但它是很常見的發生。我正在爲微控制器開發固件,生成的十六進制文件有幾個內存區域。每個區域都以「擴展線性地址」記錄開始。
相關問題