打印

关于CMD文件的疑问

[复制链接]
1650|26
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
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。

使用特权

评论回复
5
CCompton| | 2017-11-28 11:00 | 只看该作者
楼主说的是CMD文件,不是DMA哦

使用特权

评论回复
6
Richardd| | 2017-11-28 11:16 | 只看该作者
section是对代码和数据根据他们的特点分类放在一起;memory是把分类完的代码和数据放到具体物理内存的位置。

使用特权

评论回复
7
kkzz| | 2017-11-29 20:20 | 只看该作者
MEMORY

{

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

PAGE 0 :

RAML1 : origin = 0x009000, length = 0x001000

RAML2 : origin = 0x00A000, length = 0x001000

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

使用特权

评论回复
8
hudi008| | 2017-11-29 20:21 | 只看该作者
CMD文件其实就是用户的“声明”

使用特权

评论回复
9
lzmm| | 2017-11-29 20:21 | 只看该作者
CMD文件的资源清单用关键字“MEMORY”作为标识

使用特权

评论回复
10
minzisc| | 2017-11-29 20:22 | 只看该作者
run= allocation(强制地址或存储空间名称)同>allocation:定义输出段将会在哪里

使用特权

评论回复
11
selongli| | 2017-11-29 20:23 | 只看该作者
已初始化的段:.text,.cinit,.const,.econst,.pinit和.switch.

使用特权

评论回复
12
fentianyou| | 2017-11-29 20:23 | 只看该作者
段被分为两个不同的组:初始化了的和没被初始化的

使用特权

评论回复
13
xiaoyaodz| | 2017-11-29 20:24 | 只看该作者
2)MEMORY命令:描述系统实际的硬件资源
3)SECTIONS命令:描述“段”如何定位

使用特权

评论回复
14
febgxu| | 2017-11-29 20:24 | 只看该作者
如果将DSP比成图书馆的话,那么我们的程序和数据相当于书籍,而cmd文件相当于书架。

使用特权

评论回复
15
sdlls| | 2017-11-29 20:25 | 只看该作者
CMD文件里有两个基本的段:初始化段和非初始化段。初始化段包含代码和常数等必须在DSP上电之后有效的数。

使用特权

评论回复
16
pixhw| | 2017-11-29 20:25 | 只看该作者
各种代码段以及段名,这些是需要用CMD文件来帮助CCS定位安排到DSP的地址

使用特权

评论回复
17
kkzz| | 2017-11-29 20:26 | 只看该作者
段名是在这里定义的

使用特权

评论回复
18
hudi008| | 2017-11-29 20:26 | 只看该作者
整个系统里的存储器资源。无论是DSP芯片自带的,还是用户外扩的,凡是可以使用的、需要用到的存储器和空间,用户都要一一声明出来

使用特权

评论回复
19
minzisc| | 2017-11-29 20:26 | 只看该作者
楼主这个cmd文件写全了。

使用特权

评论回复
20
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

粉丝