原创 【博客大赛】DSP28335—CMD文件中的各个段解释

2015-10-25 16:45 4288 16 18 分类: 处理器与DSP

cmd中以下代码如何解释?

   ramfuncs   : LOAD = FLASHD, 
                         RUN = RAML0, 
                         LOAD_START(_RamfuncsLoadStart),
                         LOAD_END(_RamfuncsLoadEnd),
                         RUN_START(_RamfuncsRunStart),
                         PAGE = 0

第1行表示该段的装载在PAGA0的FLASHD中
第2行表示该段的运行地址在PAGE0的RAML0中
LOAD_ START(_RamfuncsLoadStart)令编译器创建了一个变量RamfuncsLoadStart,该变量指向段ramfuncs的装载地址的首地址(LOAD_ START为编译伪指令,请见CCS的帮助文档);
LOAD_ START(_RamfuncsLoadEnd)令编译器创建了一个变量RamfuncsLoadEnd,该变量指向段ramfuncs的装载地址的末地址(LOAD_ END为编译伪指令,请见CCS的帮助文档);
RUN_ START(_RamfuncsRunStart)令编译器创建了一个变量RamfuncsRunStart,该变量指向段ramfuncs的运行地址的首地址(LOAD_ START为编译伪指令,请见CCS的帮助文档);
从第1和2行可以看出,段ramfuncs中的函数DSP28x_usDelay()的装载地址和运行地址是不同的,本程序中装载在Flash的块FLASHD中,而在SARAM L0中运行,这只是目标,实际运行时DSP并不会自动将Flash中的代码拷贝到SARAM中,因此需要手动添加代码来完成。
在C函数中,为了使用变量RamfuncsLoadStart、RamfuncsLoadEnd和RamfuncsRunStart,必须先声明,本工程在文件DSP2833x_GlobalPrototypes.h中做了如下声明:
extern Uint16 RamfuncsLoadStart;
extern Uint16 RamfuncsLoadEnd;
extern Uint16 RamfuncsRunStart;
然后就可以使用了。在Main.c中,使用MemCopy()函数将段ramfuncs中的函数DSP28x_usDelay()的代码从装载地址RamfuncsLoadStart—RamfuncsLoadEnd拷贝到RamfuncsRunStart开始的SARAM空间中。之后在程序运行时,只要调用DSP28x_usDelay()函数,都会自动地指向SARAM中相应的函数入口地址,这一点是自动完成的。MemCopy()函数原型在MemCopy.c中,DSP2833x_GlobalPrototypes.h声明。

文章评论2条评论)

登录后参与讨论

满不在乎 2015-11-12 21:51

谢谢,多多交流

用户1859553 2015-11-3 11:53

值得学习!!!

hot.summer_2010_438634915 2014-8-20 13:50

我觉得在一个行业坚持五年,到时候再决定是否离开,五年后可能你已经是单位的中流砥柱或者小领导了,收入也增加了,业务也熟练了,就不舍得离开了。

用户402158 2014-8-4 15:30

各位技术大牛,来交流下吧?因为坚持,所以成功!
相关推荐阅读
满不在乎 2016-06-14 23:22
[博客大赛]+嵌入式系统的学习路线图
嵌入式系统无疑是当前最热门最有发展前途的IT应用领域之一。嵌入式系统用在一些特定专用设备上,通常这些设备的硬件资源(如处理器、存储器等)非常有限,并且对成本很敏感,有时对实时响应要求很高等。...
满不在乎 2016-06-14 19:53
[博客大赛]+老外讲信号完整性之100条法则
1.信号上升时间约是时钟周期的10%,即1/10x1/Fclock。例如100MHZ 使中的上升时间大约是1NS. 2.理想方波的N 次谐波的振幅约是时钟电压副值的2/(N 派)倍。例如,1V时...
满不在乎 2016-04-22 16:20
【博客大赛】CAN/RS-485总线隔离技术分析
  您在使用CAN或RS-485总线进行调试时,是否遇到过偶尔通信出错?或者接收不到数据?一直正常使用的总线,突然出现大范围的错误,或者节点损坏?您还在为这些问题不知所措,摸不着头脑吗?使用总线隔...
满不在乎 2016-04-22 16:07
【博客大赛】可编程电子负载
电子负载,英文名称为electronic load,顾名思义,是用电子器件实现的“负载”功能,其输出端口符合欧姆定律。具体地说,电子负载是通过控制内部功率器件MOSFET或晶体管的导通量,使功率管...
满不在乎 2016-03-09 10:43
[博客大赛]+毕业论文写作注意事项
硕士论文撰写时应该注意的问题 1.硕士生在动手撰写学位论文之前,首先要在头脑里详细构思论文的整体结构,多参考其他的硕士论文的写法,列出详细的提纲,并尽可能的详细,这样在动笔开始写作以后就不会脱...
满不在乎 2016-01-25 16:30
【博客大赛】电源滤波电容使用知识点
          滤波电容在开关电源中起着非常重要的作用,如何正确选择滤波电容,尤其是输出滤波电容的选择则是每个工程技术人员都十分关心的问题。我们在电源滤波电路上可以看到各种各样的电容,10...
我要评论
2
16
关闭 站长推荐上一条 /2 下一条