嵌入式Linux驱动程序和应用程序开发大全

1.嵌入式Linux驱动程序开发

嵌入式Linux驱动程序开发包罗万象,基本上每个点都要大概了解一下。

1.1 软件工具

Makefile必须要掌握一些,至于Kconfig太简单了只是个配置文件算不上程序技能。shell也必须会一点,因为makefile经常调用shell指令。

1.2 内核API

作为驱动程序的原料,大概了解有什么内核API函数可以用来组合驱动非常重要。

1.3 操作系统基本概念和代码实现

内核的操作系统直接相关的并发、阻塞非阻塞、异步通知、中断和时钟、内存管理等基本概念以及它们的代码实现。这一块内容其实都涉及操作系统基本原理,以及它们在linux内核中是如何实现的,如果懂操作系统基本原理很容易理解。不过有基本概念和了解如何C代码实现是两回事,有人很懂原理叫他用C代码实现出来就卡壳了,这也是C语言基础不过关的提现。

1.4 驱动分离分层概念和实现

设备(设备树编写修改)、总线、驱动概念和实现,特别是刚开机解析设备树、建立设备链表的理解。还有主机侧和设备测驱动的分离概念和实现。

1.5 低级驱动框架

proc、sysfs(udev)、I2C、SPI等一对一的低级驱动框架,已经它们如何在驱动代码中体现的。

1.6 高级驱动框架

USB wifi、UVC、SPI ADC、V4L2、framebuffer、spi flash等一个驱动包括多个低级框架的高级驱动框架。字符设备、块设备、网络设备这种泛泛的概念最好无视,从具体的对应的驱动去学习。一般在具体驱动会看到core、client、master三个部分还有非常多的源文件,基本上看不到单个源文件的驱动程序。

1.7应用层接口

设备号,sysfs(udev)、proc的实现和在应用层的表现。

1.8调试方法

printk方法最常用。proc、GDB、打桩等方法因为比较复杂一般比较少用。内核模块调试方法也经常用,把驱动做成一个.ko文件可以放在应用层单独加载运行,可以随时替换更改调试比较方便。

 

文章知识点与官方知识档案匹配,可进一步学习相关知识CS入门技能树Linux入门初识Linux25019 人正在系统学习中

来源:物联网_区块链_边缘计算_人工智能

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2020年10月4日
下一篇 2020年10月4日

相关推荐