飛思卡爾 S19格式文件詳解(S-record) 分享

轉載:http://blog.chinaunix.net/uid-22915173-id-249854.html

S-record格式文件是Freescale CodeWarrior編譯器生成的後綴名爲.S19的程序文件,是一段直接燒寫進MCU的ASCII碼,英文全稱問Motorola format for EEPROM programming。

    網上有關S-record格式文件的資料很少,經過我的收集和實驗,整理出以下文檔,方便大家對Freescale單片機做深入瞭解。

1、格式定義及含義 

S-record每行最大是78個字節,156個字符

S-record format

type

count

address

data

checksum

 type(類型):2個字符。用來描述記錄的類型 (S0,S1,S2,S3,S5,S7,S8,S9)。

count(計數):2個字符。 用來組成和說明了一個16進制的值,顯示了在記錄中剩餘成對字符的計數。

address(地址):4或6或8個字節。用來組成和說明了一個16進制的值,顯示了數據應該裝載的地址, 這部分的長度取決於載入地址的字節數。2個字節的地址佔用4個字符,3個字節的地址佔用6個字符,4個字節的地址佔用8個字符。

data(數據):0—64字符。用來組成和說明一個代表了內存載入數據或者描述信息的16進制的值。

checksum(校驗和):2個字符。這些字符當被配對並換算成16進制數據的時候形成了一個最低有效字符 節,該字符節用來表達作爲補充數據,地址和數據庫的字符對所代表的(字節的)補碼的byte總和。即計數值、地址場和數據場的若干字符以兩個字符爲一對, 將它們相加求和,和的溢出部分不計,只保留最低兩位字符NN,checksum =0xFF-0xNN。

 S0 Record:記錄類型是“S0” (0x5330)。地址場沒有被用,用零置位(0x0000)。數據場中的信息被劃分爲以下四個子域:

      name(名稱):20個字符,用來編碼單元名稱

      ver(版本):2個字符,用來編碼版本號

      rev(修訂版本):2個字符,用來編碼修訂版本號

      description(描述):0-36個字符,用來編碼文本註釋

此行表示程序的開始,不需燒入memory。

 S1 Record:記錄類型是“S1” (0x5331)。地址場由2個字節地址來說明。數據場由可載入的數據組成。

S2 Record:記錄類型是“S2” (0x5332)。地址場由3個字節地址來說明。數據場由可載入的數據組成。

S3 Record:記錄類型是“S3” (0x5333)。地址場由4個字節地址來說明。數據場由可載入的數據組成。

S5 Record:記錄類型是“S5” (0x5335)。地址場由2字節的值說明,包含了先前傳輸的S1、S2、S3記錄的計數。沒有數據場。

S7 Record:記錄類型是“S7” (0x5337)。地址場由4字節的地址說明,包含了開始執行地址。沒有數據場。此行表示程序的結束,不需燒入memory。

S8 Record:記錄類型是“S8” (0x5338)。地址場由3字節的地址說明,包含了開始執行地址。沒有數據場。此行表示程序的結束,不需燒入memory。

S9 Record:記錄類型是“S9” (0x5339)。地址場由2字節的地址說明,包含了開始執行地址。沒有數據場。此行表示程序的結束,不需燒入memory。

根據不同的描述信息,在以上三種不同的結束行中選擇一種使用

 

2、EXAMPLE 

2.1 example I

S19文件首行: S021000036384B50524F47202020313143524541544544204259204541535936384B6D

首行翻譯信息: S0  0000 6 8 K P R O G       1 1 C R E A T E D   B Y   E A S Y 6 8 K

色塊圖例:module name   version number   revision number   checksum

checksum的算法:

0x21+0x00+0x00+0x36+0x38+0x4B+0x50+0x52+0x4F+0x47+0x20+0x20+0x20+0x31+0x31+0x43+0x52+0x45+0x41+0x54+0x45+0x44

+0x20+0x42+0x59+0x20+0x45+0x41+0x53+0x59+0x36+0x38+0x4B=0x792

checksum=0xFF-0x92=6D

注意:EASy68K總是用S8 record作爲結束行。

 

2.2 example II

S123C000CF1400790011CC09395B105A124A8046304A8000300001C01BCB73140007340027

 

2.3 example III

S224308000C61E877C1516C6197B151ACE04C07E15187A153EC74A90F9301D026A01C6017BF0

 

3、另附Freescale HCS12DP256B 16位單片機空程序S19文件:

S0520000453A5C576F6F64795C4C6561726E696E675C50726F6772616D6D655C42444DD2FDB5BCB3CCD0F25C44556D795C447032 35365C62696E5C48435331325F53657269616C5F4D6F6E69746F722E6162735A

S123C000CF1100790011CC09395B105A124A8004304A8000300000C01BC01F00000000001B

S104C020001B

S105FFFEC0003D

S22430800010EF20FEFEC017FDC015270E35ED31EC3169700434FB310326F2FEC019EC31274F

S2113080200BED31180A30700434F920F10AE7

S804000000FB

大家可以嘗試理解一下。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章