初学者要了解的嵌入式Linux学习计划
俗话说万事开头难,刚开始的时候,你是否根本就不知如何开始,上网查资料被一堆堆新名词搞的找不到北,去图书馆看书也是找不到方向?又是arm,又是linux,又是uboot头都大了。不知道自己究竟从哪里开始? 下面就跟着我学习设计嵌入式工程师的修炼日记吧!
简单说,从arm基础知识到裸机编程,从uCOSII到linux,从linux基础的命令到shell编程,从u-boot到文件系统,最后到现在的linux驱动程序。从简单到复杂,从基础到高级基本是按照这个来的。
第一阶段:嵌入式硬件基础以及裸机程序开发 1.知识点:
(1) arm处理器基础知识,工作模式,寄存器,中断与异常,寻址方式,汇编指令集 (2) 熟悉ADS集成开发环境为裸机程序开发做准备
(3) 裸机程序开发:LED,串口,LCD,触摸屏,NANDFLASH,IIC,IIS,DMA等 2.过程以及目的:
这一阶段的学习主要是熟悉嵌入式的硬件,为以后的linux驱动打基础。因为嵌入式主打处理器架构就是arm,所以针对arm来学习。首先学习基础知识,然后通过在开发板上的练习来掌握。这一阶段所用的资料主要有:
(1) 《ARM嵌入式基础教程》 这本书主要看arm基础的知识。这本书是讲arm7的,但是arm的基础的指令集以及模型是一样的。
(2) 《嵌入式linux应用开发完全手册》 这本书主要看介绍s3c2410接口模块的部分,实验裸机的时候需要硬件的知识。 3.所用时间:大约两个月。 第二阶段:linux基础以及shell编程 1.知识点
(1) linux基础知识
(2) linux安装与使用 (3) linux常用命令 (4) vi使用 (5) 简单shell编程 2.过程以及目的:
这一阶段的学习主要是熟悉linux,会安装linux,了解Linux的基础知识,会简单的操作。刚开始安装linux还是在虚拟机上安装比较好,安装开发板推荐的Fedora9,按照开发板配套的说明一步一步的安装,然后在上面练习各种命令。这一阶段主要要看《鸟哥的linux私房菜基础学习篇》,这个书有电子版,也不用全看,主要是看前面对Linux基础知识的描述,以及基本的命令。命令只是了解,那么多记也记不下来,以后用时的再查阅。这一阶段主要目的是对linux有一个整体的了解,最起码要知道基础的一些概念,还有会一些基本的操作。 3.时间:大约一个月
第三阶段:linux应用程序基础开发 1.知识点:
(1) GCC,GDB,Make 基础 (2) 文件,时间编程 (3) 多进程,多线程程序设计 (4) 进程间通信 2. 过程以及目的:
这一阶段的学习主要是了解linux应用程序的编写调试,也都是基础知识,主要目的还是熟悉Linux。熟悉其中应用程序有关的一些概念,为以后打基础。这一阶段主要看了《嵌入式Linux应用程序开发标准教程》,这本书对linux上应用程序编写讲的很详细,而且不是很难,那本最经典的《UNIX高级环境编程》讲的比较深入,刚开始看有点难,万事开头难还是从简单的开始。学习应用编程以后也不一定搞应用,从事嵌入式linux行业的人,
这是必须的基本技能。 3. 时间:大约一个月
第四阶段:uCOSII操作系统学习 1.知识点:
(1)嵌入式实时操作系统的概念以及基础知识 (2)uCOSII操作系统源代码阅读 (3)移植uCOSII
(4)uCOSII操作系统应用编程 2.过程以及目的:
这一阶段的学习主要是了解嵌入式实时操作系统的基础,因为uCOSII是开源的,可以研究他的代码。对操作系统的任务调度以及资源管理有直观的认识。并且阅读他的源码能够提高自己的编程能力与虽说友规范自己的编程习惯。善之臂提供了uCOSII的移植版本。但是自己实际移植一次能够有更深刻的认识。这个操作系统比较简单,所以应用程序的编写就很重要,在上面实现几个功能还是有助于对系统的理解。这一阶段主要看的就是绍贝贝翻译的uCOSII作者所著的《嵌入式实时操作系统uCOS-II》,里面对操作系统的源码有这详细的分析。看透这本书后就会对uCOSII有一个深入的了解。这一阶段的主要目的是了解操作系统的知识,比如任务调度,并发与竞态。还有一个目的就是锻炼自己的编程能力。因为如果看介绍操作系统原理的书会比较枯燥,我感觉阅读一个操作系统的源码比看一千本介绍原理的书来的实惠的多。 3.时间:大约一个月 第五阶段:bootloader学习 1.知识点:
(1)bootloader基础知识 (2)u-boot基础与命令 (3)u-boot移植