我正在尝试使用引导加载程序本身更新引导加载程序。 我的代码基于 spna189.zip 示例代码。 我的引导加载程序可以在引导加载程序之后更新软件、而不会出现任何问题、但当我尝试启用引导加载程序更新并更新引导加载程序本身时、代码在擦除步骤时崩溃、我已经按照 其他文章的建议更新了链接器命令中的段代码、 并更改了对 Fapi_enableMainBankSectors 的调用(0xFFFF);
我还会错过什么?
我的链接器文件
/*内存映射*/
存储器
{
引导程序(X):origin=0x00000000 length=0x00000020
Flash_API (RX):origin=0x00000020 length=0x00003FE0
FLASHBOOT (RX):origin=0x00012000 length=0x00012000
堆栈(RW):origin=0x08000000 length=0x00002000
RAM (RW):origin=0x08002000 length=0x0003E000
/*用户代码开始(2)*/
//闪存中的提供程序配置区域。 用于配置 IP 地址、
//子网掩码、默认网关、MAC 地址和设备 ID
//由引导加载程序使用。
Provider_CFG_and_STATUS (RW):origin=0x00004000 length=0x00008000
/*用户代码结束*/
}
/*用户代码开始(3)*/
/*用户代码结束*/
/*------------------ *
/*段配置*/
部分
{
.intvecs:{}>向量
闪存 API:
{
../Debug_HDK/src/Fapi_UserDefinedFuncations.obj (.text)
../Debug_HDK/src/BL_flash.obj (.text)
../Debug_HDK/src/BL_dCAN.obj (.text)
../Debug_HDK/src/BL_flash.obj (.const)
//../Debug_HDK/src/uartstdio.obj (.text)
--library=./../lib/F021_API_CortexR4_LE.lib (.text)
}load = flash_API、run = RAM、load_start (api_load)、run_start (api_run)、size (api_size)
.text:{}> FLASHBOOT
.const:{}> FLASHBOOT
.cinit:{}> FLASHBOOT
.pinit:{}> FLASHBOOT
.bss:{}> RAM
.data :{}> RAM
.sysmem:{}>RAM
/*用户代码开始(4)*/
/*用户代码结束*/
}