ATIME

嵌入式学习路线

嵌入式涉及的范围广泛,我的公众号主要介绍软件方面的学习,在学习之初先主要介绍下我自己的学习路线,供大家参考。如有疏漏之处,请多指点。

1.基础知识

学习嵌入式之前,最好有一些单片机开发经验,如对数字电路要熟悉组合逻辑电路、时序逻辑电路的基础知识。除此之外对模拟电路也应了解一二。如三极管的放大作用、场效应管、功率放大电路等基础电路。除对电子专业基础课的了解外,还要有C语言程序的编程经验,熟悉C语言的语法规范,能够分析理解程序的执行过程。

2.裸机程序

ARM嵌入式裸机程序
在学习之初需要先学习ARM裸机编程,学习嵌入式系统的体系结构,要熟悉ARM处理器的七种工作模式、寻址模式、ARM指令集和Thumb指令集。学习C语言与汇编程序混合编程的方法,对于今后学习操作系统的移植有很大作用。嵌入式裸机编程需要主要会设计:GPIO的使用、中断系统原理、串口通信原理、系统时钟和定时器、LCD接口应用、Nand Flash接口应用等方面。

3.Bootloader移植

Bootloader移植Bootloader的学习会涉及Bootloader的作用、常见Bootloader介绍。在此之后主要会以Uboot为实例,深入研究Uboot的启动流程。从Bootloader对硬件的初始化,到加载Bootloader到RAM,再到内存映射、调用内核结束。这里所说的流程均以S3C2440的Uboot为例。

4.Linux内核

Linux内核的学习将会以理解内核工作流程为中心,分别介绍Linux内核的组成结构、内核的配置方法、内核移植的基础知识。学习移植Linux内核后讲介绍Linux根文件系统,学习Busybox,理解Linux操作系统的引导流程。

5.驱动移植

驱动移植驱动移植部分会以实践为基础,详细介绍Linux操作系统下的驱动移植方法。

6.Linux应用开发

Linux应用开发Linux应用开发这部分会介绍shell的使用、Linux网络编程(TCP、UDP)、文件操作、进程间通信等知识。这部分将会以实战操作为导向,通过一个个实验逐渐学习。
本文介绍的是以我的学习计划为参考,以S3C2440为实验平台。对于不同的硬件平台或不同的职业方向,建议根据自己的需要适当调整。

点赞

发表评论

电子邮件地址不会被公开。 必填项已用*标注