Linux驱动
文章平均质量分 67
王丰博
嵌入式c/c++ linux 音视频。
展开
-
linux驱动设计——内核模块简介
1 概述我们知道Linux的内核非常庞大,包含的组件也很多,而实际的项目中我们只会使用其中的一部分,同时又会增加一部分相关的组件,那么我们如何来管理这些组件呢?有两种方法:1)全部编译到内核2)动态加载到内核分别谈一下特点,对于全部编译到内核,会导致两个问题,一个是内核会非常庞大,另一个是当我们对组件做任何修改的时候,都需要重新编译内核。而对于动态加载到内核,可以保证一个干净的内核,其他的组件在有需要的时候动态的加载到内核中去,这种加载和完全编译的效果相同。Linux通过提供 模块机制,来完成动态原创 2022-09-04 18:31:00 · 106 阅读 · 0 评论 -
Linux驱动设计——C编程规范
1、说明在内核源码Documentation/CodingStyle下,介绍了Linux下编码规范,上一张图给大家:2、编码Style2.1宏定义#define PI (3.1415926)说明: 宏定义全部大写2.2 变量名int min_value, max_value ;说明:变量名小写,下划线隔开2.3 函数名void send_data(void);说明:变量名小写,下划线隔开2.4 代码缩进使用“TAB”2.5 "{“和”}"的使用2.5.1 结构体、if原创 2021-01-23 15:38:55 · 342 阅读 · 4 评论 -
Linux驱动设计——内核组成
1、内核源码目录结构下面请看4.4内核根目录的源码:简要说明:arch:包含和硬件体系结构相关的代码,每种平台占一个相应的目录,如i386、arm、arm64、powerpc、mips等。Linux内核目前已经支持30种左右的体系结构。在arch目录下,存放的是各个平台以及各个平台的芯片对Linux内核进程调度、内存管理、中断等的支持,以及每个具体的SoC和电路板的板级支持代码。block:块设备驱动程序I/O调度。crypto:常用加密和散列算法(如AES、SHA等),还有一些压缩和CRC校原创 2021-01-22 13:03:57 · 239 阅读 · 0 评论 -
Linux驱动设计——硬件基础
Linux 驱动设计之硬件基础0、开篇说明本片内容主要来源于宋宝华老师《Linux设备驱动开发》1、处理器目前主流的通用处理器(GPP)多采用SoC(片上系统)的芯片设计方法,集成各种功能模块. ARM内核的设计技术被授权给数百家半导体厂商,做成不同的SoC芯片。ARM的功耗很低,在当今最活跃的无线局域网、3G、手机终端、手持设备、有线网络通信设备等中应用非常广泛。很多ARM主控芯片的集成度非常高,除了集成多核ARM以外,还可能集成图形处理器、视频编解码器、浮点协处理器、GPS、WiFi、蓝牙、基带原创 2021-01-20 22:13:46 · 403 阅读 · 0 评论