极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 600|回复: 0

8F328-U 程序和bootloader合併燒寫

[复制链接]
发表于 2019-1-9 14:42:39 | 显示全部楼层 |阅读模式
本帖最后由 eddiewwm 于 2019-3-6 12:43 编辑

如想用小白盒一次過將程序和bootloader合併燒寫,則需先把程序和bootloader合併。按LGT8F328P生產商的提示,可用以下步驟完成一個合併 hex 檔:

1) 把bootloader 的 hex檔 除第一行外(即從:107400 開始),全部複制到程序hex檔的最後一行(是帶 :10XXXX的最後一行,不包括最後一行的End of file檢查行)
2) 把 程序hex檔的第一行第一個復位向量(一般是0C947300)取代第七個的復位向量(即第二行第三個的復位向量)
3) 把 bootloader的復位向量(一般是0C94003A)取代程序hex檔的第一個復位向量(一般是0C947300)
4) 第一行和第二行最後兩位的校驗字節可以不改(因小白盒的程序不會檢查這兩字節的),但若希望能更完美一點,可以用網上的校驗碼產生器(如 https://www.scadacore.com/tools/ ... hecksum-calculator/)產生正確校驗碼並改回。

以下是第一步驟完成後的一個範例:
..........
:100A70000590F491E02D099481E090E0F8940C94B5 (程序的最後一行)
:1074000011248FEF98E09EBF8DBF94B714BE892FD3   (bootloader的第二行)
.........

以下是第二步驟完成後的一個範例:
未改前:
:100000000C9473000C9443030C949B000C949B0081
:100010000C949B000C949B000C949B000C949B00F4
更改後:
:100000000C9473000C9443030C949B000C949B0081
:100010000C949B000C949B000C9473000C949B00F4

以下是第三步驟完成後的一個範例:
未改前:
:100000000C9473000C9443030C949B000C949B0081
更改後:
:100000000C94003A0C9443030C949B000C949B0081

以下是第四步驟完成後的一個範例:
未改前:
:100000000C94003A0C9443030C949B000C949B0081
:100010000C949B000C949B000C9473000C949B00F4

需輸入的校驗資料:
第一行的:
100000000C94003A0C9443030C949B000C949B00
得到的CheckSum8 2s Complement的校驗碼:
BA
第二行的:
100010000C949B000C949B000C9473000C949B00
得到的CheckSum8 2s Complement的校驗碼:
1C

更改後:
:100000000C94003A0C9443030C949B000C949B00BA
:100010000C949B000C949B000C9473000C949B001C

得出合併 hex檔後,便可用小白盒燒寫了!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|联系我们|极客工坊 ( 浙ICP备09023225号 )

GMT+8, 2019-5-20 23:20 , Processed in 0.041711 second(s), 24 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表