[技术求助] 关于DSP配置CMD文件的使用

[复制链接]
2221|3
 楼主| kunhuangon 发表于 2012-10-31 10:06 | 显示全部楼层 |阅读模式
配置好主程序的CMD文件,才能将FLASH成功烧录,并且将FLASH中的文件拷贝到RAM中运行。关于CMD文件的配置:
首先在F2812.CMD文件中,可以看到有关于加载FLASH到RAM的内容:
  ramfuncs        : LOAD = FLASHD,
                        RUN = RAML0,
                        LOAD_START(_RamfuncsLoadStart),
                        LOAD_END(_RamfuncsLoadEnd),
                        RUN_START(_RamfuncsRunStart),
                        PAGE = 0
以及在C文件中调用FLASH 到RAM的函数memcpy,将它放在系统初始化(InitSystem();)之后运行。
InitSystem();
memcpy(&RamfuncsRunStart,
               &RamfuncsLoadStart,
               &RamfuncsLoadEnd - &RamfuncsLoadStart);
Initflash();
关于ramfuncs,则在系统初始化中定义即可。如:sysctrl.c中
#pragma CODE_SECTION(InitFlash, "ramfuncs")。
 楼主| kunhuangon 发表于 2012-10-31 10:13 | 显示全部楼层
个人见解 发上来看看
airwill 发表于 2012-11-1 12:02 | 显示全部楼层
由于 DSP 的编译器的编译结果是未定位的,DSP 没有操作系统来定位执行代码,每个客户设计的 DSP 系统的配置也不尽相同,因此需要用户自己定义代码的安装位置。
cmd 文件就用于 DSP 代码的定位。
zyj9490 发表于 2015-9-28 00:33 | 显示全部楼层
RamfuncsRunStart 在C文件中是UINT16* ,即是指针,为何在memcpy(&RamfuncsRunStart,
               &RamfuncsLoadStart,
               &RamfuncsLoadEnd - &RamfuncsLoadStart);以取址的方式传递到函数内部,本人理解为不需要取址.
您需要登录后才可以回帖 登录 | 注册

本版积分规则

10

主题

132

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部