完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
ti的帮助文档里是这么讲的:
The DATA_SECTION pragma allocates space for the symbol in a section called section name. The syntax for the pragma in C is: #pragma DATA_SECTION (symbol, "sectionname"); The syntax for the pragma in C++ is: #pragma DATA_SECTION ( "sectionname"); The DATA_SECTION pragma is useful if you have data objects that you want to link into an area separate from the .bss section. This directive is illustrated in the following example. Using the DATA_SECTION Pragma a) C source file #pragma DATA_SECTION(bufferB,"my_sect") char bufferA[512]; char bufferB[512]: b) C++ source file char bufferA[512]; #pragma DATA_SECTION("my_sect") char bufferB[512]; c) Assembly source file .global _bufferA .bss _bufferA,512,4 .global _bufferB _bufferB: .usect "my_sect",512,4 我理解的意思是: 定义一个数据段: 段名为: "section name" 段的内容在: symbol 里 在CCS编程中,如果我们不指定变量的存放位置,编译器会自动的给变量分配一个位置,但是如果有的时候需要把变量放在一个特定的空间内,我们应该如何操作呢,CCS提供了如下的两个指令 #pragma CODE_SECTION #pragma DATA_SECTION 其中data_section是针对数据空间的,code_section是针对程序空间的,具体的使用办法是 #pragma DATA_SECTION(bufferB, ”my_sect”) char bufferB[512]; 在.cmd文件中建立对应的section就可以使用了. MEMORY [ PAGE 1: spacename : origin = 0x...., length0x.. ] SECTIONS [ .my_sect : [] >spacename PAGE1 ] |
|
相关推荐
1 个讨论
|
|
对于汇编器,它会自动创建.text, .bss和.data三个段。我们可以使用#pragma CODE_SECTION和#pragma DATA_SECTION来创建更多的段。 默认情况下,各个段所分配的存储空间配置如下(可根据需要进行更改):
最后,以一个ADC寄存器对应的内存地址分配的例子,来看看完成的cmd文件是如何完成的(事实上所有寄存器的内存地址分配在TI的外设和头文件包中已经帮我们做好了,这里是个演示)。 首先,在使用寄存器(或者自定义的变量)的头文件或者源程序里,为寄存器(或者自定义的变量)指定一个自定义的段: #ifdef __cplusplus #pragma DATA_SECTION("AdcRegsFile") #else #pragma DATA_SECTION(AdcRegs,"AdcRegsFile"); #endif volatile struct ADC_REGS AdcRegs; //使得结构体被分配在指定的段中 然后,在cmd文件中,在SECTIONS下把AdcRegsFile这个段分配到ADC这块内存区域中,并在MEMORY中定义ADC这块内存区域的起始位置和长度。 MEMORY [ PAGE 0: /* Program Memory */ /* 省略不相关内容的显示 */ PAGE 1: /* Data Memory */ /* 省略不相关内容的显示 */ ADC : origin = 0x007100, length = 0x000020 /* ADC registers */ /* 省略不相关内容的显示 */ ] SECTIONS [ /* 省略不相关内容的显示 */ AdcRegsFile : > ADC, PAGE = 1 /* 省略不相关内容的显示 */ ] 以上是一个自定义段并制定内存区域的完整例子。如果不需要这样的自定义,则可以不去管它,使用现有的,比如某个例子中可以使用的cmd文件就可以了 |
|
|
|
|
|
只有小组成员才能发言,加入小组>>
NA555DR VCC最低电压需要在5V供电,为什么用3.3V供电搭了个单稳态触发器也使用正常?
683 浏览 3 评论
MSP430F249TPMR出现高温存储后失效了的情况,怎么解决?
599 浏览 1 评论
对于多级放大电路板,在PCB布局中,电源摆放的位置应该注意什么?
1054 浏览 1 评论
739 浏览 0 评论
普中科技F28335开发板每次上电复位后数码管都会显示,如何熄灭它?
524 浏览 1 评论
请问下tpa3220实际测试引脚功能和官方资料不符,哪位大佬可以帮忙解答下
161浏览 20评论
请教下关于TAS5825PEVM评估模块原理图中不太明白的地方,寻求答疑
125浏览 14评论
在使用3254进行录音的时候出现一个奇怪的现象,右声道有吱吱声,请教一下,是否是什么寄存器设置存在问题?
126浏览 13评论
TLV320芯片内部自带数字滤波功能,请问linein进来的模拟信号是否是先经过ADC的超采样?
122浏览 12评论
TPA6304-Q1: TPA6304 两片公用一组I2C的话,其中一片配置不成功怎么办
168浏览 10评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-24 18:20 , Processed in 0.830190 second(s), Total 55, Slave 44 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号