打印

关于ARM7(44b0)BOOTLOAD及ADS的几个疑问,大家帮忙下谢谢了!

[复制链接]
1922|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
ff_1wq|  楼主 | 2008-2-29 20:23 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
开始研究ARM7(44b0)的启动及调试已有几天,但是还有些地方不明白。
1。AXD进行调试的时候,我看到程序直接从ro-base开始运行,是不是AXD会自动将程序下到ro-base为起点的地址中去运行?(数据段和ZI段紧跟这后面?)这个时候ADS里设置的rw-base是不是就没用了?
2。我用j-tag将bootload下到0x00开始的flash里了,但是如何观察他的单步运行状况? 写一段跳转到0x00的汇编程序然后用AXD调试这样是否可行? 还是不是有更好的办法?
暂时想到这些问题,忘达人解答,谢谢了

相关帖子

沙发
ff_1wq|  楼主 | 2008-2-29 22:20 | 只看该作者

re

没人知道吗?  还是我的问题太白痴了啊??????真的急,在线等答案

我的理解不知道对不对,
44b0总会在0x00出开始执行指令,如果我ADS中ro-base设置为0x0c080000,这时我开始调试程序,那么44b0首先执行是固化在0x00(flash)里的启动程序,假设这个启动程序(bootload)会把RO段复制到0x0c080000,但是我现在的调试程序会下载到哪里呢? 0x0c080000? 覆盖掉原来的程序?

使用特权

评论回复
板凳
hitoolarm| | 2008-3-1 09:00 | 只看该作者

re:

44b0总会在0x00出开始执行指令,如果我ADS中ro-base设置为0x0c080000,这时我开始调试程序,那么44b0首先执行是固化在0x00(flash)里的启动程序,

====================
AXD做这样的工作:断点设在ro-base,你可以从这里开始调试程序。你用AXD的时候没看到有地址吗?

使用特权

评论回复
地板
dld2| | 2008-3-1 09:13 | 只看该作者

调试时

debugger(AXD)会把程序加载到指定位置。所谓指定位置就是RO、RW定义的位置。然后从RO-base处开始执行。

但是在调试前,总要先上电。上电时,是从0X00开始执行的。

使用特权

评论回复
5
ff_1wq|  楼主 | 2008-3-1 10:41 | 只看该作者

re

哦明白了! 谢谢!

使用特权

评论回复
6
ff_1wq|  楼主 | 2008-3-1 10:51 | 只看该作者

re

这么说来,在调试程序的时候,程序的bootload里如果设置第一次中断跳转向量是没意义的了,因为中断来的时候总会跳到0x00后的地方,而那里的代码是烧入FLASH的,除非调试的时候向FLASH里写入相关烧录代码,是这样的吧

使用特权

评论回复
7
wishcom| | 2008-3-1 16:58 | 只看该作者

建议看看这篇。

https://bbs.21ic.com/club/bbs/list.asp?boardid=35&t=2736393&tp=%u4EFF%u771F%u4E0E%u771F%u5B9E%u60C5%u51B5%u6709%u5DEE%u522B%u7684

使用特权

评论回复
8
ff_1wq|  楼主 | 2008-3-2 22:10 | 只看该作者

re

谢谢楼上的,这方面的已经明白了

使用特权

评论回复
9
wangharry| | 2008-3-5 14:36 | 只看该作者

ding

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

16

主题

45

帖子

1

粉丝