SREC

Motorola S-record是摩托罗拉公司所創立的檔案格式,可以將二進制的資訊轉換為用ASCII文字表示的十六进制資料,此檔案格式也稱為SRECORDSRECS19S28S37MOT。此檔案格式常用在微處理器的闪存資料寫入,EPROM、EEPROM的資料寫入,或是其他可編程邏輯元件的編程寫入。一般的應用中,會用編譯器或是組譯器將程式的原始碼(可能是C語言或是組合語言)轉換為機器碼,再輸出為S-record或其他格式檔案。燒錄器可以讀取這些檔案,將機器碼寫入非揮發性記憶體中,或是截入到目的系統中,以便執行。

簡介
S-record檔案格式是摩托罗拉公司在1970年代中期,為了摩托罗拉6800處理器所創的檔案格式。針對摩托罗拉6800處理器及其他嵌入式系统的软件开发工具可以將可執行檔及資料轉換為S-record格式。PROM燒錄器可以讀取S-record,燒錄到嵌入式系统的PROM或EPROM中。

其他HEX格式
也存在類似用途的其他ASCII檔案格式。BPNF、BHLF及B10F是早期的二進制格式,不過檔案較大,也沒有可變性。十六進制格式用一個字元表示四個位元,相較於二進制格式用一個字元表示一個位元,檔案比較精簡。許多十六進制格式(包括S-record)的可變性較大,其中可以包括位址的資訊,因此其內容可以只對應PROM的一部份。Intel HEX格式常用在Intel的處理器上。Tek Hex是另一種HEX格式,其中包括了除錯用的符號表。

格式
記錄結構
SREC格式的檔案包括一組的ASCII字元記錄。記錄從左到右的結構如下,一般會用在8-bit的微處理器中,例如AVR、PIC、8051、68xx、6502、80xx、Z80。其資料欄位的位元組數量是「位元組數量」欄位的值減3(2個位元組對應16位元的位址,1個位元組對應檢查碼)。
|-
| align="center" | S2
| Data
| 24-bit
Address
|
| 此記錄是啟始位址是24位元的資料,用來作為一連串S3記錄的結尾。若SREC檔案只用來燒錄記憶體設備,不需執行位置的資料,此處的位址可以用0代替。
|-
| align="center" | S8
| 起始位址
(檔案終止符)
| 24位元
位址
|
| 此欄位用24位元記錄啟始的位址

資料欄位:有些文件建議資料欄位最長到32位元組的資料(64個字元)

例子
;不同顏色的含義

檢查碼的計算
以下是一個記錄的例子:

S1137AF00A0A0D0000000000000000000000000061

其檢查碼計算方式如下:
#加總:將每個位元組相加 + + = 19E (16進制)
#取最低位元組:總和的最低位元組 = 9E(16進制)。
#取補數:計算最低位元組的一補數 = (16進制)。

16位元的記憶體位址
S00F000068656C6C6F202020202000003C

S11F00007C0802A6900100049421FFF07C6C1B787C8C23783C6000003863000026

S11F001C4BFFFFE5398000007D83637880010014382100107C0803A64E800020E9

S111003848656C6C6F20776F726C642E0A0042

S5030003F9

S9030000FC

相關條目

  • ,不同編碼演算法的比較
  • ,Intel的HEX檔案格式
  • ,Tektronix的HEX檔案格式

參考資料
延伸閱讀

  • Appendix A, "S Record Information", page A-1, states, "For compatibility with teletypewriters, some programs may limit the number of [data] bytes to as few as 28 (56 printable characters in the S-record)."

*
*

外部連結

;軟體

评论 (0)

  • 还没有评论,来抢沙发吧。