初学者的嵌入式 Linux 计划!

这篇具有很好参考价值的文章主要介绍了初学者的嵌入式 Linux 计划!。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

俗话说万事开头难,刚开始的时候,是不是根本就不知如何开始?今天给大家分享一个嵌入式大神总结的Linux学习计划!希望给大家提供帮助,;另外想要系统学习也可以dd我!

第一阶段:嵌入式硬件基础以及裸机程序开发

arm处理器基础知识,工作模式,寄存器,中断与异常,寻址方式,汇编指令集; 熟悉ADS集成开发环境为裸机程序开发做准备;裸机程序开发:LED,串口,LCD,触摸屏,NANDFLASH,IIC,IIS,DMA等
这一阶段的学习主要是熟悉嵌入式的硬件,为以后的linux驱动打基础。因为嵌入式主打处理器架构就是arm,所以针对arm来学习。首先学习基础知识,然后通过在开发板上的练习来掌握。

第二阶段:linux基础以及shell编程
这一阶段的学习主要是熟悉linux,会安装linux,了解Linux的基础知识,会简单的操作。刚开始安装linux还是在虚拟机上安装比较好,安装开发板推荐的Fedora9,按照开发板配套的说明一步一步的安装,然后在上面练习各种命令。

这一阶段主要要看《鸟哥的linux私房菜基础学习篇》,这个书有电子版,也不用全看,主要是看前面对Linux基础知识的描述,以及基本的命令。命令只是了解,那么多记也记不下来,以后用时再查阅。这一阶段主要目的是对linux有一个整体的了解,最起码要知道基础的一些概念,还有会一些基本的操作。

第三阶段:linux应用程序基础开发
这一阶段的学习主要是了解linux应用程序的编写调试,也都是基础知识,主要目的还是熟悉Linux。熟悉其中应用程序有关的一些概念,为以后打基础。这一阶段主要看了《嵌入式Linux应用程序开发标准教程》,这本书对linux上应用程序编写讲的很详细,而且不是很难,那本最经典的《UNIX高级环境编程》讲的比较深入,刚开始看有点难,万事开头难还是从简单的开始。学习应用编程以后也不一定搞应用,从事嵌入式linux行业的人,这是必须的基本技能。

第四阶段:uCOSII操作系统学习
这一阶段的学习主要是了解嵌入式实时操作系统的基础,因为uCOSII是开源的,可以研究他的代码。对操作系统的任务调度以及资源管理有直观的认识。并且阅读他的源码能够提高自己的编程能力,规范自己的编程习惯。虽然提供了uCOSII的移植版本,但是自己实际移植一次能够有更深刻的认识。

这个操作系统比较简单,所以应用程序的编写就很重要,在上面实现几个功能还是有助于对系统的理解。这一阶段主要看的就是邵贝贝翻译的uCOSII作者所著的《嵌入式实时操作系统uCOS-II》,里面对操作系统的源码有详细的分析。看透这本书后就会对uCOSII有一个深入的了解。

这一阶段的主要目的是了解操作系统的知识,比如任务调度,并发与竞态。还有一个目的就是锻炼自己的编程能力。因为如果看介绍操作系统原理的书会比较枯燥,我感觉阅读一个操作系统的源码比看一千本介绍原理的书来的实惠的多。

第五阶段:bootloader学习
bootloader是一个linux嵌入式系统的不可缺少的部分。这一阶段的学习主要是了解bootloader的作用,以及通用bootloader---u-boot的知识,刚开始学会用u-boot的各种命令。然后分析u-boot的启动流程和Makefile以及u-boot加载内核过程。

然后按照别人的步骤一步一步的移植内核,多做几遍以熟悉这个过程。然后在熟悉整个u-boot的基础上,独自完成u-boot的移植,并添加自己修改。这一阶段主要参考资料就是光盘自带的u-boot移植参考手册和一些网络上的文章。个人感觉u-boot移植这方面的网络资源相当的丰富。

第六阶段:文件系统学习

linux文件系统的种类与作用;熟悉busybox的使用,以及linux系统启动过程;构建自己的根文件系统
文件系统也是一个linux嵌入式系统不可缺少的部分,这一阶段的学习主要是熟悉根文件系统的作用以及基础知识,并且自己构建自己的根文件系统。这一阶段所看的书有《构建嵌入式linux系统》,这本书详细讲解了嵌入式linux的所有元素,包括文件系统。这里首先要熟悉基本的一些Linux文件系统,然后学习busybox的使用以及linux的启动过程,最后参考别人的一步一步来构建自己的文件系统。

第七阶段:嵌入式图形界面GUI
嵌入式图形界面GUI作为嵌入式上层系统的东西也是需要了解的,这里我只学习了minigui,因为QT是需要C++的知识,而我没有学过C++,所以只看了minigui的相关知识。这个阶段的目的主要是熟悉一下嵌入式图形接界面的开发流程,因为以后也不打算搞应用。

只是熟悉一下嵌入式组成的一些方面。这里只要将minigui移植到板子上能跑hello程序就可以了。其他的也不用深入了解。通过移植minigui对linux上运行的软件以及函数库,程序运行原理,编译器都会有一个新的认识。

第八阶段:linux驱动程序基础知识

为了linux驱动打基础,《LINUX设备驱动程序》(第三版)也就是大家所说的ldd3,是最经典的一本讲linux驱动的书,一定要看而且多看几遍。第一次看很难看进去,感觉讲的晦涩难懂。但是多看几遍就会由豁然开朗的感觉。看完了书,然后就是实验书中的例子。

第九阶段:linux驱动实战

通过led驱动理解杂项字符设备的注册与实现,并掌握MINI2440的IO操作过程;通过button驱动程序掌握基本的中断实现方法;掌握PWM驱动程序;通过触摸屏驱动程序掌握input设备模型的实现;掌握ADC驱动程序的设计;掌握看门狗,rtc驱动程序的设计;通过LCD驱动程序分析platform设备模型的实现。

主要是掌握实际的简单的驱动程序的实现与ldd3中的差别,并且分析一些linux子系统。通过这一阶段的学习,能够对linux驱动程序有更深入的认识。并且锻炼自己阅读海量代码的能力。这一阶段主要工作就是看代码,实验,看代码,实验,通过现象学习知识。

第十阶段:深入理解linux内核与USB子系统的研究

学习USB协议,阅读linux USB子系统全部的代码,通过阅读代码加深对USB的理解,随后就是熟悉各种USB类协议,编写和移植USB驱动了。USB是我确定的方向,因为我想搞什么东西都要专一,什么都搞,什么也搞不好。所以我决定学习USB。决定以后从事嵌入式有关USB方面的工作。这一阶段的学习正在进行中,现在正在linux USB子系统浩瀚的代码中漫游。文章来源地址https://www.toymoban.com/news/detail-822666.html

到了这里,关于初学者的嵌入式 Linux 计划!的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • linux初学者要读的书

    1、《Linux程序设计(第4版)》 2、《鸟哥的Linux私房菜 》 3、《UNIX环境高级编程》 4、《Unix/Linux编程实践教程》 5、《深入理解 Linux 内核》 6、《 Linux命令行与shell脚本编程大全(第3版)》 7、《Linux内核设计与实现(第3版) 8、《 深入Linux内核架构》 9、《ARM Linux内核源码剖

    2024年02月16日
    浏览(33)
  • Linux常用命令大全(Linux初学者快速入门)

      本文旨在为Linux初学者提供一份Linux常用命令总结。我将介绍一系列常用的命令及其用法,包括文件和目录相关操作、系统管理、进程控制、网络操作等方面。通过学习这些命令,读者将能够更好地管理和操作Linux系统,提高工作效率。   在本文中,我将详细讲解每个命

    2024年02月11日
    浏览(46)
  • Linux-初学者系列——篇幅4_系统运行相关命令

    上篇: Linux-初学者系列——篇幅3_操作界面获取帮助 一、关机重启注销命令 1、重启或者关机命令-shutdown 关闭和重启Linux系统的命令shutdown,系统在关闭重启之前会通知所有的登录用户,系统即将关闭重启时所有的新用户都不可以登录 语法格式: 常用参数: 序号 参数选项 功

    2024年02月05日
    浏览(53)
  • linux--初学者的常用命令合集(频率比较高的)

      sudo su root        打开root权限 passwd root          修改root密码 ctrl shift +            字符变大 ctrl -                    字符变小 cd .                      返回本目录 cd ..                      返回上一级目录 cd   绝对路径        如:cd /home/kali/Desktop cd 下一级

    2024年03月09日
    浏览(63)
  • Linux configure命令精通:一个完整的初学者教程

    Linux中的configure命令用于配置和准备软件包以进行编译和安装。它是一个常见的脚本,由软件开发者提供,用于检查系统的环境和依赖关系,并相应地生成Makefile,从而可以在特定的Linux系统上编译和安装软件包。 开源软件中一般都有一个名为\\\"configure\\\"的脚本文件,需要运行这

    2024年02月03日
    浏览(53)
  • VASP新手入门,对于VASP以及Linux系统初学者的福音~(附VASP简单结构优化的详细过程)

       其实好多朋友们对于突然被丢过来一个课题,去学习VASP是完全没有概念的,例如什么是VASP?VASP是一个什么样的软件?(好多的同学们在找我帮忙编译安装过VASP之后最有趣的一句话是“您好!请问VASP这个软件在哪里,我为什么找不到!”)如何使用VASP?用VASP到底去计算什

    2024年02月09日
    浏览(51)
  • 爬虫,初学者指南

    1.想目标地址发起请求,携带heards和不携带heards的区别 request模块用于测速发送数据的连通性,通过回复可以看出418,Connection:close表示未获取到服务器的返回值,需要添加heards信息,此服务器拒绝非浏览器发送的请求。 上图可以看出添加了头信息headers之后成功获取了返回值

    2024年02月07日
    浏览(59)
  • 守护进程(初学者必备)

    目录 一.进程组和会话 二.守护进程的概念 三.守护线程的特点 四.守护进程创建的基本步骤 1.进程组的相关概念: 进程除了有进程的PID之外还有一个进程组,进程组是由一个进程或者多个进程组成。通常他们与同一作业相关联可以收到同一终端的信号 每个进程组有唯一的进程

    2024年02月08日
    浏览(60)
  • Groovy初学者指南

    本文已收录至Github,推荐阅读 👉 Java随想录 微信公众号:Java随想录 目录 摘要 Groovy与Java的联系和区别 Groovy的语法 动态类型 元编程 处理集合的便捷方法 闭包 运算符重载 控制流 条件语句 循环语句 字符串处理 字符串插值 多行字符串 集合与迭代 列表(List) 映射(Map) 迭代器

    2024年02月05日
    浏览(62)
  • ChatGPT初学者最佳实践

    2022年11月底,ChatGPT引爆了新一轮AI的革命,也让人们意识到AI真的能够大幅度提高人们的工作效率,甚至有人担心自己的工作会因为AI不保。这种居安思危的意识是正确的,但是正如锛凿斧锯的出现,并没有让木匠这个行业消失,而是让这个行业以更高效的方式工作。所以作为

    2024年02月05日
    浏览(51)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包