嵌入式 Linux 学习七步曲
Sailor_forever [email protected] 转载请注明
http://blog.csdn.net/sailor_8318/archive/2007/09/03/1769662.aspx
【谢谢大家关注】七步曲的全部PPT在此, word版还在整理中~
http://blog.csdn.net/sailor_8318/archive/2009/12/28/5094636.aspx
【序】学习 Linux 开发近一年,由于我是实验室第一个从事这方面开发的,学习过程中遇到了很多问题,可是总是求师无门,只能一个人自己摸索,同时也充分利用了网络,参考了广大 CSDN 博友及相关论坛的帖子,在此表示感谢!
嵌入式 Linux 的学习涵盖的范围比较广,下从 bootloader ,到内核移植、文件系统,中间的驱动开发,到上层的应用程序调试、开发环境等,变化莫测,经常是别人的能用自己的就有问题。
由于缺乏他人适当指点,自己在学习过程中也走了很多弯路,整个开发环境的搭建整了 N 久,更搞笑的是经常听说模块加载 insmod ,可连这个命令在主机还是 ARM 上用都没搞明白,那叫一个汗啊!大家勿笑,嵌入式 Linux 的初学者确实对交叉环境比较不懂,我是其一啊。
现在适逢好友要学习嵌入式 Linux ,就将近一年来的学习体会总结下,整理了一个总体的学习计划,希望给那些曾经像我一样彷徨的人一些帮助。后续将完善此文档,上传到个人空间上,先贴出目录。本人水平有限,不当之处,还请大家指正!
Sailor_forever
September 3, 2007
*****************************************************************************
1 第一篇 Linux主机开发环境(15天) 3
1.1 Linux的安装 4
1.1.1 Vmvare下Linux的安装(优先) 4
1.1.2 Windows下从硬盘安装Linux(可选) 4
1.1.3 光盘直接安装(可选) 4
1.2 Linux的基本命令及使用 4
1.3 Linux与windows的文件共享 4
1.3.1 Samba 4
1.3.2 Mount 4
1.3.3 共享文件夹 4
1.4 GCC开发工具 4
1.5 Makefile编写 4
1.6 简单应用程序 4
1.7 GDB调试 4
1.8 主机端的模块编程 4
2 第二篇 嵌入式Linux交叉开发环境(7天) 4
2.1 交叉开发环境介绍 5
2.2 交叉编译器cross-tool 5
2.3 配置主机开发环境 5
2.3.1 串口 5
2.3.2 TFTP网络下载 5
2.3.3 NFS主机端网络服务 5
2.4 建立交叉开发环境 5
2.4.1 配置目标板上的NFS客户端 5
2.4.2 GDB和GDB Server 5
2.5 交叉调试应用程序 5
2.6 ARM上的简单模块编程 5
3 第三篇 Linux系统bootlaoder移植(7天) 6
3.1 Bootloader基本介绍 6
3.2 U-boot介绍 6
3.2.1 代码结构 6
3.2.2 U-boot命令 6
3.2.3 环境变量 6
3.2.4 启动流程 6
3.3 U-boot移植过程 6
3.4 U-boot如何启动内核 6
3.4.1 启动流程 6
3.4.2 如何制作启动映像 6
3.4.3 启动参数 6
4 第四篇 Linux的内核移植(15天) 6
4.1 Linux内核的配置编译 6
4.1.1 Linux内核源代码结构 6
4.1.2 Linux内核编译选项解析 6
4.1.3 Linux内核编译链接 6
4.2 Linux启动流程 6
4.3 Linux内核移植 6
5 第五篇 Linux的内核及驱动编程(15天) 7
5.1 Linux的设备管理 7
5.2 Linux驱动程序结构 7
5.3 简单的字符设备驱动程序 7
5.4 Linux内核模块的加载卸载 7
5.5 驱动的调试方法 7
5.6 字符设备的高级属性-中断 7
5.7 内核的同步互斥机制 7
6 第六篇 文件系统制作(5天) 7
6.1 Linux文件系统制作 7
6.2 文件系统和存储设备的选择 7
6.3 各种文件系统的制作实例 7
7 第七篇 Linux的高级应用编程(5天) 8
7.1 多进程多任务的通信机制 8
7.2 多进程编程 8
7.3 多线程编程 8
7.4 网络编程 8
总用时 15 + 7 + 7 + 15 + 15 + 5 + 5 大概两个半月