关闭
关闭
首页 > 嵌入式软件 > 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移植

2.过程以及目的:

bootloader是一个linux嵌入式系统的不可缺少的部分。这一阶段的学习主要是了解bootloader的作用,以及通用bootloader---u-boot的知识,刚开始学会用u-boot的各种命令。然后分析u-boot的启动流程和Makefile以及u-boot加载内核过程。然后按照别人的步骤一步一步的移植内核,多做几编以熟悉这个过程。然后在熟悉整个u-boot的基础上,独自完成u-boot的移植,并添加自己修改。这一阶段主要参考资料就是光盘自带的u-boot移植参考手册和一些网络上的文章。个人感觉u-boot移植这方面的网络资源相当的丰富。

3.时间:大约一个月

第六阶段:文件系统学习

1.知识点:

(1)linux文件系统的种类与作用

(2)熟悉busybox的使用,以及linux系统启动过程

(3)构建自己的根文件系统

2.过程以及目的:

文件系统也是一个linux嵌入式系统不可缺少的部分,这一阶段的学习主要是熟悉根文件系统的作用以及基础知识。并且自己构建自己的根文件系统。这一阶段所看的书有《构建嵌入式linux系统》,这本书详细讲解了嵌入式linux的所有元素,包括文件系统.这里主要看文件系统这块。我还参考了网上的一些文章。这里首先要熟悉基本的一些Linux文件系统,然后学习busybox的使用以及linux的启动过程,最后参考别人的一步一步来构建自己的文件系统。

3.时间:大约半个月

第七阶段:嵌入式图形界面GUI

1.知识点:

(1)嵌入式图形界面GUI的种类与特点

(2)minigui 基础知识

(3)minigui 移植与程序编写

2.过程以及目的:

嵌入式图形界面GUI作为嵌入式上层系统的东西也是需要了解的,这里我只学习了minigui,因为QT是需要C++的知识,而我没有学过C++.所以只看了minigui的相关知识。这个阶段的目的主要是熟悉一下嵌入式图形接界面的开发流程,因为以后也不打算搞应用。只是熟悉一下嵌入式组成的一些方面。这里只要将minigui移植到板子上能跑hello程序就可以了。其他的也不用深入了解。通过移植minigui对linux上运行的软件以及函数库,程序运行原理,编译器都会有一个新的认识。

3 时间:大约半个月

第八阶段:linux驱动程序基础知识

1.知识点:

(1)看完《LINUX设备驱动程序》除了网络驱动程序,tty驱动程序,块驱动程序这几章不看,其他的都要看完。

(2)实验书中所有例程,要仔细分析结果,理解相关知识点。

(3)就算是例子,程序编程习惯一定要统一,文档一定要规范。

2.过程以及目的

这一阶段的目的就是为了linux驱动打基础,《LINUX设备驱动程序》(第三版)也就是大家所说的ldd3,是最经典的一本讲linux驱动的书,一定要看而且多看几遍。第一次看很难看进去,感觉讲的晦涩难懂。但是多看几遍就会由豁然开朗的感觉。看完了书,然后就是实验书中的例子。



3.时间:大约两个月

第九阶段:linux驱动实战

1. 知识点:

(1)通过led驱动理解杂项字符设备的注册与实现,并掌握MINI2440的IO操作过程。

(2)通过button驱动程序掌握基本的中断实现方法。

(3)掌握PWM驱动程序。

(4)通过触摸屏驱动程序掌握input设备模型的实现。

(5)掌握ADC驱动程序的设计

(6)掌握看门狗,rtc驱动程序的设计

(7)通过LCD驱动程序分析platform设备模型的实现。

2.过程以及目的:

这一阶段的学习主要是掌握实际的简单的驱动程序的实现与ldd3中的差别,并且分析一些linux子系统。通过这一阶段的学习,能够对linux驱动程序有更深入的认识。并且锻炼自己阅读海量代码的能力。这一阶段主要工作就是看代码,实验,看代码,实验,通过现象学习知识。

3. 时间:大约一个月

第十阶段:深入理解linux内核与USB子系统的研究

‌ 前九个阶段完成了,自己感觉嵌入式Linux应该应该算是入门了。所以要开始计划第十个阶段了。这一阶段基本上要确定自己未来的发展方向了。因为现在嵌入式系统的标准接口都有USB,所以学会USB的相关知识是很有竞争力的。搞驱动的人对内核应该有一定的了解,所以《深入理解Linux内核》还是必须的。这一阶段主要是学习USB协议,阅读linux USB子系统全部的代码,通过阅读代码加深对USB的理解,随后就是熟悉各种USB类协议,编写和移植USB驱动了。USB是我确定的方向,因为我想搞什么东西都要专一,什么都搞,什么也搞不好。所以我决定学习USB。决定以后从事嵌入式有关USB方面的工作。这一阶段的学习正在进行中,现在正在linux USB子系统浩瀚的代码中漫游。

换一批

延伸阅读

[猎聘集] 全世界最成功的程序员:远见卓识会毁了Linux

全世界最成功的程序员:远见卓识会毁了Linux

Linux发明者称,正因为我不知道它将来会怎样,所以我对别人的建议和影响才表现得格外开放。......

关键字:程序员 Linux 开源

[猎聘集] 嵌入式应用愈发广泛 就业前景可观

嵌入式应用愈发广泛 就业前景可观

近年来,智能硬件铺天盖地的出现,让人们彻底改变了过去对嵌入式系统应用的认识。嵌入式人才的就业方向,前景尤为可观。......

关键字:嵌入式 就业前景 可观

[新鲜事] 应届生就业,考研,培训该何去何从?

应届生就业,考研,培训该何去何从?

数据显示,今年全国高校毕业生人数近750万,比被称为史上“最难就业季”的2014年又增加了22万人,在这样竞争激烈的就业形势下,不少应届生都表示无可奈何。对于大三大四的学生来说,毕业以后是该马上找工......

关键字:应届生 考研 嵌入式

[真心话] 神技能get:实现1秒启动Linux?

神技能get:实现1秒启动Linux?

尽可能快的启动系统,对于自动化设备是非常重要的。系统能够在用户无法感知的时间内启动,也就意味着在不需要工作时,可以完全切断电源,而不是挂起进入休眠状态。本文基于Atmel AT91系列片上系统和NAND闪存,经过一......

关键字:Linux 自动化设备 启动 系统

[猎聘集] 优秀嵌入式DSP工程师是怎样炼成的?

优秀嵌入式DSP工程师是怎样炼成的?

1、工作多年,总结您的经验和工作经历,您最想与想要或已经从事嵌入式电子行业新人说的话是什么?我当初进入DSP领域,是一个师兄的带领下进入的,但是我初学不久,他就离开学校,开始工作,因此我的DSP学习也暂时结束......

关键字:DSP工程师 嵌入式

[新鲜事] 苹果三星力劝运营商用e-SIM技术 弃用实体SIM卡

苹果三星力劝运营商用e-SIM技术 弃用实体SIM卡

据《金融时报》报道,苹果与三星正在积极劝说运营商以配合研发和使用全新SIM卡标准。此类新型SIM卡将采用嵌入式技术(后称e-SIM),能让移动设备更方便地在不同运营商网络间进行切换。e-SIM在出厂时会被预装在设备里,由于本身并不锁定于某个......

关键字:运营商 金融时报 三星 嵌入式 技术

[新鲜事] CentOS系统宣布为ARM(armhfp)硬件架构发布CentOS Linux 7(1611)镜像

CentOS系统宣布为ARM(armhfp)硬件架构发布CentOS Linux 7(1611)镜像

今天,CentOS系统开发人员Fabian Arrotin非常高兴的宣布为ARM(armhfp)硬件架构发布CentOS Linux 7(1611)镜像。该GNU/Linux发行版本深受单板计算机和嵌入式设备的喜爱,支持树莓派3、树莓派2、......

关键字:ARM CentOS Linux

[新鲜事] Linux内核修复Ryzen线程数目识别错误,多线程性能将会飙升

Linux内核修复Ryzen线程数目识别错误,多线程性能将会飙升

Linux已经在官网发布最新的内核修复这一问题,预计Ryzen 7处理器又能纵横在Linux系统上。......

关键字:Linux内核 Ryzen 多线程

[真心话] 物联网时代如何做嵌入式

物联网时代如何做嵌入式

随着物联网时代的来临,数据的流通、收集、分析显得越来越重要。在IdoSarig看来,主要做的事情在于保障数据在物联网里的双向流通,不仅是将底层的数据采集、传输至云端处理并分析,同样还需要将处理指令反馈至终端设......

关键字:物联网 嵌入式
条评论

我 要 评 论

网友评论

大家都爱看

  • 华为的优势,就是自家的各种自研芯片

    CPU即中央处理器,是一块超大规模的集成电路,是一台计算机的运算核心和控制核心。它的功能主要是解释计算机指令以及处理计算机软件中的数据。

    2017-08-16
  • 你不知道Ryzen芯片有多火?来看看AMD的股票吧

    据外媒报道,美银美林认为,AMD最新的Ryzen芯片可能会引发一波销售浪潮,进而推动该股继续上涨。它认为AMD股票还有40%以上的上涨空间。

    2017-08-16
  • 国产芯片:厚积薄发,强势崛起

    关于国产芯片,是近几年才有崛起的势头,可是在几年之前,国产芯片还处于“沉睡”的状态,尤其是手机芯片,几乎大部分都依赖进口,而且国外的市场几乎被高通和联发科所垄断,也就展讯还在市场边…

    2017-08-16
  • 为了数据安全 大疆无人机增加隐私飞行功能

    大疆周一表示,在美国陆军因为“网络缺陷”而要求其成员停用大疆无人机后,这家中国无人机制造商将加强无人机的数据安全性。 大疆政策和法务副总裁布伦丹&middot…

    2017-08-15
  • Intel代工 展讯发布14nm SC9853I手机SoC

    SC9853I采用的Intel的14nm FinFET制程,架构为8核64位Airmont架构,主频1.8GHz,GPU为Mali-T820 MP2,号称面向799~1299元档次的手机。…

    2017-08-15