[微控制器/MCU] ADS1.2分散加载

[复制链接]
3378|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 | 显示全部楼层
帮不到你呀
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)
    }
6019赵文 发表于 2011-7-22 17:38 | 显示全部楼层
分散加载,没有搞过!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

1

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部