TI中文支持网
TI专业的中文技术问题搜集分享网站

6678 emif nor启动程序入口如何写在cs2空间起始地址0x70000000?

比如一个小程序,功能是只在地址 0xC0000000 上写个数。

我想把它写进 nor flash 里,然后上电就在 nor flash 里面执行代码。

emif nor flash 启动会跳转在 0x70000000 上开始执行,也就是说我需要把程序的入口 _c_int00 写在 0x70000000 上。

可是生成 bin 文件后,查看 map 文件,_c_int00 地址在中间。比如起始到结束地址范围是 0x10800000 ~ 0x10801000 ,_c_int00 地址为 0x10800500 。

我如果提取这一段 bin 文件(save memory 方式),直接烧到 o = 0x70000000 上,l = 0x70001000  上,

很显然  _c_int00 的地址相应为  o = 0x70000500 ,对不上 o = 0x70000000 。

看过一些例程,都是用的 asm 文件编写的。我也弄不懂那些 asm 程序是如何确保自身的入口地址刚好就是启动地址的。

只知道,它把自己放到比如 o = 0x10800000 上 ,然后提取生成 bin 文件,烧到  o = 0x70000000 上 ,就 ok 了。

能重新定位 _c_int00 的地址吗?

我应该如何正确地烧写 bin 文件?

我的 CMD 文件如何分配?

请各位赐教。

早安咬Fan:

回复 Ryan BL:

谢谢。

.text:_c_int00 > 0x70000000

查看 map 文件,确实有用。

但上电之后,程序跑不起来。用仿真器查看也连不起,说 device is hung. 说明烧到 flash 的代码不对。

可能还有其他哪里没有设置好。

我现在用 boot.asm 的搬运程序的方法能启动。赶项目进度,暂时没时间研究在 flash 里直接启动应用程序的方法了。

我也在成都,以后有空多交流。

吐槽一下,为什么我的 ID 改昵称改不了。

赞(0)
未经允许不得转载:TI中文支持网 » 6678 emif nor启动程序入口如何写在cs2空间起始地址0x70000000?
分享到: 更多 (0)