打印
[ZLG-MCU]

求助:如何分散加载ADS的库文件

[复制链接]
2070|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
lightrainy|  楼主 | 2007-3-30 19:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我用ADS把一部分代码生成了一个自己的库文件lib.a,随后又在库的基础上做了个小应用程序,已经证实成功,应用能够正常运行。

现在我想通过分散加载机制把整个库文件定位到Flash的某个固定区域,这样做的好处在于可以避免更新代码后全部重新烧写,大幅减少烧写时间。

但在实际应用时却发现,只要我对应用部分的代码稍作修改,前后2次生成的LIB映象大小虽然完全一致,但内容却差了好多,完全违背了我的本意,为什么?

以下是我的分散加载文件:

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

    IRAM 0x40000000
    {
        Startup.o (MyStacks)
    }

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

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

    ERAM 0x81000000
    {
        * (+RW,+ZI)
    }

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

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

LIB 0x800D0000 
{
    LIB 0x800D0000
    {
;LIB库包含的所有目标文件
        os_cpu_c.o    (+RO)
        Os_cpu_a.o    (+RO)
        OS_TIME.o             (+RO)
        OS_CORE.o             (+RO)
        OS_FLAG.o             (+RO)
        OS_MBOX.o             (+RO)
        OS_MEM.o             (+RO)
        OS_MUTEX.o    (+RO)
        OS_Q.o        (+RO)
        OS_SEM.o             (+RO)
        OS_TASK.o             (+RO)
        queue.o        (+RO)
        Global.o             (+RO)
        Flash.o        (+RO)
        GPRS.o        (+RO)
        UART.o        (+RO)
        WatchDog.o    (+RO)
        sysfunc.o             (+RO)
    }
    RAM    0x81040000
    {
        os_cpu_c.o    (+RW,+ZI)
        Os_cpu_a.o    (+RW,+ZI)
        OS_CORE.o             (+RW,+ZI)
        Flash.o        (+RW,+ZI)
        COMM.o        (+RW,+ZI)
;                 UART.o             (+RW,+ZI)
;        WatchDog.o    (+RW,+ZI)
;        sysfunc.o             (+RW,+ZI)
    }
}

相关帖子

沙发
lightrainy|  楼主 | 2007-4-2 08:51 | 只看该作者

没有人知道该怎么做吗?

使用特权

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

本版积分规则

6

主题

23

帖子

0

粉丝