美文网首页
嵌入式学习路线

嵌入式学习路线

作者: 地上最萌程序兔 | 来源:发表于2018-08-16 20:04 被阅读0次

    知识要求:

    看懂电路图

    看懂芯片手册

    有编写,移植驱动的能力

    懂内核的实现机制

    懂C语言,C++, JAVA等

    嵌入式 linux 学习路线

            嵌入式 linux 系统里含有bootloader、内核、驱动程序、根文件系统、应用程序(C/C++、Android)这5大块。总结嵌入式Linux+Android系统包含以下部分内容:

    ARM

    Bootloader

    Linux内核

    驱动程序

    根文件系统

    Android Framework

    使用C/C++编写的应用程序

    Android APP

    1. ARM

    学习硬件知识的目的在于能看懂原理图,看懂通信协议,看懂芯片手册。这里推荐一些书:

    《微机原理》,可以理解一个计算机的组成原理

    《数字电路》,掌握一些逻辑运算,理解各种门电路的原理

    《ARM体系结构与编程》,对ARM的运行原理解释的很到位

    我相信看完这些书对ARM和硬件知识的掌握足够了,对于初学者只想浅尝辄止的了解,我推荐之前的一个chat《一小时教你学会 ARM 架构》。

    2. Bootloader

    bootloader有很多种,vivi、u-boot等等,最常用的是u-boot。 u-boot功能强大、源码比较多,对于编程经验不丰富、阅读代码经验不丰富的人,一开始可能会觉得难以掌握。但是,u-boot的主要功能就是:启动内核。它涉及:读取内核到内存、设置启动参数、启动内核。按照这个主线,我们尝试自己从零编写一个bootloader,这个程序相对简单,可以让我们快速理解u-boot主要功能的实现。相关内容有:

    u-boot分析之编译体验

    u-boot分析之Makefile结构分析

    u-boot分析之源码第1阶段

    u-boot分析之源码第2阶段

    u-boot分析之u-boot命令实现

    u-boot分析_uboot启动内核

    3. Linux内核

    内核在工作中的作用可以说是潜移默化的,虽然看起来没有直接性的工作项目,但绝对是走向架构师的必经之路。

    Linux总线,设备,驱动模型的探究

    Linux设备树的深入理解

    Linux的启动流程

    Linux设备和驱动的相遇

    动手定制一个开发板

    推荐《linux内核设计与实现》。

    4. 驱动程序

    驱动程序=Linux驱动程序软件框架+ARM开发板硬件操作

    有了ARM的知识和阅读数据手册电路图的能力,再加上Linux内核的运行原理,基本上写驱动就是API调用的体力活了。这里推荐宋宝华老师的《linux设备驱动开发详解》。后续关于驱动的内容暂定如下:

    LCD驱动程序

    触摸屏驱动程序

    USB驱动程序

    NAND FLASH驱动程序

    NOR FLASH驱动程序

    网卡驱动程序

    声卡驱动程序

    5. 根文件系统

    在开发应用程序时,也需要搭建文件系统,把各种库、配置文件放进去; 在发布产品时,你还需要修改配置文件,使得产品可以自动运行程序; 甚至你想实现插上U盘后自动启动某个程序,这也要要修改配置文件; 这一切,都需要你理解根文件系统的构成,理解内核启动后是根据什么配置文件来启动哪些应用程序。根文件系统相对比较简单,可以根据以下路线学习:

    Linux根文件系统目录结构

    移植Busybox

    init进程介绍及用户程序启动过程

    使用glibc库

    制作/使用文件系统映象文件



    嵌入式应用开发

    C语言编程基础

    嵌入式开发基础(Linux、Shell命令、VI编辑器、GCC、Makefile、交叉开发环境构建)

    嵌入式Linux系统编程(shell编程、文件编程、串口编程、进程编程、线程编程、网络编程)

    嵌入式底层系统开发

    ARM体系结构(Arm体系|指令、Thumb指令、汇编程序设计、裸机程序开发)

    Linux内核移植(bootloader、内核配置、文件系统)

    驱动程序开发(驱动模型架构、字符设备驱动、块设备驱动、网络驱动)

    嵌入式图形应用开发

    C++语言编程基础

    QT编程开发(Qt开发基础|布局与控件|绘图|事件|网络通讯|数据库|移植)

    相关文章

      网友评论

          本文标题:嵌入式学习路线

          本文链接:https://www.haomeiwen.com/subject/hnoobftx.html