打印
[微控制器/MCU]

ADS1.2分散加载

[复制链接]
2315|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
chen511|  楼主 | 2011-7-4 11:19 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
ROM_LOAD 0x0
{
    ROM_EXEC 0x00000000
    {
        Startup.o (vectors, +First)
        * (+RO)
    }
    IRAM 0x40000000
    {
        Startup.o (MyStacks)
    }
   
    STACKS_BOTTOM +0 UNINIT
    {
        Startup.o (StackBottom)
    }
    STACKS 0x40004000 UNINIT
    {
        Startup.o (Stacks)
    }
   
    ERAM 0x80000000
    {
        * (+RW,+ZI)
    }
    HEAP +0 UNINIT
    {
        Startup.o (Heap)
    }
    HEAP_BOTTOM 0x80200000 UNINIT
    {
        Startup.o (HeapTop)
    }
      
}

我用是LPC2214芯片,外部扩展了2Mbyte的SRAM,那么总RAM大小为2M+16k吧,但是我定义一个2M大的数组,另外定义了一些全局变量(数量不超过16K),但是进入程序会跑飞,将2M大的数组该为2M-10000,就不会跑飞,给我的感觉就是用了外部2M SRAM,内部的16k RAM似乎就没用了,是不是分散加载文件有问题(如上所示)?请大侠指点!谢谢!!

相关帖子

沙发
杜_U_ME| | 2011-7-20 22:46 | 只看该作者
帮你顶起来

使用特权

评论回复
板凳
jioa| | 2011-7-21 13:37 | 只看该作者
我也帮你顶起吧

使用特权

评论回复
地板
jioa| | 2011-7-21 13:37 | 只看该作者
帮不到你呀

使用特权

评论回复
5
gooofy| | 2011-7-21 16:30 | 只看该作者
ERAM 0x80000000
    {
        * (+RW,+ZI)
    }
你用*号把上面除了Startup.o中的变量都放到外部ram中,地方当然不够了。
这样,你单独写一个.c文件定义那个2M数组,比如a.c。然后再这里将* (+RW,+ZI)改成a.o
然后把 * (+RW,+ZI)挪到这里
  IRAM 0x40000000
    {
        Startup.o (MyStacks)
         * (+RW,+ZI)
    }

使用特权

评论回复
6
6019赵文| | 2011-7-22 17:38 | 只看该作者
分散加载,没有搞过!

使用特权

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

本版积分规则

0

主题

1

帖子

1

粉丝