6567|4

71

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

小弟有个简单的问题,关于#pragma [复制链接]

我看ti的例子中有这样定义:
#ifdef __cplusplus
#pragma DATA_SECTION(\"AdcRegsFile\"
#else
#pragma DATA_SECTION(AdcRegs,\"AdcRegsFile\";
#endif
volatile struct ADC_REGS AdcRegs;
诸如此类。

我理解为,将那些寄存器的定义类和相关的段对应起来。
但是我自己做了一个程序,我只是把那个DSP281x_GlobalVariableDefs.c通过菜单project->add file tu project。出现问题是:
>> warning: creating output section FlashRegsFile without SECTIONS specification
诸如此类的警告信息。
我想请问,这种信息到底是什么意思,怎么样才能够解决。

还有,这些段要跟相应的地址对应,但是为什么没有这样的语句呢?

最新回复

如果真的像楼上大哥说得那样我就安心了。但是ti给出的cmd文件是这样的: MEMORY { PAGE 0 :        RAMM0      : origin = 0x000000, length = 0x000400    BEGIN      : origin = 0x3F8000, length = 0x000002                PRAMH0     : origin = 0x3F8002, length = 0x000FFE    RESET      : origin = 0x3FFFC0, length = 0x000002                      PAGE 1 :    /* For this example, H0 is split between PAGE 0 and PAGE 1 */    RAMM1    : origin = 0x000400, length = 0x000400    DRAMH0   : origin = 0x3f9000, length = 0x001000          } SECTIONS {    codestart        : > BEGIN,       PAGE = 0    ramfuncs         : > PRAMH0       PAGE = 0      .text            : > PRAMH0,      PAGE = 0    .cinit           : > PRAMH0,      PAGE = 0    .pinit           : > PRAMH0,      PAGE = 0    .switch          : > RAMM0,       PAGE = 0    .reset           : > RESET,       PAGE = 0, TYPE = DSECT /* not used, */        .stack           : > RAMM1,       PAGE = 1    .ebss            : > DRAMH0,      PAGE = 1    .econst          : > DRAMH0,      PAGE = 1          .esysmem         : > DRAMH0,      PAGE = 1       } 大家可以看到根本没有我上面的离子所说的AdcRegsFile段。我就很纳闷了。怎么会让寄存器的c定义和这些地址联系起来呢。由哪位高人能够解出其中真妙。我感觉,中国总是被外国人糊弄。  详情 回复 发表于 2007-7-24 05:26
点赞 关注

回复
举报

62

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
#pragma DATA_SECTION
在C和C++下的参数是不一样的,所以就要判断一下
至于DATA_SECTION()这个函数的意思就是将某个数组(反正是某些地址)
放在指定的存储空间里面
比如你定义了数组b[],然后要将这个数组放在片内就
#pragma DATA_SECTION(b,\"XXXX\";
其中XXXX就是片内的那个标志--这个是c下面的
 
 
 

回复

73

帖子

0

TA的资源

一粒金砂(初级)

板凳
 

小弟有个简单的问题,关于#pragma

那么xxxx的标号是怎么定义的呢?
 
 
 

回复

63

帖子

0

TA的资源

一粒金砂(初级)

4
 
我知道那个xxxx的意思。
但是,ti 给的例子中没有定义什么AdcRegsFile段,我找了很久都没有看到。
那是不是这个段定义是在lib文件中的?

我就想知道rts2800_ml.lib文件中到底有些什么东西?
 
 
 

回复

64

帖子

0

TA的资源

一粒金砂(初级)

5
 
如果真的像楼上大哥说得那样我就安心了。但是ti给出的cmd文件是这样的:






MEMORY
{
PAGE 0 :

   
   RAMM0      : origin = 0x000000, length = 0x000400
   BEGIN      : origin = 0x3F8000, length = 0x000002            
   PRAMH0     : origin = 0x3F8002, length = 0x000FFE
   RESET      : origin = 0x3FFFC0, length = 0x000002           

         
PAGE 1 :

   /* For this example, H0 is split between PAGE 0 and PAGE 1 */

   RAMM1    : origin = 0x000400, length = 0x000400
   DRAMH0   : origin = 0x3f9000, length = 0x001000         
}


SECTIONS
{


   codestart        : > BEGIN,       PAGE = 0
   ramfuncs         : > PRAMH0       PAGE = 0  
   .text            : > PRAMH0,      PAGE = 0
   .cinit           : > PRAMH0,      PAGE = 0
   .pinit           : > PRAMH0,      PAGE = 0
   .switch          : > RAMM0,       PAGE = 0
   .reset           : > RESET,       PAGE = 0, TYPE = DSECT /* not used, */
   
   .stack           : > RAMM1,       PAGE = 1
   .ebss            : > DRAMH0,      PAGE = 1
   .econst          : > DRAMH0,      PAGE = 1      
   .esysmem         : > DRAMH0,      PAGE = 1

     
}
大家可以看到根本没有我上面的离子所说的AdcRegsFile段。我就很纳闷了。怎么会让寄存器的c定义和这些地址联系起来呢。由哪位高人能够解出其中真妙。我感觉,中国总是被外国人糊弄。
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表