免費論壇 繁體 | 簡體
Sclub交友聊天~加入聊天室當版主
分享
返回列表 回復 發帖

HEX檔格式

http://tw.myblog.yahoo.com/jw!mPx_EhyBGw7MhESxfTRt/article?mid=68

5.  PIC HEX 檔案格式如下
:[LL][AAAA][TT][DD....DD][CC]
其中:
    LL    表示該行中共有多少位元組資料:注意是位元組數。
    AAAA  表示該記錄中資料存放的首位址*2   !請特別注意是2倍首位址
    TT    表示該記錄的類型
          TT=0,資料記錄;比如“movlw 0xaa”這條指令對應的代碼是30AA,相應的HHHH表示為AA30;
          TT=1,文件結束;
          TT=2,擴展段位址記錄;
          TT=4,擴展線性位址記錄
          DDDD 表示該記錄中的資料,即對應指令編譯後的機器代碼,低8位在前,高8位在後
          CC   表示該記錄的校驗和,校驗規則是,本行中前面所有的位元組(兩個字元)表示的16進制數相加,再加上CC表示的16進制數,所得的和必須是256的整數倍,
即用16進制表示時末尾兩位都為0。也就是CC的16的補數。(15的補數+1)      

:020000021200EA

01h + NOT(02h + 00h + 00h + 02h + 12h + 00h).
                                          

//一般的code行
:10 0000 00 8301 0030 8A00 6E28 A000 0308 8301 B000 3D
// 附加
:02 07FC 00 6434 63 // eeprom
:08 4000 00 0100 0200 0300 0400 AE // __IDLOC(1234);
:02 400E 00 C93F A8  // __CONFIG(XT&UNPROTECT&PWRTEN&BOREN&WDTEN&MCLRDIS);
:10 4200 00 0100 0200 0300 0400 0500 0600 0700 0800 8A // __EEPROM_DATA(1, 2, 3, 4, 5, 6, 7, 8);
//文件結束
:00000001FF


configurationbits: 0x014c
ID LOCATION: 8284FFFF
對應的檔為
004000 823f 843f ff3f ff3f - 0000 0000 0000 4c 01
EEPROM 地址00-7f
__EEPROM_DATA(0x91, 0x26, 0x02, 0x00, 0xef, 0x25, 0xff, 0xff);
對應的檔為
004200 9100 2600 0200 0000 - ef00 2500 ff00 ff00

下面接著是 HEX文件
:0E 01A8 00 AB01 AC01 0800 8B17 0B17 8312 0800 87
:08 4000 00 0800 0200 0800 0400 A2 //__IDLOC(8284);
:02 400E 00 4C01 63 // __CONFIG(0x014c);
:10 4200 00 9100 2600 0200 0000 EF00 2500 FF00 FF00 E3
//__EEPROM_DATA(0x91, 0x26, 0x02, 0x00, 0xef, 0x25, 0xff, 0xff);


6. 有關於PICC不支持的器件的問題
在PICC 的使用過程中,有遇到它不支援的器件,可以仿照它原來的格式,按照相關的資料
手冊自己編寫相關的標頭檔,然後在設定檔內加上所要的器件描述。這樣 PICC就能編譯
了。比如:最新出的16F526,按照它的資料手冊編寫526的標頭檔,然後在設定檔內加上
以下幾句:
[16F526]
ARCH=PIC12
PROCID=F526
ROMSIZE=3FF
BANKS=4
RAMBANK=0D,1F
RAMBANK=30,3F
RAMBANK=50,5F
RAMBANK=70,7F
COMMON=0D,0F
DATABANK=1

如果在PIC.h內再加上:
#if defined(_16F526)
#i nclude <pic16f526.h>
#endif

這樣就能像普通晶片一樣編譯了。

例如:PIC16F616的設定檔如下:
[16F616]
MAKE=MICROCHIP
ARCH=PIC14
PROCID=F616
ROMSIZE=800
BANKS=2
RAMBANK=20-7F
RAMBANK=A0-BF
COMMON=70-7F

解決方法:
  a. 將pic16f616.h 檔拷貝到
      ...\HT-PIC\include
或    ...\HI-TECH Software\PICC\include
  b. 打開
      ...\HT-PIC\lib 中的icinfo.ini設定檔,將如下語句添加其中
或    ...\HI-TECH Software\PICC\LITE\9.60\dat 中的picc-lite.ini設定檔,將如下語句添加其中
     [16F616]
     MAKE=MICROCHIP
     ARCH=PIC14
     PROCID=F616
     ROMSIZE=800
     BANKS=2
     RAMBANK=20-6F,A0-BF
     COMMON=70-7F
     
  c. 將如下語句添加到pic.h標頭檔中
        #if defined(_16F616)    || defined(_16HV616)
        #i nclude    <pic16f616.h>
        #endif
返回列表