DavinciDM8168的开发是一套大的系统,包括ARM、DSP、以及他们的通信协作。对学习思路做简单总结:
一. 对于整体框架的把握
参考了一些文章。介绍davinci整体基础知识和linux开发环境的搭建。认真阅读了以下文章,收获很大。
7月安装学习ubunutu10.04,开始了linux的学习。了解了一些常用的命令和文本命令(也还并不熟练),了解了linux开机启动的顺序,知道如何设置服务程序的自启动,添加PATH等。。
DM8168ezsdk很强大,gcc工具链、ezsdk安装完成后,linux开发环境搭建也就基本完成了。nfs、tftp等模块都自动安装好了。默认安装情况下,用tftp来引导linux内核(/tftpboot目录),用nfs来引导linux文件系统($HOME/targetfs目录)。由于自己还是linux菜鸟,参照网上资料,自己安装配置使用了下nfs、tftp。很简单,不过刚开始还是看了很长时间。
至此,算是大致了解了davinci系列的开发流程和部分细节。
二. 对于嵌入式linux的学习
软硬件平台架构如图所示:
<图嵌入式linux软硬件平台架构>(摘自 国嵌linux教学视频)
其知识结构为:
- 嵌入式处理器与裸机程序开发
- linux系统管理
- linux应用程序开发
- linux驱动程序开发
- linux内核开发与系统移植
-(系统管理): linux系统定制;命令;nfs、tftp;shell编程
-(应用程序):gcc、gdb、makefile工具;文件时间编程;多进程多线程程序设计;进程间通讯;网络编程;QT,android图形化应用程序开发
-(内核开发):内核配置与裁剪;内核模块开发;根文件子系统;进程子系统;内存子系统;Proc文件系统; 系统调用;内核定时器;内核异常分析
-(驱动程序开发):字符设备;总线、设备、驱动模型;硬件访问技术;中断处理;ipput设备驱动;平台驱动;USB、网卡、触摸屏、串口
学习应该循序渐进:
还需要结合DM8168图像处理系统的需要一步一步的学习。(最终实现在ubunut上生成可执行文件,实现dsp图像处理算法和ARM图形化的界面交互)
三. 对于DSP的学习
图像处理算法是系统的核心。在dsp上将符合xDM标准的算法生成*.lib(对应linux下的*.a64p,修改后缀即可),组织成DSPserver(*.x64p),供ARM端Code Engine调用。
对单独DSP端的开发相对而言较为熟悉,还应该进一步熟悉和运用ti提供的DSPlib和IMGlib,以提高编程效率。DM8168的内存映射等也需要在开发过程中进一步熟悉。
要学的东西很多,一步一步的走,然后分工也很重要。
2013.8.4
eaglediao