TMS320C6678 是基于TI最新 DSP 系列器件TMS320C66x之上,采用 8 个 1.25GHz DSP 内核构建而成,并在单个器件上完美集成了 320 GMAC 与 160 GFLOP 定点及浮点性能,从而使用户不仅能整合多个 DSP 以缩小板级空间并降低成本,同时还能减少整体的功耗要求,充分满足移动网络领域对通道密度及高质量媒体服务日益增长的需求。自2011年德州仪器推出多核DSP TMS320C6678后,以该芯片为核心的DSP开放板层出不穷,学习这款芯片的人日益增多。下面小编把工程师朋友在开发这款芯片的过程中遇到的问题和解决方法以问答的形式进行了整理,希望对初学者能有所帮助!
一.TMS320C6678网络问题
1问:用自己开发的板子,采用的双网口设计,网口0和网口1。用TI官方给的例子只能网口1通信,在例子上修改了sgmii初始化了sgmii0和sgmii1但是还是只能网口1通信。
答:要修改网络接口管理单元的库,nimu。在EMACInit_Core函数中有设置发送接口配置的信息。这个函数是隐形的被NDK调用。所以刚开始比较难找到相应的位置。
2问:c6678的两个网口是如何同时使用的, 能不能多个cpu core 同时使用同一个网口, 请赐教。
答:C6678的EMAC是cppi器件,即通过Navigator进行包的管理,所以收发的数据包都是Queue来管理,可以同时使用;需要注意的是可以配置每个发送的包由指定的port发出,或者向两个port广播。
二.TMS320C6678关于多核编程问题
1问:目前的C++程序的段,都放到了DDR3里,这样的话,我要是三个核同时运行,岂不是对其中相同的堆栈进行访问吗?嗯,对于所有段都放到DDR3的情况,怎样进行多核编程呢?
答:在6678里面有MPAX MMU的,可以在DDR3上给每个核都开辟一个私有的空间,在物理地址上是连续的,但对每个核读/写来说地址都是相同的。不同core的system stack及task stack必须不一样。
三.TMS320C6678主频设置问题
1问:datasheet里面讲TMS320C6678的主频为1G,1.25G,1.4G可选,请问,如何设置TMS320C6678的主频参数呢?是在boot的时候作设置吗?与cmd文件有没有关系呢?
答:首先要确定你的芯片是不是支持1.2G和1.4G,不是所有的C6678都支持。其次,主频你是在MAINPLL里面配置的,根据你的输入时钟频率,配置MAINPLL得到一个主频。你可以通过boot做配置,也可以通过boot后软件配置。与cmd文件没有关联。
四.tms320c6678 的中断响应
1问:在中断响应的过程中,1024个系统事件先是通过ch_map映射到channel ,channel再映射到主机中断输出,host interrupt output 是需要映射到INTC的system events然后才能挂接到dsp可以识别的12中断上,这里host interrupt output是256个,INTC的system events是128个,这里host interrupt output 和system events是有什么映射关系吗?有的话是如何映射的?
答:chip interrupt controller的输入称作host interrupt event,这些事件经过映射可以与任意的chip INTC channel进行映射输出;chip INTC channel的某些输出事件是直接与corepac INTC的对应输入事件一一连接,具体的对应关系参考6678 data manual interrupt表格。chip intc只有特定的输出才会core intc与的某些输入一一对应,所以只有将Chip INTC的输入256个事件与这些特定的输出映射起来,才可以最终路由到core内部12个中断矢量表。tms320c6678
本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/ruanjian/article-36760-1.html
我就为了这一堆升级的