学习嵌入式Linux几点非常实用的建议
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
系统学习嵌入式Linux 几点非常实用的建议
学习把握嵌入Linux 的开发与移植现在非常流行。各种学习文章与培训班,充斥书店街头。笔者也上了路,经历漫长的摸索,终于一日开窍,但的确糟践了很多金钱与时间。作为穷人,现写下自己的感受,供好学寒士参考。
第一要点:实验重于看书(多编码,少翻书)
一定首先搭建x86实验环境。
用旧计算机(周末电脑城抛售存货,有新的),搭建一套实验环境。
host主机: 一台PC机(能够跑redhat linux,看问档就可以了,配网卡与软驱)。
target目标机:一块旧PC主板,配一张网卡和一个软驱,电源。
附件:交叉网线,交叉串口线
够了,不会超过3千元(已经很满足了)。
软件全部到网站下载。
先不管什么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一样。
以后越来越难,坚持。
第四个重点编译跑通网卡的驱动程序
下载编译网卡驱动源码
跑通主机与目标机的网络通讯。
不要太动头想,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 服务器。
可以玩好几年,当然最好找工作前,有针对地做实验。
一句话,动手修改编码,不要只看看。
学习嵌入式Linux的路:
2010-10-28 15:42:56 阅读14 评论0 字号:大中小订阅
我认为的一条学习嵌入式Linux的路:
1)学习Linux系统安装、常用命令、应用程序安装。
2) 学习Linux 下的C 编程、这本书必学《UNIX 环境高级编程》、《UNIX网络编程》,Rechard Stevens 写的,C 高手大都学习过《C 和指针》、《C 缺陷与陷阱》、《高质量C/C++编程指南》、《C
专家编程》、《The C programming Language》
3)程序员大都要学:数据结构,嵌入式程序员数据结构必学!
4)底层开发人员大都要学:微机原理、计算机体系结构,嵌入式开发人员必学!
5)单片机可以让一个从事软件开发的人了解和如何操作硬件,有必要学,因为一开始就从ARM 入手,
不太现实!
6)ARM 体系结构,其中有汇编。
7)数字电路有必要学习,不然你在做底层开发时真的会不知道怎么看原理图,起码也得懂与或门吧。
8)ARM + Linux 应用程序开发。(前提是要有开发板)
到此,你勉强算是在嵌入式Linux 这个行业有了初步入门了吧, 但遗憾的是这还远远不够!这是我现在的水平。告诉你我是学软件专业,已经学习一年嵌入式Linux 了,我现在找个工作都难,还没找到。以下是
我认为成为高手的学习方向。
9)要做底层开发,就必须知道软硬件之间是如何衔接和配合工作的,那么电子技术应该要好好学习了,很多时候会用到模拟电路知识,这是区别好手与菜鸟的不同之处之一。
10)Linux 下的汇编要学,这样你才能真正了解你写的程序是如何在一个特定的硬件上跑的。这是区别好
手与菜鸟的不同之处之二。
11)TCP/IP 协议栈要学,所有的嵌入式高手都得掌握的东西,这是区别好手与菜鸟的不同之处之三。12)有了这些东西,拿下Linux 驱动已经不再话下,需要你去学习Linux 内核源代码和Linux驱动程序
设计,这是一个技术升华。
到此,你已经算是嵌入式Linux 的中级人物了,本科生工资在4000-5500 不等。
13)音频、视频的解码译码技术你得学。
14)各种IC ,各种bootloader 你能够参与其开发设计。
15)自行设计开发新产品,新技术。
我认为到此你已经是一个世界级的嵌入式Linux 人物了,工资待遇我已经不用说了。
这些东西要靠自学入门,说实话不太现实,嵌入式入门比较高,要有心里准备,进培训机构学习是有必要的,除非你有亲戚朋友手把手教你。但不一定就意味着培训了你就真能学好,能找到很好的工作,要因人而异,能入门就算不错了。主要还是靠个人,还有就是自己必须要有一块开发板,你必须投入很多钱,因为还有很多的书籍你也得买。还有一点,自己必须得喜欢专研。要不你不可能学好!
小弟孤陋寡闻,很多细节没有一一写出,见笑了,请提出意见,谢谢。
如何学习嵌入式Linux
2011-02-27 09:59:59 阅读47 评论0 字号:大中小订阅
一直在为没能系统的学一下嵌入式linux+arm的问题而困扰, 因为一直不知道怎么个系统
法, 所以整天东看看, 西弄弄. 前几天看到了成都国嵌的视频教程的介绍. 觉得他们为学员制定的学习指导比较合理, 比较适合入门, 所以总结的一下, 在此分享:
===============================================================================