绿茶 发表于 2009-6-17 14:38

嵌入linux的学习方法

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

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

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

Host主机:一台PC机(能够跑redhat linux ,看文档就可以了,配网卡与软驱)。
Target目标机一块旧PC主板,配一张网卡和一个软驱,电源。
附件:交叉网线,交叉串口线。
够了,不会超过三千元(已经很满足了)。
软件全部到电脑城/网站下载。
先不管什么 arm ppc mips ,以后看看文档吧。

第二重点:GNU C编译

在PC上安装redhat linux包括开发工具。熟悉linux配置命令。   
练习 linux 的 C 语言编程,多个程序的编译工程制作。无聊的话,将C语言教材的例程,编译十几个,熟悉GNU 编译器。包括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一样。以后越来越难,坚持。

第四个重点 编译跑通网卡的驱动程序
1. 下载编译 你的网卡驱动源码
2. 跑通 主机与目标机的 网络通讯。 .
不要太动头想, 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 服务器。可以玩好几年,当然最好找工作前,有针对地做实验。  

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

daicheng 发表于 2009-6-17 14:52

不错,学习了,最近正在学习linux谢谢分享了!

kg_tgm 发表于 2009-7-2 09:12

顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶

guo159357 发表于 2009-7-5 10:45

实时嵌入式系统设计综述.rar

m_xiaokun 发表于 2009-7-10 19:55

正准备冲windows CE转入linux ,谢谢你的文章,差点就走弯路了

desert2008sz 发表于 2009-7-21 09:40

看了好几本这类的书,一直在门口转,今天看到楼主的文章,才明白自己一直在走弯路,谢谢楼主共享心得!

chinae 发表于 2009-7-21 12:13

金币已经快不够我下载了,必须努力了。

lddup 发表于 2009-7-21 18:59

一句话,动手修改编码:D

chinae 发表于 2009-7-22 17:30

没有人指导的话,一切没有楼主说的那么简单吧

自由无限 发表于 2009-7-24 17:49

正准备努力向这方面发展,学习中:lol

yangsail1985 发表于 2009-7-25 17:16

学习了。。。。。。。。。谢谢

yellowbull 发表于 2009-8-27 09:23

linux好麻烦

mantouqq 发表于 2009-9-4 19:07

谢谢楼主的教导

yuffice 发表于 2009-9-8 16:41

:handshake

ligeqq 发表于 2009-9-15 10:14

也许不需要搞线吧

pc上用虚拟机似乎更简单一些

fengqingk 发表于 2009-9-15 11:49

动手要比较重要

jxb01033016 发表于 2009-9-15 15:35

UP

UPUPUPUP

yuanjia 发表于 2009-10-6 14:02

谢谢楼主...正在学习中...帮助很大啊

dkscb 发表于 2009-10-6 20:34

谢谢楼主。。十分感谢

zhanglu231123 发表于 2009-10-6 20:38

我觉得linux代码都是改的!   多看多改写!不需要完整写 太难!
页: [1] 2 3 4
查看完整版本: 嵌入linux的学习方法