当前位置: 代码迷 >> 驱动开发 >> 程序放在片外FLASH,想运行在RAM中,需要如何做? ADS1.2
  详细解决方案

程序放在片外FLASH,想运行在RAM中,需要如何做? ADS1.2

热度:106   发布时间:2016-04-28 11:01:53.0
程序放在片外FLASH,想运行在RAM中,需要怎么做? ADS1.2
在网上看到可通过分散加载文件重定向:
C/C++ code
 ROM_EXEC 0x80000000 0x40000    {        Startup.o (vectors, +First);        * (+RO)   //这是在片外FLASH正常运行时的代码        __main.o (+RO)  //这是想在RAM中运行的代码        *(Region$$table) //这是想在RAM中运行的代码       *(ZISection$$table) //这是想在RAM中运行的代码    }    IRAM 0x40000000 0x4000    {        Startup.o (MyStacks)    }    STACKS_BOTTOM +0 UNINIT    {        Startup.o (StackBottom);栈长度限制值    }    STACKS 0x40004000 UNINIT    {        Startup.o (Stacks);栈基地址    }        ERAM 0x81000000 0x100000    {       * (+RO,+RW,+ZI) //这是想在RAM中运行的代码  ;        * (+RW,+ZI) //这是在片外FLASH正常运行时的代码    }    HEAP +0 UNINIT    {        Startup.o (Heap);heap基地址    }    HEAP_BOTTOM 0x81100000 UNINIT    {        Startup.o (HeapTop);heap长度限制值    }

这样设置后,程序跑不起来. 网上又说需要增加COPY代码,我不知道应该在什么时候CP,怎么CP?有没有人帮帮啊.

程序在片外已经跑起来了.只是速度不理想.

------解决方案--------------------
start.s文件里改一下启动文件,里面有个存储器映射寄存器好像得改一下,你试试。
------解决方案--------------------
csdn里面搜下吧,以前有人问过
------解决方案--------------------
Startup.s来实现的啦。。。
------解决方案--------------------
学习中
------解决方案--------------------
学习中
  相关解决方案