打印
[技术求助]

关于DSP配置CMD文件的使用

[复制链接]
1705|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

粉丝