编译不带boot的版本,
// 0-0x2000 存放Boot
// 0x2000 - 0xF800 存放 App
// 0xF800 - 0xFC00 存放CONFIG_BOOT_FALG
// 0xFC00 - 0x10000 CONFIG_ADDR
和泰官网的fw lib
https://www.holtek.com.cn/documents/10179/116729/HT32_STD_5xxxx_FWLib_V1.5.1_7084.zip
上面截图中如果i定义为char类型的话,大小为0-255,当CRC16[0]读取的值大于255时,这段程序会一直读取Flash的数据来计算CRC,会读到后面的非法地址造成hardfault,hardfault里应该是有 SystemReset系统复位。根据回读的信息,CRC16[0] 读取到的值是 0x0100,大于255。所以更新后系统无法开机。
现在是处理方法是注释掉部分代码,让bin文件编译出来小一点,转换程txt文件也会小一点。
BIN-TXT.EXE ,bin转txt工具