打印
[ZLG-ARM]

急!!!变量全部分配在ERAM,而不是IRAM,为什么?

[复制链接]
1422|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
xxqmail|  楼主 | 2007-9-21 22:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
RAM, ST, ni, AC, ck
使用ADS1.2调试,查看全局变量的地址,发现我定义的变量的存储地址都是在0x80000000之后,而不是在内部ram 0x40000000之后。为什么?


参见
mem_c.scf

ROM_LOAD 0x0
{
    ROM_EXEC 0x00000000
    {
        Startup.o (vectors, +First)
        * (+RO)
    }

    IRAM 0x40000000
    {
        Startup.o (+RW,+ZI)
    }
    
    ERAM 0x80000000
    {
        * (+RW,+ZI)
    }

    HEAP +0 UNINIT
    {
        heap.o (+ZI)
    }

    STACKS 0x40004000 UNINIT
    {
        stack.o (+ZI)
    }
}

相关帖子

沙发
五月天| | 2007-9-21 22:36 | 只看该作者

re

ERAM 0x80000000
    {
        * (+RW,+ZI)
    }
的意思就是将全局变量的地址放在0x80000000之后!

使用特权

评论回复
板凳
xxqmail|  楼主 | 2007-9-21 23:08 | 只看该作者

急!!!变量全部分配在ERAM,而不是IRAM,为什么?

谢谢2楼,那么这段代码应该怎么解释呢?每个部分分别是什么意义?

尤其
IRAM 0x40000000
    {
        Startup.o (+RW,+ZI)
    }
是什么意义

使用特权

评论回复
地板
pengxiaowu| | 2007-9-22 00:09 | 只看该作者

re

IRAM 0x40000000
    {
        Startup.o (+RW,+ZI)
    }
的意思是,只把Startup.o文件里的全局变量放在0x40000000开始的地方

使用特权

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

本版积分规则

2

主题

5

帖子

0

粉丝