Motorola的PowerPC采用大端模式(big endian),Intel的CPU采用小端(little endian)模式,而TI的DSP为方便与其他类型处理器的互联,大小端都支持并可通过硬件管脚进行配置。当基于NDK开发的小端DSP网络程序需要运行在大端模式的DSP上时,显然需要进行修改才能正常工作。修改工作是破费周折的,普通DSP软件工程师往往需要花费不少时间去摸索,本文正是想与大家分享从小端到大端的修改过程。
基本步骤1:将原先小端的lib文件都改成带“e”的大端lib文件,这些lib文件都可以在CCS和NDK的安装文件夹下面找到。
基本步骤2:在Project-->Build Option-->compiler-->Advanced下面将Endianess改成“Big Endian”
基本步骤3:在DSP/BIOs Config下面tcf文件中的”System—>Global Settings-->DSP Endian Mode”改成Big Endian;
基本步骤4:在DSP/BIOs Config下面tcf文件中的”System—>Scheduling-->HWI-->ECM”中使能ECM;
基本步骤5: 在建立链接的线程中,将对方的端口号和IP地址的字节顺序调转;
完成上述5个步骤的修改就大功告成了。但是还需要注意NDK版本的问题,NDK 1.94的lib文件在支持大端时是有问题,必须使用NDK 1.94.1以后的版本。现在TI网站上可以免费下载的NDK版本是2.0,使用过程中没有发现问题。 |