嵌入式Linux学习方法——给那些彷徨者(上)

简介: 要想学好嵌入式Linux,首先要解决两个重要问题:1. 学什么?2. 怎么学? 首先解决第一个问题。嵌入式Linux的系统架构包括软件和硬件两个部分,如下图:再来看看一个成熟的嵌入式产品的开发流程是怎么一个过程:1.

要想学好嵌入式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

目录
相关文章
|
8月前
|
Linux 芯片
Linux 驱动开发基础知识——认识LED驱动程序 (二)
Linux 驱动开发基础知识——认识LED驱动程序 (二)
95 0
Linux 驱动开发基础知识——认识LED驱动程序 (二)
|
5月前
|
Linux
揭秘Linux心脏:那些让你的编程事半功倍的主要系统调用
【8月更文挑战第31天】Linux中的系统调用是操作系统提供给应用程序的接口,用于请求内核服务,如文件操作、进程控制等。本文列举了22种主要系统调用,包括fork()、exec()、exit()、wait()、open()、close()、read()、write()等,并通过示例代码展示了如何使用fork()创建新进程及使用open()、write()、close()操作文件。这些系统调用是Linux中最基本的接口,帮助应用程序与内核交互。
71 1
|
7月前
|
传感器 NoSQL 物联网
嵌入式开发系统学习——干货分享(一)
嵌入式开发系统学习——干货分享(一)
167 0
|
8月前
|
传感器 Linux API
嵌入式Linux串口编程简介
嵌入式Linux串口编程简介
57 1
|
8月前
|
Linux
Linux 驱动开发基础知识——编写LED驱动程序(三)
Linux 驱动开发基础知识——编写LED驱动程序(三)
121 0
Linux 驱动开发基础知识——编写LED驱动程序(三)
|
8月前
|
Linux 芯片
Linux 驱动开发基础知识—— 驱动设计的思想(六)
Linux 驱动开发基础知识—— 驱动设计的思想(六)
105 0
Linux 驱动开发基础知识—— 驱动设计的思想(六)
|
Ubuntu Linux Go
嵌入式Linux系列第19篇:如何高效的阅读Linux源码
嵌入式Linux系列第19篇:如何高效的阅读Linux源码
|
存储 Linux C语言
嵌入式Linux系统中ARM汇编语言的使用方法
大家好,今天主要大家聊一聊,如何在ARM中使用汇编语言的方法。
247 0
嵌入式Linux系统中ARM汇编语言的使用方法
|
Ubuntu 小程序 Unix
笔记:Linux C语言编程基本原理与实践
笔记:Linux C语言编程基本原理与实践
143 0
|
Shell Linux 调度
嵌入式linux如何学习
俗话说万事开头难(然后中间难,最后难?),刚开始的时候,你是否根本就不知如何开始,上网查资料被一堆堆新名词搞的找不到北,去图书馆看书也是找不到方向?又是arm,又是linux,又是uboot头都大了。不知道自己究竟从哪里开始?       嵌入式linux如何学习    简单说,从arm基础知识到裸机编程,从uCOSII到linux,从linux基础的命令到shell编程,从u-boot到文件系统,最后到现在的linux驱动程序。
2334 0