我们已经准备好了,你呢?

2024我们与您携手共赢,为您的企业形象保驾护航!

驱动程序_驱动精灵_linux button驱动

俗话说,万事开头难。刚开始的时候,你是否不知道从哪里开始?在网上查资料的时候,被一堆新名词弄得眼花缭乱。去图书馆看书的时候,找不到方向?一会儿是Linux,一会儿是uboot。不知所措,不知道从哪里开始?

现在就跟随我来学习如何设计一份嵌入式工程师的实习日记吧!

总之从ARM基础到裸机编程,从到Linux,从Linux基础命令到shell编程,从u-boot到文件系统,最后到现在的Linux驱动。从简单到复杂,从基础到高级基本都是以此为基础的。

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

1.知识点:

(1)ARM处理器基础知识,包括工作模式、寄存器、中断与异常、寻址方式、汇编指令集

(2)熟悉ADS集成开发环境,为裸机程序开发做好准备

(3)裸机程序开发:LED、串口、LCD、触摸屏、IIC、IIS、DMA等。

2.流程及目的:

这一阶段的学习主要目的是熟悉嵌入式硬件,为以后学习Linux驱动打下基础。因为嵌入式系统的主要处理器架构是ARM,所以我们会学习ARM的相关知识。先学习基础知识,然后在开发板上进行实践。这一阶段用到的资料主要包括:

(1)《ARM嵌入式基础教程》这本书主要讲ARM的基础知识,这本书讲的是ARM7,但是ARM的基本指令集和模型是一样的。

(2)嵌入式Linux应用开发完全手册本书主要介绍接口模块。裸机实验时需要具备硬件知识。

3.耗时:约两个月。

第二阶段:Linux 基础和 Shell 编程

1.知识点:

(1)Linux基础知识

(二)Linux的安装与使用

(3)常用Linux命令

(4)vi 的使用

(5)简单shell编程

2.流程及目的:

这个阶段的学习主要是熟悉Linux,安装Linux,了解Linux的基本知识,简单操作,一开始最好在虚拟机上安装Linux,按照推荐安装开发板,按照开发板的说明一步步安装,然后在上面练习各种命令。

这个阶段主要看《鸟哥私房菜谱之Linux学习基础》,这本书有电子版,不用全部看完,主要看前面部分对Linux基础和基本命令的描述,命令只是用来理解的,太多东西要记,以后需要的时候再查。这个阶段主要目的是对Linux有个整体的了解,至少知道一些基本概念,一些基本操作。

3.时间:一个月左右。

第三阶段:Linux应用程序基础开发

1.知识点:

(1)GCC、GDB 和 Make 基础

(2)文件、时间编程

(3)多进程和多线程编程

(4)进程间通信

2.流程及目的:

这一阶段的学习主要是为了了解Linux应用程序的编写和调试,这些也都是基础知识,主要目的是熟悉Linux。熟悉一些应用程序相关的概念,为以后打下基础。《Linux应用程序开发标准教程》这本书对Linux上的应用程序编程讲解的很详细,难度也不大。最经典的《UNIX高级环境编程》讲的比较深入,刚开始读的时候有点吃力,最好从最简单的开始。学了应用程序编程,不一定非要搞应用程序,对于从事嵌入式Linux行业的人来说,这是必备的基本功。

3. 时间:约一个月

第四阶段:操作系统学习

1.知识点:

(1)嵌入式实时操作系统概念及基础知识

(2)阅读操作系统源代码

(3)移植

(4)操作系统应用程序编程

2.流程及目的:

此阶段的学习主要是了解嵌入式实时操作系统的基础知识。由于是开源的,可以研究其代码。对操作系统的任务调度、资源管理等会有一个直观的了解。而且阅读其源代码可以提高编程能力,规范自己的编程习惯。虽然提供了移植的版本,但自己实际移植一下才能有更深刻的理解。

这个操作系统比较简单,所以应用程序的编写很重要,在上面实现几个功能对理解这个系统会有帮助,这个阶段我主要读了邵贝贝翻译的作者写的《嵌入式实时控制器操作系统uCOS-II》这本书,里面有对操作系统源代码的详细分析,读完这本书之后会对它有很深的理解,这个阶段主要的目的是了解操作系统的知识,比如任务调度,并发等,另外一个目的是提高自己的编程能力,因为读一本操作系统原理的书比较枯燥,所以我觉得读一本操作系统的源代码比读一千本原理书划算多了。

3. 时间:约一个月

第五阶段:学习

1.知识点:

(1)基础知识

(2)u-boot基础知识及命令

(3)u-boot移植

2.流程及目的:

它是Linux嵌入式系统中不可缺少的一部分。这一阶段的学习主要是了解u-boot的作用和常识。一开始我们学习了u-boot的各种命令的使用。然后分析了u-boot的启动流程以及u-boot内核的加载过程。然后按照别人的步骤一步步移植内核,多做几次就熟悉了这个过程。然后在熟悉整个u-boot的基础上,自己完成u-boot的移植并加入自己的修改。这一阶段主要参考资料是光盘自带的u-boot移植参考手册和网上的一些文章。个人感觉关于u-boot移植的网上资源还是比较丰富的。

3. 时间:约一个月

第六阶段:文件系统学习

1.知识点:

(1)Linux文件系统的种类及功能

(2)熟悉使用方法及Linux系统启动流程

(3)建立自己的根文件系统

2.流程及目的:

文件系统也是Linux嵌入式系统中不可缺少的一部分。这一阶段的学习主要目的是熟悉根文件系统的作用和基本知识,并构建自己的根文件系统。本书详细讲解了嵌入式Linux的所有元素,包括文件系统。这里我主要讲解文件系统。我也参考了网上的一些文章。在这里你必须先熟悉一些基本的Linux文件系统。然后学习如何使用和启动Linux,最后通过参考别人的一步步指导来构建自己的文件系统。

3.时间:约半个月

第七阶段:嵌入式图形界面GUI

1.知识点:

(1)嵌入式图形界面(GUI)的类型和特点

(2)基础知识

(3)移植与编程

2.流程及目的:

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

只是熟悉一些嵌入式系统方面的知识,这里只需要把hello程序移植到板子上,其他的不需要了解,通过移植Linux上运行的软件和函数库,对程序运行原理,编译器会有全新的认识。

3.时间:约半个月

阶段 8:Linux 驱动程序基础

1.知识点:

(1)读完《LINUX设备驱动程序》后,应该阅读除网络驱动程序,tty驱动程序,块驱动程序之外的所有章节。

(2)对实验书中的所有例程,都应认真分析结果,理解相关的知识点。

(3)即使是例子,编程习惯也要统一,文档要规范。

2. 流程和目的

这一阶段的目的是为Linux驱动打下基础。《LINUX 》(第3版)又名ldd3,是Linux驱动最经典的书,一定要看,而且要多看几遍。我看了好几遍,第一遍看得入迷,觉得晦涩难懂。但多看几遍之后,感觉豁然开朗。看完书之后,我又用书上的例子进行实验。

3.时间:约两个月

第九阶段:Linux驱动实践

1.知识点:

(1)了解LED驱动各种字符设备的注册、实现,掌握IO操作流程。

(2)掌握通过驱动程序实现中断的基本方法。

(3)掌握PWM驱动器。

(4)掌握通过触摸屏驱动程序实现输入设备模型的实现。

(5)掌握ADC驱动器的设计

(6)掌握看门狗、RTC驱动程序的设计

(7)通过LCD驱动程序分析设备模型的实现。

2.流程及目的:

这一阶段的学习主要目的是掌握简单驱动和ldd3实际实现的区别,分析一些Linux子系统。通过这一阶段的学习,可以对Linux驱动有更深的理解。并且锻炼自己阅读海量代码的能力。这一阶段的主要工作就是读代码,做实验,读代码,做实验,通过现象学习知识。

3. 时间:约一个月

10

第十阶段:深入了解Linux内核和USB子系统研究

‌完成前面九个阶段之后,我感觉自己已经掌握了嵌入式Linux。于是乎,又要开始筹划第十个阶段了。这个阶段基本上决定了我以后的发展方向。因为嵌入式系统的标准就是有USB接口,所以学习USB相关的知识竞争非常激烈。搞驱动的人,对内核应该有一定的了解,所以《深入理解Linux内核》还是很有必要的。

这一阶段主要是学习USB协议,阅读Linux USB子系统的全部代码,通过阅读代码加深对USB的理解。然后熟悉各种USB协议,编写和移植USB驱动。USB是我确定的方向,因为什么都想专心,什么都做不好,所以决定学习USB,决定以后从事嵌入式USB的工作,这一阶段的学习正在进行中,目前在Linux下浏览USB子系统的浩瀚代码。

二维码
扫一扫在手机端查看

本文链接:https://by928.com/5992.html     转载请注明出处和本文链接!请遵守 《网站协议》
我们凭借多年的网站建设经验,坚持以“帮助中小企业实现网络营销化”为宗旨,累计为4000多家客户提供品质建站服务,得到了客户的一致好评。如果您有网站建设、网站改版、域名注册、主机空间、手机网站建设、网站备案等方面的需求,请立即点击咨询我们或拨打咨询热线: 13761152229,我们会详细为你一一解答你心中的疑难。

项目经理在线

我们已经准备好了,你呢?

2020我们与您携手共赢,为您的企业形象保驾护航!

在线客服
联系方式

热线电话

13761152229

上班时间

周一到周五

公司电话

二维码
微信
线