TMS320C6747移植dspbios的一些问题及解决方法

在研旭6747开发板led例程的基础上移植dspbios,目的是通过操作系统dspbios让led实现亮灭。

一开始出现的问题是有声明重复定义了,查找原因发现是研旭led程序中c6474.h这个头文件里定义了unsigned int,unsigned char.int,char等等这些数据类型为uint,uchar,ushort之类的宏,而dspbios的头文件里刚好有typedefine语句也定义了这些数据类型为另外的symbol,这样就重复定义了数据类型。解决方法是把c6747.h这个头文件里的这些宏定义注释掉,同时在用到uint,uchar,ushort等等这些数据类型的宏的语句里把宏全部改为数据类型本来的名称unsigned int,unsigned char,int,char,short等。改完之后就不再出现重复定义这个问题了,还有一个方法是,把dspbios里包含了这些数据类型的定义的那个头文件,具体哪个名字忘了,把它include到c6747.h里,用dspbios的宏定义,而把原来c6747.h里的宏定义给注释掉,但是这个方法并没有尝试,因为第一个成功了。

接着出现的问题是,内存重叠了,problems窗口给出的信息是memory overlap,这是因为原来例程里的cmd文件定义了内存各段的名称,而在bios的bioscfg.cmd文件里刚好也定义了这些段的位置,两者同时链接的话就会出现重叠的问题,解决办法是把例程的cmd文件c6747.cmd给删掉,而用dspbios的cmd文件。注意,可以打开bios.tcf文件进行内存管理,分配内存的各段。内存的分配必须要根据datasheet来,不要超出范围。

最后还有一个问题就是_TskLedOn和_TskLedOff unresolved的问题,这是因为在main.c程序里,点灯和灭灯的程序的名字还是没有改过来,还是ledon和ledoff,而在dspbios里,任务的名称是TskLedOn和TskLedOff,因此报错,把main.c的亮灭灯程序改成dspbios里亮灭灯的任务名称就可以了。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值