3.完整的嵌入式学习路线图

2019-07-12 19:25发布


3.1.怎么样将叫完全学习
(1)嵌入式核心课程;现阶段各嵌入式培训机构四个月所学的知识,是嵌入式技术的基石,需重点掌握核心课程。
(2)Android扩展;基于核心课程扩展的内容。
(3)物联网扩展;基于核心课程扩展的内容。
(4)各种实训项目;从简单到复杂各类项目汇总。
3.2.嵌入式核心模块(5大模块)
(1)linux基础+预科C语言;主要是linux系统的基本使用和C语言基础知识学习,例如在linux基础有安装虚拟机、打开虚拟机、用户登录、简单配置、打开shell并进行命令行操作、配置网络、配置nfs和tftp服务器等;预科C语言是针对gcc下c语言完全基础而言的,不涉及深入的c知识,零基础的同学需要重点学习; (2)linux应用程序开发(系统编程、网络编程);基于linux系统使用C语言开发应用程序;系统编程阶段重点在于操作系统基本原理的理解,主要会涉及linux下的api和c库函数的学习,将其用于多线程、阻塞与非阻塞、读写文件、文件加锁和信号量互斥操作等;网络编程阶段重点在于掌握网络通信的基本知识和基于TCP/IP的Socket编程,一般会编写小型项目,实现一个类似QQ的局域网通信程序。 (3)ARM编程(ARM体系结构、ARM汇编、开发板常见外设裸机编程);主要涉及硬件相关的知识,学习如何使用软件操作底层硬件,例如串口、I2C、SPI通信协议和触摸屏、LCD等外设的基本原理和进行编程,最基本的是ARM的结构、ARM汇编语言、如何使用汇编语言进行CPU启动引导、查看CPU数据手册、查看原理图、结合原理图进行编程、利用C语言中的位运算操作寄存器等。 (4)linux系统移植(uboot移植、kernel移植、rootfs制作);主要是在开发板上移植搭建可以运行的linux系统,深入研究的话非常复杂,初学应该掌握基本的移植流程即可。 (5)linux驱动开发;主要讲述每个常见设备的驱动,字符设备驱动较为简单,input类、触摸屏、键盘、按键也较为简单,复杂的驱动如USB、蓝牙、Wifi非常复杂。
3.3.Android扩展(3大模块)
(1)Android HAL驱动;HAL驱动是Android驱动层和linux驱动层的交互部分,需要对linux驱动很熟悉。
(2)Android系统定制;基于linux系统,配置Android系统,前提需要对linux系统非常熟悉。
(3)Android应用开发;没啥技术要求,零基础即可,非常简单,市面上大把的视频可以学习。
3.4.物联网扩展(无限扩展)
(1)GPS和地图查询服务;全球定位系统,如何通过GPS进行定位、操作编程常见的GPS模块、与地图查询服务相结合。
(2)Wifi;无线通信领域的主流方向,基于Wifi做一些基本的开发。
(3)蓝牙4.0;智能手表和手机通过蓝牙连接、音箱等均使用蓝牙。
(4)Zigbee;专为物联网设计的无线通信的东西,最大的特点是低功耗+组网功能。
(5)RFID;射频技术,有高频、低频,有远程、近距离等。
3.5.实训项目扩展(未完待续…)
(1)华为海思Hi3518系列网络摄像机
(2)开源四轴飞行器
(3)网络远程控制照明系统
(4)电子书阅读器
(5)裸机写图片播放器
(6)开源Android平板电脑