关于CMD文件的疑问

[复制链接]
 楼主| lefeng 发表于 2017-11-28 10:20 | 显示全部楼层 |阅读模式
知道了MEMORY命令下,  给一些内存区域命名是用户自定义的,
但是SECTIONS命令下, 有些段名让我不明所以。
今天看了点关于程序段的段的知识,知道了.text ,.stack这些代表什么意思。
但是我看了一些CMD文件,如F28335.CMD     SECTIONS下有IQmath,  IQmathTables
   IQmath              : > FLASHC      PAGE = 0                  /* Math Code */
   IQmathTables     : > IQTABLES,  PAGE = 0, TYPE = NOLOAD



这些我就不怎么懂了。我知道这两个应该是做定点运算要用的吧,
但是放在这里有什么用呢?
还有
   FPUmathTables    : > FPUTABLES, PAGE = 0, TYPE = NOLOAD

   DMARAML4         : > RAML4,     PAGE = 1
   DMARAML5         : > RAML5,     PAGE = 1
   DMARAML6         : > RAML6,     PAGE = 1
   DMARAML7         : > RAML7,     PAGE = 1

   ZONE7DATA        : > ZONE7B,    PAGE = 1


这些段名又是在哪里定义的呢?
CaLipton 发表于 2017-11-28 10:31 | 显示全部楼层
DMA只能访问RAM区块中的某些部分。具体是什么你可以在相关章节里面查找到。
Rospiers 发表于 2017-11-28 10:42 | 显示全部楼层
如果要用DMA搬运数据。就得定义这些段,并且把这些段指定到这个对应的RAM区域里面。然后再定义DMA存储数据的变量,例如数组等。到这个段里面。然后dma就能往这里面传数据了。
Lewisnx 发表于 2017-11-28 10:51 | 显示全部楼层
可以参看DMA相关的sample。
CCompton 发表于 2017-11-28 11:00 | 显示全部楼层
楼主说的是CMD文件,不是DMA哦
Richardd 发表于 2017-11-28 11:16 | 显示全部楼层
section是对代码和数据根据他们的特点分类放在一起;memory是把分类完的代码和数据放到具体物理内存的位置。
kkzz 发表于 2017-11-29 20:20 | 显示全部楼层
MEMORY

{

/* 省略不在此显示的代码 */

PAGE 0 :

RAML1 : origin = 0x009000, length = 0x001000

RAML2 : origin = 0x00A000, length = 0x001000

/* 省略不在此显示的代码 */

hudi008 发表于 2017-11-29 20:21 | 显示全部楼层
CMD文件其实就是用户的“声明”
lzmm 发表于 2017-11-29 20:21 | 显示全部楼层
CMD文件的资源清单用关键字“MEMORY”作为标识
minzisc 发表于 2017-11-29 20:22 | 显示全部楼层
run= allocation(强制地址或存储空间名称)同>allocation:定义输出段将会在哪里
selongli 发表于 2017-11-29 20:23 | 显示全部楼层
已初始化的段:.text,.cinit,.const,.econst,.pinit和.switch.
fentianyou 发表于 2017-11-29 20:23 | 显示全部楼层
段被分为两个不同的组:初始化了的和没被初始化的
xiaoyaodz 发表于 2017-11-29 20:24 | 显示全部楼层
2)MEMORY命令:描述系统实际的硬件资源
3)SECTIONS命令:描述“段”如何定位
febgxu 发表于 2017-11-29 20:24 | 显示全部楼层
如果将DSP比成图书馆的话,那么我们的程序和数据相当于书籍,而cmd文件相当于书架。
sdlls 发表于 2017-11-29 20:25 | 显示全部楼层
CMD文件里有两个基本的段:初始化段和非初始化段。初始化段包含代码和常数等必须在DSP上电之后有效的数。
pixhw 发表于 2017-11-29 20:25 | 显示全部楼层
各种代码段以及段名,这些是需要用CMD文件来帮助CCS定位安排到DSP的地址
kkzz 发表于 2017-11-29 20:26 | 显示全部楼层
段名是在这里定义的
hudi008 发表于 2017-11-29 20:26 | 显示全部楼层
整个系统里的存储器资源。无论是DSP芯片自带的,还是用户外扩的,凡是可以使用的、需要用到的存储器和空间,用户都要一一声明出来
minzisc 发表于 2017-11-29 20:26 | 显示全部楼层
楼主这个cmd文件写全了。
lzmm 发表于 2017-11-29 20:26 | 显示全部楼层
SECTIONS,PAGE,包括花括号、冒号,都是关键字符。注意:SECTIONS字符是复数形式。在花括号内,每一行最左侧的“.vectors”、“.text”、“.cinit” 、“.bss”、“.stack”这些名称,包括小数点,都是TI默认的关键字符,只有“.extdata”是用户自己定义的名称。另外,“VECS”、“PROG”、“SARAM”、“B0B1”、“ExtSRAM”必须是在MEMORY里声明过的资源名称。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

200

主题

1087

帖子

0

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

200

主题

1087

帖子

0

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