打印

如何将FLASH中的程序引导到RAM中运行?

[复制链接]
2129|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
limarks|  楼主 | 2009-4-14 09:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
利用2812烧写了一个程序,其中CMD文件主要内容如下:
MEMORY
{
PAGE 0 : 
   OTP         : origin = 0x3D7800, length = 0x000800
   FLASHJ      : origin = 0x3D8000, length = 0x002000
   ....
   FLASHA      : origin = 0x3F6000, length = 0x001FF6
   BEGIN       : origin = 0x3F7FF6, length = 0x000002
   PASSWDS     : origin = 0x3F7FF8, length = 0x000008
   ROM         : origin = 0x3FF000, length = 0x000FC0
   VECTORS     : origin = 0x3FFFC2, length = 0x00003E
PAGE 1 : 
   /*SARAM*/
   ....
}
SECTIONS
{
   /* Allocate program areas: */
   .reset              : > BEGIN       PAGE = 0
   vectors             : > VECTORS     PAGE = 0
   .cinit              : > FLASHJ      PAGE = 0
   .text               : > FLASHA       PAGE = 0

   /* Allocate data areas: */
   .stack              : > RAMM0M1     PAGE = 1
   .bss                : > RAML0L1     PAGE = 1
   .ebss               : > RAML0L1     PAGE = 1
   .const:            load =     FLASHB PAGE 0, run = RAML0L1 PAGE 1
    {
        /* Get Run Address    */
        __const_run = .;
        /* Mark Load Address*/
        *(.c_mark)
        /* Allocate .const    */
        *(.const)
        /* Compute Length    */
        __const_length = .-__const_run;
    } 
    ....
}
这样一来,程序应该就是在FLASH中运行吧?
反正烧写完后重新运行的话,其中的外部AD采集就出乱码了,而在仿真情况下是没问题的。所以应该要把程序拷贝到RAM运行吧?
请问如何来实现呢?是否也可像.const那样Load Run就能实现?

相关帖子

沙发
zwz111111| | 2009-4-15 11:24 | 只看该作者

参考ti文档“spraau8.zip"

上面有比较详细的表述

使用特权

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

本版积分规则

15

主题

39

帖子

0

粉丝