嵌入式Linux学习方法——给那些彷徨者(上)
要想学好嵌入式Linux,首先要解决两个重要问题:
1. 学什么?
2. 怎么学?
首先解决第一个问题。
嵌入式Linux的系统架构包括软件和硬件两个部分,如下图:

再来看看一个成熟的嵌入式产品的开发流程是怎么一个过程:
- 1.硬件开发
- 责任人: 硬件工程师
- 负责部分:基于EVM板, 添加、修改、删除硬件
- 2.Bootloader移植
- 责任人:系统工程师或驱动工程师
- 负责部分:将Bootloader移植到流程1所开发出来的硬件平台
- 3. Linux内核
- 责任人:系统工程师或驱动工程师
- 负责部分:将Linux内核移植到流程1所开发出来的硬件平台
- 4.根文件系统制作
- 责任人:系统工程师
- 负责部分:制作供内核启动的根文件系统
- 5.1 业务相关的应用程序
- 责任人:应用工程师
- 负责部分:开发和产品密切相关的应用程序
- 5.2 业务相关的驱动程序
- 责任人:驱动工程师
- 负责部分:开发和产品密切相关的驱动程序,如触摸屏、无线网卡
- 6. 功能测试,性能测试,系统集成测、实验局(系统设备)、发布
看完上面这些,你应该对嵌入式Linux有一个大概的认识了。我们再来理清一下知识结构,再对其进行细分。先来看预览一下“学什么”知识结构:
- 1.嵌入式处理器与裸机程序
- 2.Linux系统管理
- 3.Linux应用程序开发
- 4.Linux驱动程序开发
- 5.Linux内核开发与系统移植
再来对每一项要学习的东西进行汇集:
处理器:
1. ARM处理器工作模式
2. ARM系统寄存器
3. ARM寻址方式
4. ARM 汇编指令集
5. ARM环境C语言编程
6. ARM中断与异常
7. ADS集成开发环境
8. 裸机程序开发(串口、LCD、时钟、LED、按键……)
系统管理:
1. Linux定制安装
2. Linux命令详解
3. samba、nfs、tftp、wireshark使用
4. Shell编程
应用程序开发:
1. GCC、GDB、Makefile
2. 文件、时间编程
3. 多进程、多线程程序设计
4. 进程间通讯
5. 网络编程
6. QT图形化应用程序开发
7. Android图形化应用程序开发
内核开发:
1. Linux内核配置与裁剪
2. Linux内核模块开发
3. 根文件系统制作
4. 进程子系统
5. 内存子系统
6. Proc文件系统
7. 系统调用
8. 内核定时器
9. 内核异常分析
驱动程序开发:
1. 字符设备驱动程序
2. 总线、设备、驱动模型
3. 硬件访问技术
4. 中断处理
5. Input设备驱动
6. Platform驱动程序
7. PCI、USB驱动程序
8. 网卡驱动程序
9. 触摸屏驱动程序
10. 串口驱动程序
参考资料:国嵌嵌入式Linux
嵌入式Linux学习方法——给那些彷徨者(上)的更多相关文章
- 嵌入式Linux学习方法——给那些彷徨者(下)
上一章解决了嵌入式Linux的“学什么”问题,这一章则具体来说一下“怎么学”. 只要做好以下3点: 1.学习顺序.学习任何东西都应该由浅入深,不能一口吃下一个大胖子,得循序渐进.很多刚开始想学习Lin ...
- 【课程分享】深入浅出嵌入式linux系统移植开发 (环境搭建、uboot的移植、嵌入式内核的配置与编译)
深入浅出嵌入式linux系统移植开发 (环境搭建.uboot的移植.嵌入式内核的配置与编译) 亲爱的网友,我这里有套课程想和大家分享,假设对这个课程有兴趣的,能够加我的QQ2059055336和我联系 ...
- 嵌入式Linux上通过boa服务器实现cgi/html的web上网【转】
转自:http://blog.csdn.net/tianmohust/article/details/6595996 版权声明:本文为博主原创文章,未经博主允许不得转载. 嵌入式Linux上通过boa ...
- 嵌入式Linux开发——内容介绍与开发环境的搭建
嵌入式Linux开发步骤 设计自己的硬件系统 编写Bootloader 裁剪自己的Linux内核 开发移植设备驱动 构建根文件系统 开发应用程序 嵌入式Linux学习要点 熟练使用开发工具和相关指令集 ...
- 嵌入式Linux学习(一)
嵌入式系统 嵌入式系统是一种专用的计算机系统,作为装置或设备的一部分.通常,嵌入式系统是一个控制程序存储在ROM中的嵌入式处理器控制板.事实上,所有带有数字接口的设备,如手表.微波炉.录像机.汽车等, ...
- 嵌入式Linux驱动案例之中的一个
前几天解决一个嵌入式Linux驱动问题,做为一个案例进行记录. 本案例是一个CPU通过LocalBus总线訪问外围一个设备,详细设备是一个DSP器件.在实际应用中,性能要求非常高,对数据訪问速度提出比 ...
- 良许Linux | Linux学习方法及学习资料汇总
很多人想学习Linux,却不知道怎么着手,甚至不知道Linux有哪些方向,非常迷茫.基于此,我特地写了篇文章介绍Linux方向性问题,没想到一不小心成了爆款: 到什么程度才叫精通 Linux? 看完 ...
- 嵌入式 Linux下永久生效环境变量bashrc
嵌入式 Linux下永久生效环境变量bashrc 1) .bashrc文件 在linux系统普通用户目录(cd /home/xxx)或root用户目录(cd /root)下,用指令ls -al可以看到 ...
- Ice-E(Embedded Internet Communications Engine)移植到s3c2440A(arm9)linux(2.6.12)上的
2009-03-26 18:31:31 原文链接 1.前言 ICE-E是ICE在嵌入式上运行的一个版本,与ICE比较如下: Category Ice 3.3.0 Ice-E 1.3.0 Thread ...
随机推荐
- 【nodejs原理&源码赏析(3)】欣赏手术级的原型链加工艺术
目录 一. 概述 二. 原型链基础知识 三. Worker类的原型链加工 四. 实例的生成 五. 最后一个问题 六. 一些心得 示例代码托管在:http://www.github.com/dashno ...
- TOT 傅立叶变换 FFT 入门
HDU 1402,计算很大的两个数相乘. FFT 只要78ms,这里: 一些FFT 入门资料:http://wenku.baidu.com/view/8bfb0bd476a20029bd642d85. ...
- 【TFS】TFS2015链接TFS出现TF31002/TF400324问题解决方案
安装VS2015后链接TFS发现出现TF31002错误,然后用浏览器打开TFS URL能正常访问,在TFS online中点击用vs打开按钮,提示TF400324错误 1. VS2015中打开: 2. ...
- Android Studio如何Format代码
Android Studio如何Format代码 Reformat code Shift + CTRL + ALT + L (Win) OPTION + CMD + L (Mac)
- 【kotlin】报错 Only safe (?.) or non-null asserted (!!.) calls are allowed on a nullable receiver of type List<String>?
报错如下: 解决如下: 另一种情况: 解决如下:
- yum gd linux
32位操作系统安装命令:[root@localhost ~]# yum install php-gd*64位操作系统安装命令:[root@localhost ~]# yum install php-g ...
- pycharm、idea插件代理设置,插件安装
pycharm和idea都是intellij的,所以插件安装是设置代理方法相似, 以pycharm举例: 1.已经安装的插件列表: 2.查找要安装的插件,没有,会给出下载插件的链接地址: 3.打开链接 ...
- flask如何使模板返回大文件,又不消耗大量内存
当我们要往客户端发送大量的数据,比如一个大文件时,将它保存在内存中再一次性发到客户端开销很大.比较好的方式是使用流,本篇就要介绍怎么在Flask中通过流的方式来将响应内容发送给客户端.此外,我们还会演 ...
- myBatis学习笔记(10)——使用拦截器实现分页查询
1. Page package com.sm.model; import java.util.List; public class Page<T> { public static fina ...
- 从头学起-CLR的执行模型
1.将源代码编译成托管代码 公共运行时(Common Language Runtime) a.面向运行时的所有语言都可以通过异常报告错误 b.面向运行时的所有语言都可以创建线程 c.核心功能:管理内存 ...