小弟刚刚从事ARM开发,用的是ZLG的2100的板子,开始跑点灯的程序就出现2个问题。
1、开始跑例程时,我选用debug in flash方式。我的设定是robase为0x00000000,image entry point为0x00000000,发现程序老是跑飞了,一运行就到了0xfffelb8的地址,跳转不到main函数,我就怀疑是不是程序段从0x00000000写的话会和从0x00000000开始的7个模式的中断向量有冲突,所以我就把robase改到了0x00000040,结果程序可以顺利运行,但我也不确定自己是不是找对了原因,因为我看得资料上都是说robase从0x00000000开始的,希望各问能帮我解答一下这个现象。
2、程序用debug in ram,debug in flash,rel in flash三种方式生成.axf文件后,我通过AXD硬件仿真都可以工作,也就是说程序一运行,板子上的灯都可以点亮,但是当我用H-flash把程序下到片内flash时,重新上点运行,灯就不亮。开始我怀疑是不是程序没有下载进取,但察看flash地址里有数据写入。同时我已经根据书上要求把ISP的调跳线取了,难道还有什么没考虑到的因素?希望各位能帮助解答一下。
共4条
1/1 1 跳转至页
一个关于robase和flash下载后断电运行程序的问题

关键词: 一个 关于 robase flash 下载 断电

1 - 我记得ZLG提供的例子都是用SCATTER LOAD方式进行链接程序的,你只需要选择DEBUG IN FLASH, DEBUG IN RAM或者是REL IN FLASH。你自己直接设定RO_BASE和ENTRY POINT的话,可能会有问题,除非你对程序结构已经很了解了。
2 - 你在ADS里面设置一下,编译链接的时,除了AXF文件,还可以生成BIN文件,把这个BIN文件烧写到FLASH里去。烧写完成后,在把FLASH里面的内容给读取出来,和烧写文件对比一下,看看烧写是否完全一致。另外,烧写的时候,你是否选择了正确目录下的文件进行烧写?
2 - 你在ADS里面设置一下,编译链接的时,除了AXF文件,还可以生成BIN文件,把这个BIN文件烧写到FLASH里去。烧写完成后,在把FLASH里面的内容给读取出来,和烧写文件对比一下,看看烧写是否完全一致。另外,烧写的时候,你是否选择了正确目录下的文件进行烧写?
共4条
1/1 1 跳转至页
回复
打赏帖 | |
---|---|
【S32K146】S32DS watchdog 配置使用被打赏20分 | |
【Zephyr】使用 IAR 调试 Zephyr 镜像被打赏20分 | |
【Zephyr】MCXN947 Zephyr 开发入门适配shell被打赏20分 | |
【我要开发板】6.联合MATLAB记录数据被打赏50分 | |
【瑞萨RA2E1开发板】:使用ADC功能实现位移传感器采集方案被打赏20分 | |
【nRF7002DK】基于sht30的温湿度计被打赏20分 | |
【nRF7002DK】日志打印被打赏20分 | |
【换取手持示波器】RGB屏幕移植ARM-2D库被打赏35分 | |
【分享开发笔记,赚取电动螺丝刀】分享一下如何解决瑞萨RA2E1使用printf编译报错问题被打赏27分 | |
rtthread硬件加密-5hash加密分析被打赏10分 |