博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
嵌入式Linux开发及移植的学习建议
阅读量:5824 次
发布时间:2019-06-18

本文共 1562 字,大约阅读时间需要 5 分钟。

hot3.png

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

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

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

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

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

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

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

  软件全部到电脑城/网站下载。

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

第二重点:GNU C编译

  在PC上安装 linux包括开发工具。熟悉linux配置命令。

  练习 linux 的 C 语言编程,多个程序的编译工程制作。无聊的话,将C语言教材的例程,编译十几个,熟悉GNU 编译器。

  包括gcc make ld objdump ar 等 GNU toolkit

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

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

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

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

4. 用这张软盘引导在目标PC主板 。 在PC主机的 串口终端上配置 PC主板目标机。 效果同 linux terminal console一样。以后越来越难,坚持。

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

1. 下载编译 你的网卡驱动源码

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

3. 不要太动头想, 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 服务器。可以玩好几年,当然最好找工作前,有针对地做实验。   

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

转载于:https://my.oschina.net/accesssoul/blog/61389

你可能感兴趣的文章
sql 内联,左联,右联,全联
查看>>
C++关于字符串的处理
查看>>
6、Web Service-拦截器
查看>>
Flask 源码流程,上下文管理
查看>>
stream classdesc serialVersionUID = -7218828885279815404, local class serialVersionUID = 1.
查看>>
ZAB与Paxos算法的联系与区别
查看>>
java 读取本地的json文件
查看>>
Breaking parallel loops in .NET C# using the Stop method z
查看>>
修改故障转移群集心跳时间
查看>>
[轉]redis;mongodb;memcache三者的性能比較
查看>>
微软职位内部推荐-Sr DEV
查看>>
让你的WPF程序在Win7下呈现Win8风格主题
查看>>
JDBC二查询(web基础学习笔记八)
查看>>
802.11 学习笔记
查看>>
Leetcode-Database-176-Second Highest Salary-Easy(转)
查看>>
构建Docker Compose服务堆栈
查看>>
最小角回归 LARS算法包的用法以及模型参数的选择(R语言 )
查看>>
Hadoop生态圈-Kafka常用命令总结
查看>>
如何基于Redis Replication设计并实现Redis-replicator?
查看>>
Linux 环境下 PHP 扩展的编译与安装 以 mysqli 为例
查看>>