S19格式檔案詳解(S-record) 分享

Tinus Chen發表於2018-04-24
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

色塊圖例:type   count   address   data   checksum

 

2.3 example III

S224308000C61E877C1516C6197B151ACE04C07E15187A153EC74A90F9301D026A01C6017BF0

色塊圖例:type   count   address   data   checksum

 

3、另附Freescale HCS12DP256B 16位微控制器空程式S19檔案:

S0520000453A5C576F6F64795C4C6561726E696E675C50726F6772616D6D655C42444DD2FDB5BCB3CCD0F25C44556D795C447032 35365C62696E5C48435331325F53657269616C5F4D6F6E69746F722E6162735A


S123C000CF1100790011CC09395B105A124A8004304A8000300000C01BC01F00000000001B


S104C020001B


S105FFFEC0003D


S22430800010EF20FEFEC017FDC015270E35ED31EC3169700434FB310326F2FEC019EC31274F


S2113080200BED31180A30700434F920F10AE7


S804000000FB

大家可以嘗試理解一下。

相關文章