嵌入式开发要学哪些内容,超级详细版!

C语言➕应用层(文件IO管理,网络编程,多线程,进程间通信,并发程序,数据库)➕底层(ARM架构,系统移植,裁剪定制,驱动及内核)


linux方向智能化产品是有3部分组成的,应用层+系统层+底层


1.嵌入式不管是什么产品,用的都是c语言和数据结构,学完了第一阶段的C语言和C高级入门,我们基本上会看懂些代码,会简单的调库,像同时也要掌握,指针,链表,函数,因为可以更好的编写程序,这个是我们进入这个方向必须要会的。(linux方向对软件和C语言的功能要求要更高)

2.  第二阶段-首先高端智能产品是最上层的应用程序,比如我们的手机,之前老年机,只能打电话发短信,现在的手机有打电话的功能,上网的功能,玩游戏,拍照等功能 都是应用工程师开发的,

文件IO: 标准文件库的制作及使用

并发程序设计:进程管理 进程间通信,多任务同步使用(比如我们的电脑,可以一边听歌,一边上网,手机可以一边打电话,一边可以打开微信发消息,扫地机器人在扫地的同时,还可以识别语音控制,避障等功能。一个进程里面可以有好多个线程,进程间通信,也就是两个程序之间想要实现通信,我们在抖音上看到的视频,可以转发给微信好友,他们属于两个应用程序 所以多进程,多线程的任务调度要用到了操作系统里的共享内存等。会了进程,线程,进程间通信是为了让智能化产品同时可以运行好多个程序,并且能让他们实现通信

网络编程:要会tcp/ip,udp,http的协议。因为你想要让你的数据上网,肯定通过的就是这种网络编程的协议,让程序上网应用

数据库开发:熟悉sqlite数据库的安装及操作,像我们考勤机的员工打卡信息,就是通过数据库管理

3.  第三阶段 主要讲的就是ARM架构+系统移植+驱动内核开发

应用层的这些程序是运行在操作系统里的

嵌入式涉及到的行业非常多,不同的行业用到的操作系统还不太一样,手机有手机的操作系统,扫地器人,车载导航都有不同的系统。咱们要根据不同的行业,高度定制专用的操作系统,也就是对Linux操作系统本身的定制裁剪,还有系统移植,你用的功能留下,不用的功能裁减掉,你要保证你的操作系统是最优的,以减少体积成本和功耗(像有的产品需要用到摄像头,有的产品要用到音频功能,有的产品要用到人脸识别等)把系统定制裁剪好了,再往下就是要移植到高端的芯片里来了  (通常是SOC芯片) 

再往下就是嵌入式底层比较难的部分,也是工作中薪资最含金量的技术点就是 内核和驱动工发,

一个硬件对应着一个驱动程序

比如说你电脑有网卡驱动,显卡有显卡驱动,打印机有打印机的驱动,图形界面有屏幕驱动,打卡机有传感器指纹驱动,显示时间,有时钟驱动,人脸识别有摄像头驱动 任何一个硬件都会对应着一个驱动程序的想要让这个硬件能够正常的运转起来,肯定是需要在操作系统里写好对应驱动他的程序,用软件程序把硬件驱动起(像有一个岗位叫作BSP工程师,就是做软件和硬件之间驱动的岗位)

驱动程序是需要写到操作系统的内核文件里的,就是要拿着硬件芯片开发手册去写操作系统里的驱动程序,因为他是软硬件都要会的,所以驱动是嵌入式里薪资最高的

拿手机举例:你像OPPO,vivo,小米,华为都是手机的厂商,不管是什么型号的芯片,华为的麒麟,海思,高通的骁龙,联发科的天玑,三星的芯片,像这种消费电子类的公司,他们招好多工程师就是为了写驱动的和应用程序,用安卓系统,把手机里的硬件都能驱动起来

4.  第四阶段 之后主要是讲项目开发和扩展开发

主要是为什么要学习C++ QT(GUI开发)Qt是一个图形界面开发的工具,c++可以做算法,也可以开发界面的应用层功能,如果说咱们未来的智能化产品需要屏幕,需要界面,就要用的c++和qt(属于应用层开发)以后会越来越普及。

the end

评论(0)