嵌入式之【学习路线】

  • 理论前提:C语言、计算机操作系统原理、微机原理

文章目录

  • 第一阶段【概念入门阶段】
  • 第二阶段【熟悉工具阶段】
  • 第三阶段【ARM掌握阶段】
  • 第四阶段【内核熟悉阶段】
  • 第五阶段【内核应用阶段】
  • 第六阶段【硬件驱动开发阶段】
  • 第七阶段【系统应用层开发阶段】
  • 第八阶段【项目综合实践阶段】
    • 书籍推荐

单片机研发太苦,值得坚持吗?

第一阶段【概念入门阶段】

  1. 你要知道什么是嵌入式?
  2. GNU是什么?
  3. 你要了解一个嵌入式项目的开发需要哪些阶段?

第二阶段【熟悉工具阶段】

  1. 如果在Windows下进行开发,你需要学习虚拟机的搭建等操作。
  2. 你要能够熟练使用linux基本的命令,shell脚本语言、Makefile语言。
  3. 你要在linux下使用vim编辑并编译C语言文件,为了熟悉vim编辑器,除此之外还要熟悉在linux环境下的gcc编译、gdb调试工具、make工程工具、git文本编辑器、;
  4. 你要了解在linux系统下debug程序的方法和技巧、编译原理、堆栈含义

第三阶段【ARM掌握阶段】

  1. 你需要学习一款ARM等系列的控制器,推荐ARM9>Cortex-A9>Cortex-A51,掌握这款控制器的外围电路,最重要的就是掌握它的存储系统(DDR)
  2. 你要学会独立在linux下搭建交叉编译链,并进行简单的ARM裸机开发(系统资源、时钟系统、电源管理、异常中断管理器、NandFlash控制器)、为了熟悉ARM架构和掌握阅读芯片数据手册和用户开发手册技巧,接触ARM汇编指令集。

第四阶段【内核熟悉阶段】

  1. 你可以通过学习uboot来理解完整的linux操作系统启动运行过程(bootloader、linux内核、根文件系统),并尝试控制操作系统的启动方式,学习ARM的刷机过程(就是学会将操作系统和bootloader等映像文件刷入ARM中让操作系统正常的运行起来)。

第五阶段【内核应用阶段】

  1. 你要尝试独自进行linux内核裁剪移植,掌握BootLoader(多为uboot)的编写和移植,这一部分在初期可以简单的了解下他的原理不必要去严格的要求。
  2. 嵌入式linux开发环境搭建、Bootloader介绍、制作与原理分析、Linux平台包括内核裁减、内核移植、交叉编译、GNU工具使用、内核调试、根文件系统制作和移植以及向内核中添加自己的模块,并在s5pv210实验平台上运行自己制作的Linux系统,集成部署Linux系统整个流程。

第六阶段【硬件驱动开发阶段】

  1. 在linux内核中,模块的概念?
  2. 你要开始设备驱动的编写长征了,就是大家熟悉的驱动部分,其实做驱动部分还是比较复杂的,有时不但需要对软件掌握还要了解些基础的硬件部分,驱动应用较为广泛的就是USB驱动,屏幕驱动,网卡驱动,摄像头驱动等,因此在学习驱动的时候大家可以根据这些常用的驱动做些小实验,有时当完成了实验的时候心里也总会有种喜悦感的。

第七阶段【系统应用层开发阶段】

  1. 熟练掌握C++语言,学会LINUX系统的应用编程,基于QT的应用开发,当然在当下物联网行业的发展网络编程方向大家也要着重学习,比如TCP协议,UDP协议等通信知识。
  2. 嵌入式linux应用开发模型、linux应用程序移植、嵌入式linux多进程,多线程应用程序设计、嵌入式linux网络编程,嵌入式linux数据库开发,基于QT的嵌入式linux图形应用软件设计。
  3. 文件IO、高级IO、GUI设计

第八阶段【项目综合实践阶段】

  1. 一般需要花三个月到半年时间,在实际工作中,我们从事的是"操作系统"周边的开发,并不会太深入学习、修改操作系统本身。接下来就是实战了,大家可以选择一些企业进行实习,从基础做起掌握开发的整个流程。
  2. 物联网、AI、平板、网络、音视频类

书籍推荐

  • 《嵌入式Linux应用开发完全手册》,韦东山
  • 《嵌入式Linux应用程序开发标准教程》,华清远见
  • 《嵌入式Linux开发教程》,周立功
  • 《linux使用基础教程》
  • 《linux源码深度分析》
  • 《linux情景分析等》
  • 《linux高级使用指南》

你可能感兴趣的:(嵌入式之【学习路线】)