我正在使用具有大闪存的 S32K312 MCU。
我在编写 Bootloader 代码后创建了两个分别在 0x00400000 和 0x00500000 位置运行的 BIN 文件作为 Linker Script 文件。
此引导加载程序代码适用于 UART 端口和擦除 BIN 文件并将其写入闪存区域。
两个BIN文件的镜像是一样的,只是Flash地址不同。
在 0x00400000 上运行的图像使用 JTAG 进行闪写操作。
运行在0x00400000的image通过UART将BIN文件烧写到FLASH上0x00500000的位置。
验证了BIN文件的内容和FLASH的内容是否匹配。
跳转到下一个 0x00500000 位置。
[img=,]https://bbs.elecfans.com/[/img]
左视图在文本编辑器上,右视图是 S32DS 调试器。
最后的记忆在下面。
[img=,]https://bbs.elecfans.com/[/img]
然后跳转到应用程序
函数指针 func
tionPtr = (FunctionPointer)(*(uint32 *)0x00500000);
(函数指针)();
HardFault_Handler 将发生。
[img=,]https://bbs.elecfans.com/[/img]
Bootloader完成Flash写入后如何跳转到0x00400000或0x00500000位置?
0