简介:

之前做过几个关于TMS320C6678芯片的开发项目,都较为顺利,毕竟官方提供的资源以及网络上的资源都很丰富。最近公司准备开发国产DSP 银河飞腾的FT M6678的移植开发工作,所以准备写一个国产DSP的专题,记录一下开发过程。

首先看了一下差异,国产M6678与TI的C6678功能性能大致类似,但是在芯片架构,开发工具,接口外设方面都存在差距,先看一下各自的功能框图:

TMS320C6678功能框图如下:

FT-M6678功能框图如下:

差异:

从功能框图上都可以很清晰地看出一部分差异,至少内部总线从TeraNet变成CrossNet,Ethernet Switch和Multicore Navigate也无影无踪了,网口从2个变成了1个,另外添加了1553B接口等等。下面根据官方文档我们再系统地、仔细地对比一下。

划重点:首先,国产DSP的PIN脚排布与TI的不一样,所以不是PIN2PIN兼容的,不过FT-M6678H封装与TI封装一致,那么之前的设计是否需要更改呢?需要自己去查一下《FT-M6678 DSP产品使用手册》“引脚表”来确认和之前的设计是否一致。国产DSP设计原则还是兼容设计:

a. 国产芯片和进口芯片同功能管脚,位置相同;

b. 进口芯片独有的管脚,保持默认电平配置;

c. 国产芯片增加引脚尽量使用RSV引脚,或使用删除部件的引脚。

其次,FT-M6678分为两中封装型号,FT-M6678H为陶瓷封装,FT-M6678N为塑封。

再次,电源设计上有差异,在硬件设计时需要注意!

划重点:首先,国产FT-M6678的主频不支持1.25GHz了(虽然在我的项目中一直使用的是1GHz的);

其次,国产FT-M6678仅支持小端,不支持大端模式了。

其他,L1/L2 Cache,MSMC,DSP内核等等基本上都是一摸一样的~

划重点,核外存储系统差异就较为明显了,EMIF和DDR3接口的位宽都有调整了,对我来说DDR部分影响较小,基本上可以不改动,但是EMIF侧就需要调整一下了。

这部分差异就更大了,具体的就看右侧说明部分的提示了~上电顺序部分注意一下哦!~

高速接口部分,国产DSP的SRIO接口增加了一路,SGMII网络减少了一路.

低速接口部分基本上大同小异,仅仅是增加了一路1553B航空总线接口。

自举方式有些微差异,不影响我的项目,我只用EMIF NORFLASH启动。

仿真器需要换成FT-EMU的,开发工具还是CCS5.5/6.0,只是需要安装一个支持包(M66支持包),该软件是在"FT-M6678手册及交付物"文件夹内提供的,里面有安装使用说明,按照步骤来就可以了。

包加速器部分,国产DSP基本上就不支持了,另辟蹊径地使用OpenMP来替代,FT在TI的omp库上移植了一个多核软件队列支持核间任务信息的交互,来替换MC navigator的硬件队列管理子系统。

在开发时FT-M6678不支持软件项目包括:

1. M6678与C6678不兼容部件的CSL库和底层驱动LLDs。

2. 与Multicore Navigator相关的IPC QMSS Transport、PktLIB和OpenEM。

不过国产DSP提供了兼容的CSL库,并提供了配套的驱动接口函数,详见“FT-M6678 Project”文件夹。

操作系统方面,M6678上可适配锐华、凌玖、ucCos、ucLinux以及SYS/BIOS等。

其他:

国产DSP FT-M6678官方提供资料目录如下:

今天简单讲讲国产和进口6678的一些差异,大部分工作还是在准备中。具体开发和使用情况,待我开发后一点点补充~

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐