打印
[ZLG-ARM]

关于分散加载文件

[复制链接]
1463|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
fantesy|  楼主 | 2008-2-1 14:31 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
ST, ni, AC, ck, Stack
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 0x80080000 UNINIT
    {
        Startup.o (HeapTop)
    }
}

问下周工,这里的HEAP_BOTTOM 和STACKS_BOTTOM 全是向下的吗?
他们两有什么区别,一个是堆的低部,一个是栈的低部吗???

相关帖子

沙发
zlgarm| | 2008-2-5 01:49 | 只看该作者

re

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

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


意思是将 HEAP 到 HEAP_BOTTOM 之间的内存部分用作 ADS 中,

动态内存管理库函数管理的内存区,例如:malloc 和 free 函数的操作

(在 Startup.s 中有相关的函数将这两个指针传给ADS库)

而下面这个就是我们通常意义的栈的定义

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

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


    by zlg_hh

使用特权

评论回复
板凳
阿穆琪| | 2008-2-10 00:47 | 只看该作者

致敬!

使用特权

评论回复
地板
欠肉食| | 2009-5-7 09:28 | 只看该作者

向2楼跟3楼致敬,感谢精彩的解说

使用特权

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

本版积分规则

44

主题

113

帖子

0

粉丝