[i=s] 本帖最后由 txgc_wm 于 2011-3-20 21:18 编辑 [/i]
为什么程序只能通过KEIL仿真,而编译后的HEX代码烧写到开发板上后无法运行?
可以通过修改一下修改实现:
点击魔术棒-linker-edit进入:RUNINARM.SCT分散加载文件,对其进行修改。
LR_ROM1 0x30000000 { ; load region
ER_ROM1 0x30000000 0x0200000 { ; load address = execution address
*.o (RESET, +First)
*(InRoot$$Sections)
.ANY (+RO)
}
RW_RAM1 0x30800000 0x0800000 { ; RW data
.ANY (+RW +ZI)
}
RW_IRAM1 0x40000000 0x00001000 {
.ANY (+RW +ZI)
}
}
LR_ROM1:0X30000000;下载到内存,将其修改到下载到NOR FLASH即可,即修改为:
LR_ROM1:0X00000000
ER_ROM1 0x30000000 0x0200000修改为: ER_ROM1 0x00000000 0x0200000.
修该保存后然后进行编译即可。
RESET为启动代码中定义的代码域标识!
vac1314 于 2011-03-15 00:17:40发表:
我的flash 不知道怎么回事不能烧写 {:2_91:}
txgc_wm 于 2011-03-14 23:55:46发表:
相信一切问题都是能够得到解决的!
smallhappiness 于 2011-03-11 19:57:49发表:
好复杂,学习
cjzhang 于 2011-03-06 22:49:20发表:
支持一下!
txgc_wm 于 2011-03-02 19:23:43发表:
5# 张无忌1987
三星的!
张无忌1987 于 2011-03-01 22:13:45发表:
什么开发板啊?
singleym 于 2011-02-28 10:09:50发表:
技术帖,不过不是很懂~
支持下~
deepwhite 于 2011-02-27 22:23:21发表:
这个东西应该是硬件相关的,不是所有的板子都一样的。个人感觉。
txgc_wm 于 2011-02-27 21:17:55发表:
改为0X00000000是因为nor flash是从该地址处开始执行的,而0X30000000是sdram的起始地址,仿真是直接将bin文件下载到sdram中,所以之前设置0X30000000为起始code的地址。