打印

ads新建工程时,不使用现有模板,需要做什么工作?或者看

[复制链接]
2905|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
xlander|  楼主 | 2008-7-16 09:59 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我的这个工程其实是整个项目的一部分,属于项目中可更新的部分,打个比方整个项目是框架,而我这个工程只是其中的插件,可以更换甚至更新的。框架不需要知道到底安装的是什么插件,只知道位于0x80040000的插件函数地址,调用即可。


我想把框架和插件分开,放到两个工程里面分别编译和链接。

框架部分问题不大,我现在弄插件部分出现问题了。

举个例子我的工程里有三个文件:
mem_plug.scf,加载文件
plug.c,plug.h代码文件

编译以后,生成hex文件,我用hjtag下载的时候提示:
ERROR:Destination Flash address is out of range

我的程序存储器有2M字节,肯定不是硬件方面的原因,估计是我的工程有问题,请高人指点下。

下面是我的文件:
1、mem_plug.scf
ROM_LOAD 0x80040000
{
    ROM_EXEC 0x80040000
    {
        plug.o (install, +First)
        plug.o (plug)
        * (+RO)
    }

    IRAM 0x40000000
    {
        * (+RW,+ZI)
    }

    STACKS +0 UNINIT
    {
        stack.o (+ZI)
    }

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

    HEAP +0 UNINIT
    {
        heap.o (+ZI)
    }
}


2、plug.c
#pragma arm section code = "plug"

uint8 some_other_function(void)
{
    //do some thing    
}

#pragma arm section code = "install"
int main(void)
{
    //do somthing
}
#pragma arm section

请问,我还需要做什么工作,或者您能指点我看哪方面的书籍也可以。

相关帖子

沙发
dld2| | 2008-7-16 10:07 | 只看该作者

也许是H_flasher的配置问题

使用特权

评论回复
板凳
xlander|  楼主 | 2008-7-16 10:36 | 只看该作者

我注意到

我发现不管我怎么调整mem_plugin.scf中的地址,hflasher中的“Dst Addr”都是0x80000000,没有变化,但是始终是灰的(我用的烧写HEX方式)?

难道我应该用烧写BIN方式么?

另外,我的工程里只有这三个文件足够了么?

使用特权

评论回复
地板
xlander|  楼主 | 2008-7-16 11:01 | 只看该作者

请问我的这个想法能够在ads下实现么?

或者有人实现这种做法了么?

使用特权

评论回复
5
dld2| | 2008-7-16 11:12 | 只看该作者

ads的linker选项是怎么设置的?

要把scf文件的路径和文件名填到scatter后面的框里去。

使用特权

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

本版积分规则

65

主题

165

帖子

0

粉丝