DSP

dm8127 进展

2019-07-13 17:44发布

陈老师:          您好,最近软件工作已经有很大进展(就需要运行的算法而言,可以说目前软件工作可以告一个段落了,就是阶段性完结了!!)。          软件主体工作:          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 (显示)                                                                                                                                  /| |                                                                                                                                   | |                                                                                                                                   | |                                                                                                                                   | |/                                                                                                                            Algorithm Link @ DSP
              其中,Algorithm Link @ DSP目前是一个空“Link”(McFW中,称一个核心上的任务或者线程为:Link),到时候就是要填我们的代码!!!         4,杂项。除了1,2,3之外。还有我们之前说的新功能:               WiFi/GPS/IMU(惯导)/IR(红外)/BTH(蓝牙)              这些功能看似繁杂,然而由于我在设计之初就将其设计成了串口(UART)模式,因此在软件上,他们拥有相同的模型,而在编程上,则更是简单,直接在Linux命令行上就可以清楚地看到这些UART外设的输入输出!!!              而在程序中实现与之交互就更简单了:利用标准的POSIX函数“open,write,read”当成一个文件一样去访问这些外设即可!!!         5,界面。界面向来是个复杂的问题。于此我只能说我可以将Qt移植到我们的板子上,且可以保证Qt运行时不会很占用资源,大部分的4核能力还是会用于跑算法。然而界面编程是另外的议题了~~~(从未在嵌入式器件上搞过)           目前,就完成了这些工作,目前的基础对于下一步的工作是很有利的。                   另外,关于最近一段经费的总结如下:
        已经消费:                 焊接 + 制板:6600¥
        摄像头:       一个58 ,我目前买了7个,共406¥           摄像头与IO连接线缆:  一个20,我目前买了1个,共20¥
        计划消费:
        摄像头:        一个58,还需要13个,共754
        摄像头与IO连接线缆:  一个20,还需要4个,共80¥
        总金额:        6600 + 406 + 20 + 754 + 80 = 7860¥
附录: 运行截图:                
硬件平台工作截图: