66AK2x是TI公司在2013年推出的一款C66x芯片,作为6678的升级版本。提升处理运算速度的同时,巧妙地引入ARM核。让ARM搭载Linux系统来管理外设,比如串口,网络,DDR.SRIO等,让DSP专注于信号处理,大大提高了DSP核的应用效率。这种多核异构的模式,TI的达芬奇系列芯片上已经获得应用于视频图像处理中。C66x系列dsp具有最强的浮点运算能力,Linux得力于开源社区的支持,具有丰富的外设驱动支持。66AK2x芯片中更让ARM和DSP核联合更上一层楼。
此系列博文的首要目的是梳理66AK2x芯片软件开发所需要的关键知识点。让开发人员更好的入门。
首先是开发环境的搭建,主要是涉及DSP软件开发配套的CCS的安装配置。安装芯片对应的MCSDK软件开发包,仿真器的使用。嵌入式LInux开发环境的配置,包括nfs,tftp,git,交叉编译器。Linux的u-boot,设备树,内核,文件系统的编译与加载。
其次是介绍DSP开发基础,在没有实时操作系统的情况下了解DSP的底层机制。比如中断机制,时间管理机制,内存管理机制。对裸机中的cmd,gel文件进行了解。有助于更好的了解DSP这款处理器。并且TI提供的外设控制大多是在裸机下的程序。调试外设的时候,很多时候要从裸机程序着手。
sys/bios 是DSP中跑的实时操作系统,之前的名称是dsp/bios,TI是觉得这个实时操作系统也可以跑在其他的芯片上。叫dsp/bios就好像只能跑在dsp中,于是乎就改了名称。
有了操作系统,优势很明显,底层的时钟,内存配置在系统启动前都完成好了,不需要单独的配置。对于复杂的程序来说,操作系统会提供多线程机制,核间通信也会方便些。程序编写会更加灵活。本系列的博文会介绍dsp的多线程机制,包括ide,hwi,swi,task。介绍多线程之前的同步方式,如Gate,mailbox,信号量。还有多核间的通信方式:ipc中断,共享内存,qmss,srio。还有和ARM核的通信,多核异构中的资源管理。
在Linux中,DSP作为ARM的外设,已文件的形式存在。TI提供mpm的机制,可以在linux中加载dsp程序。对于dsp中的外设,如qmss,edma3,pa,srio,TI所提供的是用户空间驱动。本文也会进行分析。
对于dsp应用开发来说,openem(八核之间的负载均衡),使用TI提供的imglib,mathlib,dsplib,这些就很关键了。
本人接触这款芯片时间不长。很多内容都是边学边记录。如果所写内容出现偏差错误。望君请教。