您好!
我正在开发一个引导加载程序、它可以更新应用程序代码以及引导加载程序映像本身。 我从 spna190.zip 代码库开始。 如文档所述、要对闪存扇区0进行重新编程、必须找到包含 F021 API 等的闪存 API 部分、以便从 RAM 运行。 我可能是从旧版本的 spna190.zip 开始的、因为我发现需要进行3个额外的更改才能成功擦除和重新编程引导加载程序:
在 BL_FLASH.c 中、对 Fapi_enableMainBankSectors (0xFFFE)的调用必须替换为 0xFFFF 的参数以允许扇区0擦除。
在 bl_link.cmd 中、必须将 bl_flash.obj (.const)段添加到 flashAPI 段中。 这是因为 bl_flash.c 使用了 flash_sector[]数据表(常量数据) 除非.const 段也位于 RAM 中、否则执行将在以下行的 BL_FLASH.c 中挂起:
while (fapi_get_FSM_status!= fapi_Status_Success);
3. bl_ymodem.c 调用 memcpy。 这意味着 memcpy 也必须位于 RAM 中。 我在 BL_YMODEM 中创建了我自己的 memcpy 版本、以避免将某些运行时库移动到 RAM。
我的问题:我现在可以使用此功能、但是否有支持引导加载程序映像重新编程的更最新版本的 spna190.zip 文件(已经过测试并可以正常工作?) 我想确保我没有错过任何东西。
谢谢、
Keith