陈老师:
您好,最近软件工作已经有很大进展(就需要运行的算法而言,可以说目前软件工作可以告一个段落了,就是阶段性完结了!!)。
软件主体工作:
1,完成了u-boot(相当于Windows的BIOS服务程序)所需的大量底层“硬件相关”的软件修正工作,显而易见,“BIOS服务”是Windows的底层,这部分代码屏蔽了所有的主板上的硬件,类似的u-boot也要屏蔽所有的我们板子上的硬件。
2,完成了Linux的移植,此环节是核心环节,因为Linux的底层也需要修改底层硬件相关的代码,例如驱动等等。这部分主要做的工作除了驱动之外,还有优化与裁剪Linux本身。比如禁用PCIe/SATA/音频(都是不需要的功能)等等,诸如此类有不少繁杂的细节。
3,在1和2都完成后,相当于我们的板子有了灵魂,但是他还不知道干什么!因此,本环节中,就是要告诉他干什么!
因为我们的DM8127(相当于低功耗版本的DM8148,这是Ti达芬奇系列中最高档次的CPU之一了,也是目前业界的“高大上产品”),有四个核心:
(A)ARM【Cortex-A8,1GHz】 (负责界面,IO,调度) 注:IO是指广义输入输出,包括所有的文件系统操作,如网络/PCIe/SATA等等
(B)DSP【C674x,浮点DSP@750MHz】 (负责算法,专门跑我们的算法!!!)
(C)ARM【Cortex-M3,480MHz】 (负责视频子系统,支持从低端到高端的所有视频前端处理,包括了从DVD级别到千万像素的MIPI级别)
(D)ARM【Cortex-M3,480MHz】 (负责视频编解码,其实也是个视频处理模块,只不过专门有硬件来负责H264,G.711等等音视频编解码方案)
这四个核心的调度是极其复杂的,然而Ti专门为之推出了一套称作McFW的软件架构,这套架构设计很多的代码,其中最核心的功能性代码(McFW的实现)都分布在DSP核心以及另外两个ARM(Cortex-M3)上。而Linux(运行于Cortex-A8)上则跑着调度型代码(McFW的接口)
本环节中,就是移植McFW到我们的板子上,并利用它实现我们的需求。
目前实现的架构(在McFW中称之为“chain”,即“链”),如下所示:
Capture (采集) -------------》 NSF (滤噪)-------------》 DEI (去隔行) -------------》 Display (显示)
/| |
| |
| |
| |/