打印
[ZLG-ARM]

EasyARM2200的仿真调试疑惑

[复制链接]
1602|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
ntman1985|  楼主 | 2007-7-18 13:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1.在使用片外RAM进行仿真调试时,片外RAM是个什么角色?它里面存着的也是程序的代码吗?

2.在使用片外FLASH仿真调试(或固化程序)时,片外FLASH在BANK0,片外RAM被调到了BANK1,那在仿真调试时片外RAM还在起着某些作用吗?跟片内RAM的作用是一样的?或者就已经不起作用了?

3.在设置EasyJtag时,Flash 0 Address一栏中的Start Address是做什么用的?为什么在使用片外RAM仿真调试时要把该项设为0x00000000?如果我设成0x81000000(Flash接在BANK1)会发生什么事?

4.heap.s中定义的bottom_of_heap是给谁用的?在Startup.s中虽然引入了该标号,但是下面的代码中并没有对其做什么操作。

5.Startup.s中有个__user_initial_stackheap函数说是库函数初始化堆和栈,代码就一句:MOV   pc,lr 
  能解释一下这句代码是怎么实现初始化堆和栈的吗?

谢谢,学习EasyARM2200有一段时间了,可是对一些细节还是没吃透。

相关帖子

沙发
bqt| | 2007-7-18 15:27 | 只看该作者

re:

问题还真多啊,呵呵
不过有一点,在使用片外RAM进行仿真调试时,程序是在该片外RAM中运行的。
在使用片外FLASH仿真调试时,片外RAM可能被用作RW区和ZI区。
__user_initial_stackheap函数请参考ADS手册。

使用特权

评论回复
板凳
ntman1985|  楼主 | 2007-7-18 22:24 | 只看该作者

自答

2. 自答问题2,片内RAM是起到作用的,这从与片外FLASH仿真调试相关的分散加载文件mem_a.scf中可以看到这一句:
ERAM 0x81000000
    {
        * (+RW,+ZI)
    }
这说明处于BANK1的片外RAM被当作RW区与ZI区来使用了。

使用特权

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

本版积分规则

6

主题

35

帖子

0

粉丝