完整的嵌入式学习路线是怎样的?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了完整的嵌入式学习路线是怎样的?相关的知识,希望对你有一定的参考价值。

嵌入式开发学习有相关的路线和课程,一步一步打好基础,进入到实际开发阶段才不会茫然失措。要学习编程语言、软硬件基储计算机系统、电子控制相关的的、知识等等,下面整理了嵌入式开发的学习方式,仅供参考!1、c\\c++语言,这是计算机行业的必 参考技术A 朱有鹏嵌入式核心课程路线图
整个学习路线图很庞大,为了描述简单我把目录分成了几个层次,分层浏览。
第一层目录:
0.基础预科
1.ARM裸机全集
2.uboot和linux内核移植
3.linux驱动开发
4.C语言专题精讲篇
5.linux应用编程和网络编程
6.阶段项目篇
说明:第一层目录中共有6个部分,共同构成了嵌入式核心课程。每个部分下面又会分为若干模块,以此来构建出整个知识体系网络。
第二层目录:
0.基础预科
0.1.嵌入式软件工程师完全学习指南
0.2.朱老师带你零基础学Linux
0.3.嵌入式linux C编程基础
1.ARM裸机全集
1.1.ARM裸机第一部分-ARM那些你得知道的事儿
1.2.ARM裸机第二部分-ARM体系结构与汇编指令
1.3.ARM裸机第三部分-开发板、原理图和数据手册
1.4.ARM裸机第四部分-GPIO和LED
1.5.ARM裸机第五部分-SDRAM和重定位relocate
1.6.ARM裸机第六部分-时钟系统
1.7.ARM裸机第七部分-串口通信详解
1.8.ARM裸机第八部分-按键和CPU的中断系统
1.9.ARM裸机第九部分-定时器、看门狗和RTC
1.10.ARM裸机第十部分-PWM和蜂鸣器
1.11.ARM裸机第十一部分-I2C通信详解
1.12.ARM裸机第十二部分-NandFlash和文件系统
1.13.ARM裸机第十三部分-ADC
1.14.ARM裸机第十四部分-LCD显示器
1.15.ARM裸机第十五部分-触摸屏TouchScreen
1.16.ARM裸机第十六部分-shell原理和问答机制引入
2.uboot和linux内核移植
2.1.U-Boot学习前传
2.2.补基础之shell和Makefile
2.3.零距离初体验U-Boot
2.4.U-Boot配置和编译过程详解
2.5.U-Boot源码分析1-启动第一阶段
2.6.U-Boot源码分析2-启动第二阶段
2.7.U-Boot源码分析3-启动内核
2.8.U-Boot源码分析4-命令体系
2.9.U-Boot源码分析5-环境变量
2.10.U-Boot源码分析6-硬件驱动
2.11.U-Boot移植1-三星官方
2.12.U-Boot移植2-官方标准移植
2.13.Logo显示和Fastboot原理
2.14.话说Linux内核
2.15.内核的配置和编译原理
2.16.内核的启动过程分析
2.17.从三星官方内核开始移植
2.18.根文件系统的原理
2.19.根文件系统构建实验及过程详解
2.20.buildroot的引入和介绍
3.linux应用编程和网络编程
3.1.Linux中的文件IO
3.2.文件属性
3.3.获取系统信息
3.4.Linux进程全解
3.5.Linux中的信号
3.6.高级IO
3.7.Linux线程全解
3.8.linux网络编程基础
3.9.linux网络编程实践
4.C语言专题精讲篇

4.1.内存这个大话题
4.2.C语言位操作
4.3.指针才是C的精髓
4.4.C语言复杂表达式与指针高级应用
4.5.数组&字符串&结构体&共用体&枚举
4.6.C语言宏定义与预处理、函数和函数库
4.7.存储类&作用域&生命周期&链接属性
4.8.一些杂散但值得讨论的问题
4.9.链表&状态机与多线程
4.10.番外篇-程序员和编译器之间的暧昧

5.Linux驱动开发
5.1.驱动应该怎么学
5.2.字符设备驱动基础
5.3.字符设备驱动高级
5.4.驱动框架入门之LED
5.5.Linux设备驱动模型
5.6.Misc类设备与蜂鸣器驱动
5.7.Framebuffer驱动详解
5.8.input子系统基础之按键
5.9.I2C总线和触摸屏驱动移植实战
5.10.块设备驱动介绍
5.11.网络设备驱动介绍

6.阶段项目篇
6.小项目.图片解码播放器视频课程

嵌入式工程师学习路线

参考:嵌入式工程师学习路线

关于这个方向,我认为大概分3个阶段:
1、嵌入式linux上层应用,包括QT的GUI开发
2、嵌入式linux系统开发
3、嵌入式linux驱动开发

嵌入式目前主要面向的几个操作系统是,LINUX,WINCE、VxWorks等等
Linux是开源免费的,而且其源代码是开放的,更加适合我们学习嵌入式。

所以你可以尝试以下路线:
(1) C语言是所有编程语言中的强者,单片机、DSP、类似ARM的种种芯片的编程都可以用C语言搞定),因此必须非常熟练的掌握。
推荐书籍:《The C Programming Language》 这本经典的教材是老外写的,也有中译版本。
(2) 操作系统原理,是必需的,如果你是计算机专业毕业那也就无所谓了,如果是非计算机专业的就必须找一本比较浅显的计算机原理书籍看一看,把啥叫“进程”“线程”“系统调度”等等基本问题搞清楚。
(3)Linux操作系统就是用C语言编写的,所以你也应该先学习下Linux方面的编程,只有你会应用了,才能近一步去了解其内核的精髓。
推荐书籍:《UNIX环境高级编程》(第2版)
(4) 了解ARM的架构,原理,以及其汇编指令,我们在嵌入式开发中,一般很少去写汇编,但是最起码的要求是能够看懂arm汇编。
(5) 系统移植的时候,就需要你从最下层的bootloader开始,然后内核移植,文件系统移植等。而移植这部分对硬件的依赖是非常大的,其配置步骤也相对复杂,也没有太多详细资料。
(6) 驱动开发
linux驱动程序设计既是个极富有挑战性的领域,又是一个博大精深的内容。
linux驱动程序设计本质是属于linux内核编程范畴的,因而是对linux内核和内核编程是有要求的。在学习前你要想了解linux内核的组成,因为每一部分要详细研究的话足够可以扩展成一本厚书。

以上只不过是大概的框架,在实际的开发中还会涉及很多东西,比如:交叉编译、makefile、shell脚本等等,所以说学习嵌入式的周期较长,门槛较高,自学的话更是需要较强的学习能力和专业功底。只要能坚持下来一定会取得成功!

以上是关于完整的嵌入式学习路线是怎样的?的主要内容,如果未能解决你的问题,请参考以下文章

怎样学习嵌入式软件

嵌入式单片机学习入门到大牛

嵌入式单片机学习入门到大牛

嵌入式学习方法 嵌入式学习路线

物联网嵌入式学习路线

嵌入式工程师学习路线