大家好,有问题想咨询各位大佬。
使用的是R7A2L1AB板子,当前BOOT函数中,调用实例代码中 do_boot函数,其中 flash_base = 0x10000。我希望将APP程序的其实位置从0x0000改到0x10000,从而满足BOOT ---JUMP--->
APP 。
APP程序能够发送周期性CAN数据,BOOT本身不主动发数据,可通过这块确认是否跳转成功。但是当我改动script中 memory_regions.ld文件中 FLASH_START的赋值,整个APP工程就会报错
失效,必须从worksapce中删除才能重新使用。
我应当如何修改配置文件才能使APP程序生成出来的HEX文件,起始地址从0X10000开始?又应该怎样操作才能使BOOT+APP的HEX文件一起down进板子?
你好,请参考下图的配置,从0x20000开始调试App Project。调试前确认App Project重新build生成的目标文件(*.srec 或*.hex)起始地址是0x20000。
下图中的参数分别替换为:
set $sp = *0x20000
set $pc = *0x20004
set {int}0xe000ed08 = 0x00020000
关于这三行的意义说明,请参考以下链接中的文档说明…
请明确几个问题:
1.所用的IDE和compiler是什么?
2.“实例代码中 do_boot函数”所指的示例代码是?
3.“改动script中 memory_regions.ld文件中 FLASH_START的赋值,整个APP工程就会报错”,报错的细节是什么可否提供?
4.“如何修改配置文件才能使APP程序生成出来的HEX文件,起始地址从0X10000开始?又应该怎样操作才能使BOOT+APP的HEX文件一起down进板子?”这两个问题依赖问题1的答案。
如果可以的话,请删除敏感代码后,将源码直接贴上来,便于分析和支持,谢谢。
你好,
目前已经能够更改APP去程序的ld文件了,是编译器内部链接的BUG,需要把script中fsp.ld文件里面的 !DEFINED增加空格 ! DEFINED,这样。
现在刷写完后,会进入do_boot函数跳转,跳转0X20000时候出现
break at address"0xeffffffe"with no debug information
1我用的是e2 studio, 使用HEX格式CAN刷升级
2 do_boot实例代码如下: