打印
[ZLG-ARM]

周工好,关于分散加载

[复制链接]
1500|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zzu001|  楼主 | 2007-12-15 11:16 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我读了mema_scf,memb_scf,memc_scf
这些加载文件当中,
比如说使用外部flash启动吧
都是让内部sram存储启动代码startup.o的初始化和未初始化变量,
然后,从某一地址开始,比如0x40004000开始,设置为堆栈区;
对于外部bank1的sram,让其存储的是除startup之外的变量。

那么,我有以下疑问:

是可以把外部sram当作单纯的数据存储区(声明:不是存储系统代码之类产生的变量,而是存放比如说采集的数据)的吧?
那这样的话,在mema_scf中,修改0x8100 0000 当作存放采样数据的存储段,而不是存放系统代码产生变量的存储段,怎么修改?

多谢啦 

相关帖子

沙发
gumanzhou| | 2007-12-15 12:23 | 只看该作者

rE

找本书看一下,那个是还灵活的~~

使用特权

评论回复
板凳
zzu001|  楼主 | 2007-12-19 08:40 | 只看该作者

高手回答一下啊

使用特权

评论回复
地板
zzu001|  楼主 | 2007-12-19 14:15 | 只看该作者

介绍一下哪本书也好啊

使用特权

评论回复
5
zzu001|  楼主 | 2007-12-20 10:20 | 只看该作者

查了些资料,呵呵,现在明白啦

我修改一个分散加载,让内部ram作为栈区,堆区,变量(RW,ZI)存放区。
外部ram作为采集数据存放区。
程序在外部flash执行。

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

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

    STACKS_BOTTOM +0 UNINIT
    {
        Startup.o (StackBottom)
    }

    STACKS 0x40004000 UNINIT
    {
        Startup.o (Stacks)
    }
     HEAP +0 UNINIT
    {
        Startup.o (Heap)
    }

    HEAP_BOTTOM 0x40008000 UNINIT
    {
        Startup.o (HeapTop)
    } 
   
}

使用特权

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

本版积分规则

3

主题

6

帖子

0

粉丝