您的位置:首页 > 移动开发 > IOS开发

C6455上移植SYS/BIOS

2015-11-04 19:03 411 查看
在C6455上默认是采用了DSP/BIOS+LwIP,当开发环境统一到CCS5.4后希望将操作系统也进行统一,从而使应用一些模块在DSP间可以灵活移植。主要的工作有如下几个方面。

移植BIOS

操作系统方面,SYS/BIOS是升级版的DSP/BIOS,主要模块差别都不大。其区别主要可以分为以下几方面:

1.接口更改。新版操作系统的接口有大幅修改,但同时提供了一个兼容层,可以基本做到不修改代码。但为了与C6678相统一,这里对原驱动中的操作系统接口都做了修改。

2.配置更改。原来的配置文件是tcf文件,而新版CCS的配置文件是cfg文件,只需要照猫画虎将原配置文件内容做修改即可。另外新的CCS在建立工程时需要一个板级平台内存和时钟等配置,需要自己利用CCS的功能自行生成。

3.调试方式更新。原来的CCS菜单栏内置了DSP/BIOS的调试功能,新的CCS修改了位置,做成一个ROV组件和其他组件,功能上其实更强大了。这个改动不影响代码。

移植NDK

原LwIP与SYS/BIOS需要做适配,不如直接使用TI自家的NDK。而NDK属于分层设计,需要进行移植,即实现NSP层。



对于C6678等新芯片,其PDK中包含有全套的NSP层驱动,而对于C6455,需要从早期NDK中寻找驱动。从NDK2.0.0中的\packages\ti\ndk\src\hal\dsk6455\eth_c6455目录中找到主要的几个文件,对其中的ethdriver.c中的部分内容做部分修改即可。

ABI兼容性

应用程序二进制接口ABI分为老的COFF和新的ELF两种,关于两者的差别可以见《The TMS320C6000 EABI Migration Guide(SPRAB90)》中的说明。C6455新建工程默认是COFF格式,老的库如CSL库等也是COFF格式。但为了保证今后某些公用库可以在6455和6678间快速移植,需要将6455也全面升级为ELF格式。在上面这篇文档中TI明确提出不提供直接转换工具,只能重编源代码。CSL能找到源码,因此重新生成ELF格式库并没有特别大的阻碍。但是NDK默认并没有提供6455的ELF格式的预编译库,因此需要自行编译NDK。

对于重新编译NDK库这一主题,TI的文档中有一些说明,但并不详细,还是需要自行研究其目录结构和makefile。在NDK安装目录下,有ndk.bld和ndk.mak两个文件,前一个是编译配置文件,后一个是makefile。其使用的编译器是XDC。先将整个NDK文件夹复制一份,修改编译配置文件和makefile配置生成elf.C64P目标等信息,调用gmake命令即可生成新格式的库文件,生成结果为分布在多处子目录中的.ae64P。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: