7352|11

86

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

关于led程序的问题,求助 [复制链接]

// 定义指示灯寄存器地址和寄存器类型


// 子程序接口
//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.


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

最新回复

我的程序是这样的 #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
点赞 关注

回复
举报

60

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
不是错误,是那个警告,但是LED就不能亮了
 
 
 

回复

64

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
没有错阿,这个是原程序拷下来的阿,开始在一个.c下运行就可以
后来把子程序分开,就出现这种错误。
 
 
 

回复

68

帖子

0

TA的资源

一粒金砂(初级)

4
 
我昏死阿,刚装了ccs3.1,编译以后还是出现警告,不知道是什么问题!
 
 
 

回复

82

帖子

0

TA的资源

一粒金砂(初级)

5
 
还有就是编译有错误;
源程序
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

这个明显是错的嘛。
 
 
 

回复

99

帖子

0

TA的资源

一粒金砂(中级)

6
 
你定义LED地址的时候错了,还是按源程序那样定义吧。如:
  unsigned int * LED0 = (unsigned int *) 0x400001;
 
 
 

回复

74

帖子

0

TA的资源

一粒金砂(初级)

7
 
这个我也试了

unsigned int * LBDS = (unsigned int *) 0x400001;
出现
warning: conversion from integer to smaller pointer
很不理解阿,是不是指针堆栈要什么定义?
 
 
 

回复

19

帖子

0

TA的资源

一粒金砂(初级)

8
 
我知道是什么原因了!unsigned int 是两个字节空间,而你的地址是0x400001,这个地址占3个字节空间。所以你应该用unsigned long,这个是4个字节
 
 
 

回复

75

帖子

0

TA的资源

一粒金砂(初级)

9
 
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的地址上的数值还不能改。
 
 
 

回复

60

帖子

0

TA的资源

一粒金砂(初级)

10
 

LBDS=(unsigned long*)0x400001;
这行还是出现warning: conversion from integer to smaller pointer的提示
 
 
 

回复

70

帖子

0

TA的资源

一粒金砂(初级)

11
 
问题解决了,是设置问题,在project-->build options-->advanced-->memory model-->large!以前是small!

谢谢各位的帮助,这是个不错的论坛!!
 
 
 

回复

86

帖子

0

TA的资源

一粒金砂(初级)

12
 

我也是这个问题


我的程序是这样的
#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的编译环境

 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

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

 
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
快速回复 返回顶部 返回列表