当前位置: 代码迷 >> 单片机 >> 关于MDK疏散加载文件的使用
  详细解决方案

关于MDK疏散加载文件的使用

热度:106   发布时间:2016-04-28 14:54:06.0
关于MDK分散加载文件的使用
各位大神,我想用应用程序运行在RAM中,以下是应用程序的分散加载文件
LR_IROM1 0x00020000 0x00060000  {    ; load region size_region
  ER_IRAM2 0x20000000 0x00008000  {  ; load address = execution address
   *.o (RESET, +First)
   *(InRoot$$Sections)
   .ANY (+RO)
  }
  RW_IRAM1 0x10000000 0x00010000  {  ; RW data
   .ANY (+RW +ZI)
  }

}
但是编译过不了

出现了这样的错误,大神们出来指导下,要怎样写分散加载文件才能使得程序运行在RAM中,我自己写了bootloader在片内FLAHS跳转是没有问题的,现在想把程序跳转到RAM中运行,用的芯片是LPC1788。大神们帮帮忙,非常感谢
------解决方案--------------------
才发现,关于程序分散加载的问题,你这段时间一直在问是吗。在其他论坛也能看到你了。我本人也是这方面学得有点感觉,所以喜欢回答这类问题。

分散加载,加载域和运行域这些东西,我是在做IAP和OS的时候搞明白的,推荐你看看《ARM程序分析与设计》这本书

我前后看了几遍,主要看了里面关于分散加载的章节,不是很多,现在基本都搞清楚了。

我不是想向你推荐这本书,这本书一般般,而且有很多显而易见的错误。但它讲分散加载确实可以。

我也是因为看了这本书,搞明白了分散加载(还有其他的加法,不同的场合叫法不同),然后看了书上汇编和启动的章节,自己也写了个简单的OS,从这本书里,我有很多收获。要说好书,杜春雷的那本书不错,讲得很系统。

强烈建议你好好学学分散加载,非常有用的,并不是说MDK就会用到,ADS也会用到,IAR也一样要用到。
所有的单片机编译器都会用到的,只是不同的编译器,脚本语法不太一样,但原理一样。

就算你上到linux、wince那样的操作系统,分散加载的原理一样能帮助你理解程序。linux里面讲的text,data,bss段,其实和单片机里面RO,RW,ZI是一一对应的。
  相关解决方案