小弟刚刚从事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 跳转至页
回复
有奖活动 | |
---|---|
【有奖活动】分享技术经验,兑换京东卡 | |
话不多说,快进群! | |
请大声喊出:我要开发板! | |
【有奖活动】EEPW网站征稿正在进行时,欢迎踊跃投稿啦 | |
奖!发布技术笔记,技术评测贴换取您心仪的礼品 | |
打赏了!打赏了!打赏了! |