几点非常实用的建议:系统学习嵌入式Linux

来源:岁月联盟 编辑:zhuzhu 时间:2007-08-01
几点非常实用的建议:系统学习嵌入式Linux内容简介:学习掌握嵌入 Linux 的开发与移植现在非常流行。各种学习文章与培训班,充斥书店街头。笔者也上了路,经历漫长的摸索,终于一日开窍,但的确糟蹋了很多金钱与时间。 作为穷人,现写下自己的感受,供好学寒士

学习掌握嵌入 Linux 的开发与移植现在非常流行。各种学习文章与培训班,充斥书店街头。笔者也上了路,经历漫长的摸索,终于一日开窍,但的确糟蹋了很多金钱与时间。 作为穷人,现写下自己的感受,供好学寒士参考。

 

第一要点: 实验重于看书 (多编码,少翻书)

一定首先搭建x86实验环境。

用旧计算机(周末电脑城抛售存货,有新的),搭建一套 实验环境。

host主机: 一台PC机(能够跑redhat linux,看问档就可以了,配网卡与软驱)。

target目标机: 一块旧PC主板,配一张网卡和一个软驱,电源。

附件: 交叉网线 ,交叉串口线

够了,不会超过3千元(已经很满足了)。

软件全部到网站下载。

先不管什么arm ppc mips, 以后看看文档吧。

 

第二重点:GNU C编译

在PC 上安装 redhat linux 包括 开发工具。

熟悉linux 的配置命令。

练习 linux 的 C 语言编程,多个程序的编译工程制作。

无聊的话,将C语言教材的例程,编译十几个,熟悉GNU 编译器。 www.gnu.org

包括gcc make ld objdump ar 等 GNU toolkit

 

第三重点:realtime linux 内核编程/加载到目标板运行。

1。下载 rt-linux ,或uclinux 或什么 非 redhat的linux 源码,一定是包括,编译工程makefile, 并且for x86 PC的。

2。修改和配置程序,将 rtlinux的标准 console口改为串口,不是vga与键盘。

3。在redhat linux 环境下,编译 这个 embedded linux内核。

用mkboot的这样程序(或按代码中工具,)将编译好的内核执行文件拷贝定位软盘引导区。

 

4。用这张软盘引导在目标PC主板 。

在PC主机的串口终端上配置PC主板目标机。 效果同 redhat linux terminal console一样。

以后越来越难,坚持。

 

第四个重点 编译跑通网卡的驱动程序

下载编译网卡驱动源码

跑通主机与目标机的 网络通讯。

不要太动头想, ping 通就是了。

 

第五个重点 用tftp 下载执行文件从 PC主机 到 目标机运行。

 

第六个重点 GNU GDB 远程在线调试(网口调试)

 

第七个重点 实时内核学习/修改

照文章/书 分析调试/破坏 内核的源码。

主要是 调度/消息/存储/文件/进程/线程/互斥 等

单独跑跑,了解内核功能就是了。

 

第八个重点 TCP/IP的学习

下载一个简单的web server (http server)

学习理解,并编译加载运行。

将PC主板目标机看作网站服务器,然后在PC主机的网络浏难器中访问这个 web server.

有兴趣,把你的照片加载到目标机的 html网页中。

 

第九个重点 网卡驱动程序分析

了解 PCI总线原理,尝试独立写点网卡驱动程序,过滤以太报文的处理。 跟踪处理特殊的报文。

 

 

第十个重点USB和 FLASH文件系统练习。(可以跳过)

可以分析修改 USB与FLASH文件系统源码。

一定要分析源码,上网查FLASH的型号。

 

 

第十一个重点 路由器实验。

分析zebra方面的源码,再买一张网卡。

尝试分析NAT RIP等协议,将你的PC板目标机,变成一台简单的路由器。

 

以后的实验 需要根据 行业来,

例如,mini-GUI (图形编程),或 DVR (硬盘录象机),或IP Vedio WebTV 服务器。

 

可以玩好几年,当然最好找工作前,有针对地做实验。

 

一句话,动手修改编码,不要只看看。