程序在SDRAM中运行,SCT文件如何配置?

2019-03-25 20:04发布

我想让一个独立的可执行程序放在SRAM运行,我采取的方式如下:
1.先写一个简单的复制拷贝程序,运行在片内FLASH.负责拷贝新的应用程序到外部SDRAM,然后跳转到SDRAM执行。


现在有如下问题:
1.可执行程序如果独立运行在SDRAM,它对应的sct分散加载文件应该如何编写?编译环境采用的是MDK KEIL
2.如果应用程序可能需要大量的SDRAM内存区域,SDRAM的整个区域如何划分,怎样在SCT文件中体现。


此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
4条回答
zhaojun_xf
1楼-- · 2019-03-26 01:45
_NXP LPC1000_ 很少用分散加载文件,可以找一下,周工的例程看看,有说到分散加载文件。
zyzs50
2楼-- · 2019-03-26 02:32
本帖最后由 zyzs50 于 2016-7-22 11:53 编辑
zhaojun_xf 发表于 2016-7-22 10:10
很少用分散加载文件,可以找一下,周工的例程看看,有说到分散加载文件。

我是用的lpc1788,片内FALSH只有512KB,我的可执行文件已经超过了512KB,片内放不下,所以想放到片外SDRAM运行。因此在编写sct文件时出了问题,如果直接把运行地址改为0xA0000000.跳转的时候没有运行。所以感觉SCT文件写的有问题
我的sct文件这样写:

LR_IROM1 0xA0000000 0x00080000  {    ; load region size_region
  ER_IROM1 0xA0000000 0x00080000  {  ; load address = execution address
   *.o (RESET, +First)
   *(InRoot$$Sections)
   .ANY (+RO)

  }
  RW_IRAM1 0x10000000 0x00010000  {  ; RW data
   .ANY (+RW +ZI)
  }
  RW_RAM1 0xA0080000 UNINIT 0x02000000  {  ; RW data
   * (VRAM, GUI_RAM, GUIDEMO_STACK, FS_RAM, IP_RAM, USB_RAM)
  }
}


jplzl10000
3楼-- · 2019-03-26 05:09
 精彩回答 2  元偷偷看……
leices6
4楼-- · 2019-03-26 07:30
zyzs50 发表于 2016-7-22 11:50
我是用的lpc1788,片内FALSH只有512KB,我的可执行文件已经超过了512KB,片内放不下,所以想放到片外SDRAM ...

你这样肯定不行了,FLASH是非易失性的,你直接指向的化根本不会保存在SDRAM里面的,SDRAM是非掉电保存的,除非把代码下载进NANDFLASH或者SPIFLASH中通过BOOTLOADER跳转到SDRAM中

一周热门 更多>