分散加载文件如何批量使用?

[复制链接]
2501|4
 楼主| pigeon0411 发表于 2009-8-20 08:40 | 显示全部楼层 |阅读模式
我的一个工程中,大概有20多个.c文件的模块,我想将其中的一部分,比如其中的12个.c模块在编译后希望通过分散加载文件指定连接器将其定位在FLASH中0x00000000到地址0x00032000,然后另外的都定位在FLASH 的地址0x00040000-0x00078000,
请问如何通过分散加载文件实现?
 楼主| pigeon0411 发表于 2009-8-20 08:43 | 显示全部楼层
我的目的是想升级后面一块区域的文件,而前面的文件可以固定不变,作为升级区和资源区。
FDLock 发表于 2009-8-28 23:13 | 显示全部楼层
以前看到过一个,给你参考参考(main.c的放在0x80000000,其它放在0x00000000):
ROM_LOAD 0x00000000 0x00020000
{
    ROM_EXEC 0x00000000 0x00020000
    {
        Startup.o (vectors, +First)
        * (+RO)
    }
}

ROM_LOAD1 0x80000000 0x00020000
{
    ROM_EXEC1 0x80000000 0x00020000
    {
        main.o (+RO)
    }
}

RAM_LOAD1 0x40000000
{
    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)
    }
}


但建议做成2个工程,一个是简单的BootLoader,另一做应用程序,升级时把整个应用程序都升级。
 楼主| pigeon0411 发表于 2009-8-29 15:32 | 显示全部楼层
ZLG例程上有这样的代码

我试着用这个做,但是切换到高区,程序不以正常运行,不知道需要注意些什么?
FDLock 发表于 2009-8-30 20:55 | 显示全部楼层
是的,我是在WWW.ZLGMCU.COM网站看到,这个例子是使用内部Flash和外部Flash的,编译后好像是生成两个HEX文件,要分别烧写到内部FLASH和外部FLASH。
您要根据自己板子的存储器情况来修改,要确保两部份代码都烧写到Flash了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

42

主题

157

帖子

3

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