admin管理员组

文章数量:1605636

完成任务:

0.vmware软件安装,C语言环境搭建以及vscode安装,虚拟机net方式(创建虚拟网卡进行ip转化后通过物理机)上网,关键一点安装交叉编译器。然后跟着手册完成裸机开发篇,学习汇编语言驱动外设,另一个就是学习汇编编写C语言开发环境(需要掌握芯片启动流程)。这个的目的是学习底层操作芯片以及驱动外设的原理,深入了解微型计算机的工作方式。

1.系统移植,uboot移植,linux内核移植,根文件系统搭建。双网卡调试环境搭建。系统烧写工具移植。学习makfile阅读方法,掌握uboot启动流程,linux内核启动流程。这个的目的是搭建QT界面应用层开发的根基,嵌入式离不开对外设的操作,以后的外设驱动不同于第0章,建立在linux操作系统上操作外设。

2.Arm Linux驱动开发。完成设备树移植于开发,完成编写以及移植linux内核外设驱动文件,完成基于linux分层与分离思想完成字符设备框架开发,输入子系统设备开发,iic框架开发等。掌握驱动层与底层外设之间如何实现连接,以便驱动层相应用层传递可靠实时性高的数据。

3.QT应用层开发

学习C++基础,了解面向对象的编程思想,继承重载与多态。学习数据结构,数组,队列,链表。学习查找算法,排序算法。使用ubuntu开发QT界面,安装QT软件,跟着正点原子的QT开发指南将控件以及布局的例程做一编,掌握多线程编程与网络编程。这些完成后我们可以进行嵌入式开发。

嵌入式QT开发,有个重要的点就是编译环境,从底层的uboot,kernel,到QT/C++程序的编译都需要使用同一个编译器,也就是使用同一个交叉编译器,这样才能保证我们的每一步搭建是有效的不重复的,因为每一个环节的开发都需要较长的时间花费很多精力。简单来说嵌入QT应用程序开发,就是在开发板上搭建一个linux系统,然后再建立一个应用程序。不过我们仍然需要学会从驱动层去和硬件的数据交互。

由于芯片的能力上去了,QT开发的外设硬件成本直线上升,这样才能满足用户的需求。但是咋没钱,穷有穷的学法。掌握精髓才是重要的。展示一下搭建的Imx6ull智能车载平台基于alsa的mplayer的音乐播放器。每部分的代码都是学习别人的,因为网上没有什么教学,基本都是看手册,或者直接看代码,嵌入式的课程都需要花钱呜呜,代码有自己写的也有从别人那里模块拿过来改的。音视频的基本功能切换,添加,实时播放歌词显示等,另外结合外设实现外设驱动背光调节,外设感应切换功能,按键功能,编写触摸驱动等。完成的任务很多,有很多bug基本都解决了,同时也涉及到mplayer解码器源码改写,多线程以及进程退出的一些bug等。

车载界面展示

音乐播放展示视频播放展示

代码会公开。包括移植的底层uboot,linux,根文件系统,改写的驱动代码等。qt界面的代码,以及zlib库,mplayer库的代码等。

本文标签: 播放器音视频智能平台imx6ull