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

20030201   2007-7-21 09:40 楼主
我看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
诸如此类的警告信息。
我想请问,这种信息到底是什么意思,怎么样才能够解决。

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

回复评论 (4)

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

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

那么xxxx的标号是怎么定义的呢?
点赞  2007-7-22 13:46
我知道那个xxxx的意思。
但是,ti 给的例子中没有定义什么AdcRegsFile段,我找了很久都没有看到。
那是不是这个段定义是在lib文件中的?

我就想知道rts2800_ml.lib文件中到底有些什么东西?
点赞  2007-7-23 02:26
如果真的像楼上大哥说得那样我就安心了。但是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
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复