关于led程序的问题,求助

zxq180   2008-10-10 08:11 楼主
// 定义指示灯寄存器地址和寄存器类型


// 子程序接口
//void Delay(unsigned int nDelay);        // 延时子程序
//#include \"Delay.c\"
//#include \"DPPL_init.c\"
//#include \"sdram_init.c\"



        #define LBDS (*((unsigned int *)0x400001))
main()
{
        unsigned int uLED[4]={1,2,4,8};        // 控制字,逐位置1: 0001B 0010B 0100B 1000B
        int i;

       
        PLL_Init(80);                                // 初始化DSP运行时钟
        SDRAM_init();                                // 初始化EMIF接口
        while ( 1 )
        {
                for ( i=0;i<4;i++ )
                {
                 LBDS=uLED;                // 正向顺序送控制字
                        Delay(256);                        // 延时
                }
                for ( i=3;i>=0;i-- )
                {
                        LBDS=uLED;                // 反向顺序送控制字
                        Delay(256);                        // 延时
                }
        }

}

------------------------------  led.pjt - Debug  ------------------------------
[Delay.c] \"c:\\ti\\c5500\\cgtools\\bin\\cl55\" -g -q -fr\"C:/ICETEK/VC5509AS61/C/led/Debug\" -@\"../C/led/Debug.lkf\" \"Delay.c\"

[DPPL_init.c] \"c:\\ti\\c5500\\cgtools\\bin\\cl55\" -g -q -fr\"C:/ICETEK/VC5509AS61/C/led/Debug\" -@\"../C/led/Debug.lkf\" \"DPPL_init.c\"

[LED.c] \"c:\\ti\\c5500\\cgtools\\bin\\cl55\" -g -q -fr\"C:/ICETEK/VC5509AS61/C/led/Debug\" -@\"../C/led/Debug.lkf\" \"LED.c\"
\"LED.c\", line 25: warning: conversion from integer to smaller pointer
\"LED.c\", line 30: warning: conversion from integer to smaller pointer
\"LED.c\", line 35: warning: last line of file ends without a newline

[sdram_init.c] \"c:\\ti\\c5500\\cgtools\\bin\\cl55\" -g -q -fr\"C:/ICETEK/VC5509AS61/C/led/Debug\" -@\"../C/led/Debug.lkf\" \"sdram_init.c\"

[Linking...] \"c:\\ti\\c5500\\cgtools\\bin\\cl55\" -@\"Debug.lkf\"

Build Complete,
  0 Errors, 3 Warnings, 0 Remarks.


是什么错误,怎么解决阿?谢谢!!

回复评论 (11)

不是错误,是那个警告,但是LED就不能亮了
点赞  2008-10-10 08:45
没有错阿,这个是原程序拷下来的阿,开始在一个.c下运行就可以
后来把子程序分开,就出现这种错误。
点赞  2008-10-10 09:27
我昏死阿,刚装了ccs3.1,编译以后还是出现警告,不知道是什么问题!
点赞  2008-10-11 12:31
还有就是编译有错误;
源程序
unsigned int *LBDS;
LBDS=(unsigned int*)0x400001;
000113 ec31be400001    AMAR *(#400001h),XAR3
000119 eb0cb5                MOV XAR3,dbl(*SP(#06h))

而我自己编的
unsigned int *LBDS;
LBDS=(unsigned int*)0x400001;
只出现
000287 e60a01           MOV #1,@#05h

这个明显是错的嘛。
点赞  2008-10-11 12:55
你定义LED地址的时候错了,还是按源程序那样定义吧。如:
  unsigned int * LED0 = (unsigned int *) 0x400001;
点赞  2008-10-11 13:23
这个我也试了

unsigned int * LBDS = (unsigned int *) 0x400001;
出现
warning: conversion from integer to smaller pointer
很不理解阿,是不是指针堆栈要什么定义?
点赞  2008-10-11 13:58
我知道是什么原因了!unsigned int 是两个字节空间,而你的地址是0x400001,这个地址占3个字节空间。所以你应该用unsigned long,这个是4个字节
点赞  2008-10-12 01:48
main()
{
   int i;
   unsigned int uLED[4]={1,2,4,8};
   unsigned int*LBDS;
   LBDS=(unsigned int*)0x400001;
   while (1)
   {
       for(i=0;i<4;i++)
       {
          *LBDS=uLED;
       }
       for(i=3;i>=0;i--)
       {
          *LBDS=uLED;
       }
    }      
}
我单单编译这个程序也出现警告
int 改成 long 也不行;但是在tc是编又没有问题!
编译完后,分给LBDS的地址上的数值还不能改。
点赞  2008-10-12 13:57

LBDS=(unsigned long*)0x400001;
这行还是出现warning: conversion from integer to smaller pointer的提示
点赞  2008-10-12 14:20
问题解决了,是设置问题,在project-->build options-->advanced-->memory model-->large!以前是small!

谢谢各位的帮助,这是个不错的论坛!!
点赞  2008-10-14 09:28

我也是这个问题


我的程序是这样的
#define LBDS (*((unsigned int *)0x400001))

unsigned int uLED[4]={1,2,4,8};       
LBDS=uLED[0]; 就在这行有警告

这是两个警告       
\"xunlian.c\", line 45: warning: conversion from integer to smaller pointer

>> warning: \'.sysmem\' section not found -- ignoring \'-heap <size>\' option.

按照楼上的把这个改了project-->build options-->advanced-->memory model-->large!以前是small!

改完之后有错误:
>>   error: linking files for incompatible targets (file
            \'C:\\\\CCStudio_v3.3\\\\MyProjects\\\\xunlian1\\\\Debug\\\\xunlian.obj\')
>> C:\\\\CCStudio_v3.3\\\\MyProjects\\\\xunlian1\\\\Debug\\\\xunlian.obj:   error:
               C:\\\\CCStudio_v3.3\\\\MyProjects\\\\xunlian1\\\\Debug\\\\xunlian.obj is
               large model, but boot.obj
               (C:/CCStudio_v3.3/C5500/cgtools/lib/rts55.lib) is small model
哪位给我指点一下我用的是5510的软仿,库是rts55.lib,ccs3.3的编译环境

点赞  2009-9-1 02:47
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复