S19檔案格式簡述
1.概述
為了在不同的計算機平臺之間傳輸程式程式碼和資料,摩托羅拉將程式和資料檔案以一種可列印的格式(ASCII格式)編碼成s格式檔案。s格式檔案是Freescale推薦使用的標準檔案傳送格式。編譯完成之後,Freescale CodeWarrior編譯器將在bin資料夾下自動生成“*.abs.s19”檔案,這個檔案包含最終下載帶微控制器中的所有內容。
2. 格式定義及含義
S格式檔案中的每一行稱為一個S記錄,每個S記錄由記錄型別、記錄長度、儲存地址、程式碼/資料、校驗和5個部分組成。
每位元組資料被編碼成2個16進位制字元,第一個字元代表資料的高四位,第二個字元代表資料的低4位。
5個部分具體內容如下:
記錄型別 |
記錄長度 |
儲存地址 |
程式碼/資料 |
校驗和 |
記錄型別:2個字元(即1個位元組),用來描述記錄的型別。記錄供定義了8種型別:
S0: S格式檔案的第一個記錄,表示檔名(含路徑),儲存地址部分沒有使用,以0000置位。此記錄表示記錄的開始,無需下載到MCU。
S1: 地址為2位元組(4個字元)的記錄。
S2: 地址為3位元組的記錄。
S3: 地址為4位元組的記錄。
S5: 標記本檔案的S1、S2、S3記錄的個數(此記錄不是一個S檔案所必須的)。
S7: 地為4位元組,表示程式的開始執行地址,程式碼/資料部分沒有被使用,此行表示程式的結束,無需下載到MCU。
S8: 地為3位元組,表示程式的開始執行地址,程式碼/資料部分沒有被使用,此行表示程式的結束,無需下載到MCU。
S9: 地為2位元組,表示程式的開始執行地址,程式碼/資料部分沒有被使用,此行表示程式的結束,無需下載到MCU。
記錄長度: 2個字元(即1個位元組),顯示在記錄中剩餘的位元組數。即
記錄長度 = 儲存地址位元組數 + 程式碼/資料位元組數 + 校驗和位元組數
儲存地址: 2或3或4個位元組(由記錄型別決定),用來表示程式碼/資料應該裝載的起始地址。
程式碼/資料: 0-64字元(即0-32位元組),表示需要下載到MCU中的資料。
校驗和: 2個字元(即1位元組),校驗資料,計算方法:
校驗和 = 0Xff – (記錄長度 + 儲存地址 + 程式碼/資料)
(注意,為校驗和不是字元的校驗和,而是實際二進位制數的校驗和)
3. 例項:
S01F0000443A5C50726F6A6563745F335C62696E5C50726F6A6563742E61627371
S123C000CF2100C6055B134A800BFE4A8000FE0000C015C031000000000000000000000092
S218FE8020F2FEC013EC31270BED31180A30700434F920F10A0B
S9030000FC
說明;
第一行:S0,表示S19檔案格式開始;1F為剩餘位元組數;0000無用;443A5C50726F6A6563745F335C62696E5C50726F6A6563742E616273
為D:/Project_3/bin/Project_3.abs.的ASCII碼;71為校驗和.
第二行: S1,表示本條記錄儲存地址長度為2位元組;23(注意為16進位制)剩餘字
節數,C000,表示起始地址,92表示校驗和。即,本行表示將
CF2100C6055B134A800BFE4A8000FE0000C015C0310000000000000000000000依次下載到從地址C000開始的一段連續地址中。
第三行: S2,表示本條記錄儲存地址長度為3位元組,18(16進位制數)表示剩餘位元組數,FE8020表示起始地址,0B為校驗和。
校驗和的計算:以S2記錄為例,
校驗和 = 0xFF – (0xFE + 0x80 + 0x20 + 0Xf2 + … + 0x0A);
另記:在用Freescale CodeWarrior除錯FLASH擦除和寫入時需注意以下幾點:
1. 已寫入過的FLASH地址需要在擦除後才能再次寫入。
2. 在記憶體監視視窗有時無法看到是否正確寫入和擦除,可用指標從地址處讀出資料檢查是否正確擦除及寫入。
3. 在BDM模式下,用自己寫的FLASH下載程式碼通過串列埠匯入s19檔案後,將導致晶片鎖定,若不解鎖(Unsecure),無法再次通過BDM或者串列埠下載s19檔案。但當晶片脫離BDM獨立執行時未發現此問題。
注: 軟體版本;CW for S12(X) 5.0,晶片型號:MC9S12XDP512
相關文章
- S19格式檔案詳解(S-record) 分享
- ELF 格式簡述 - eBPF 基礎知識eBPF
- elf檔案格式
- FastQ檔案格式AST
- smali 檔案格式
- 檔案流下載檔案,zip/其他格式檔案
- ELF檔案格式與got表hook簡單實現GoHook
- 簡述grub啟動載入程式和製作kickstart檔案
- MongoDB與MMAPV1相關的資料檔案簡述MongoDB
- JPEG格式研究——(2)JPEG檔案格式
- BVH檔案格式解析
- caj檔案怎麼轉換成word文件,簡單的檔案格式轉換教程
- vsd格式檔案怎麼開啟 vsd是什麼格式的檔案,
- Matlab生成.exe格式檔案Matlab
- Class 檔案格式詳解
- fepk檔案格式說明
- 檔案開啟的格式
- 開啟.ziw格式檔案
- java class 檔案格式解析Java
- hive檔案儲存格式Hive
- JAVA中GBK格式檔案和UTF-8格式檔案互相轉換Java
- dwg格式檔案用什麼軟體開啟(線上看dwg格式檔案)
- dwg格式檔案用什麼軟體開啟 dwg是什麼檔案格式
- MP4檔案格式解析
- MySQL輸出html格式檔案MySqlHTML
- PHP 匯出 CSV 格式檔案PHP
- Qt的.pro檔案格式解析QT
- 軟體著作權檔案格式
- plist檔案格式轉換器
- 文字檔案的編碼格式
- plt是什麼格式檔案
- H.265/HEVC 簡述 第二課(數字視訊格式)
- 如何將檔案PDF格式轉換成Word格式
- ofd是什麼格式的檔案 ofd格式檔案用什麼軟體開啟
- Linux中映象檔案是什麼?檔案格式有哪些?Linux
- chm檔案怎麼轉換成TXT格式?chm檔案快速轉化成TXT格式的方法
- dxf是什麼檔案格式 dxf檔案格式用什麼軟體怎麼開啟
- 電腦如何開啟ofd格式檔案 什麼軟體可以開啟ofd格式檔案
- Dojo簡述