[嵌入式linux]嵌入Linux的学习方法建议

news/2024/7/3 11:37:41
第一要点: 实验重于看书 (多编码,少翻书)
一定首先搭建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网页中。
www.zebra.org

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


第十个重点USB和 FLASH文件系统练习。(可以跳过)
可以分析修改 USB与FLASH文件系统源码。
一定要分析源码,上网查 FLASH的型号。


第十一个重点 路由器实验。
分析zebra方面的源码,再买一张网卡。
尝试分析 NAT RIP等协议,将你的PC板目标机,变成一台简单的路由器。

以后的实验 需要根据 行业来,
例如,mini-GUI (图形编程),或 DVR (硬盘录象机),或IP Vedio WebTV 服务器。

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

http://www.niftyadmin.cn/n/4481828.html

相关文章

ArrayList与List的使用区别

这段时间在复习旧有的基础知识,看到了泛型,装箱,拆箱等操作。然后回忆起多年前一位面试官问起的一个问题,“你觉得ArrayList与List的有什么使用上的区别”,当时我还是一个基础知识好薄弱的码农,只知道使用上…

引用作为返回值

为什么80%的码农都做不了架构师?>>> 用引用作为返回值的情况(返回值作为左值): 函数形参为引用,函数要返回形参时,要用引用类成员函数要返回自身时,要用引用返回全局变量&#xff0c…

一种保存防复制网页的方法

有些技术文章的网页内容不允许复制,也不能以另存为的方式保存。但如果这些内容对自己比较有用,该怎样保存下来呢? 经尝试找到了一种办法可以保存:点击查看-》源码,然后将源码文件类型选择为.html,然后保存…

【转】PowerShell入门(六):远程操作

转至:http://www.cnblogs.com/ceachy/archive/2013/02/20/PowerShell_Remoting.html PowerShell远程操作是远程管理的基础,它为集中管理分布式系统提供了又一种可靠、高效的方法。 一般来说PowerShell远程操作依赖于远程处理基础结构,但为数不…

vmware在没有网络的状态与主机通信

在没有网络的情况下,使用虚拟机和主机通信方法一:由于工作需要,使用虚拟机软件VMware在同一台电脑上同时运行不同的系统,用以测试网络应用程序和通信等。其实,在一台电脑上可以安装N块虚拟网卡,配合虚拟机软…

内存优化(三):Profile内存检测工具

大纲 内存抖动和内存泄漏内存大户,Bitmap内存优化Profile内存检测工具Mat大对象与泄漏检测 【内存抖动和内存泄漏】 Out Of Memory(内存溢出) 翻译中文就是内存用完了,当JVM因为没有足够的内存来为对象分配空间并且垃圾回收器也…

热乎乎刚写的ARM开发笔记

我的笔记刚公布就有很多朋友来找我,把我当高手,问我“ARM怎么入门”。我不是高手,仍然是菜鸟。 但是回想起自己当时的迷茫,特意写了这篇东西,当作给和我一样的兄弟姐妹的帮助吧。问这个问题的人多半不是已经工作的工程…

Android(Java):jni源代码

public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Button btn new Button(this); btn.setText("测试ndk"); btn.setOnClickListener(new ButtonOnClickListener()); setContentView(…