自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(7)
  • 收藏
  • 关注

原创 百万并发服务器

网站:type=blog。

2023-08-13 22:00:57 91 1

原创 Linux驱动开发 框架

linux操作系统中,每一个文件都有inode编号,文件系统将“inode”与文件名分开存储。使得硬链接成为可能。即多个文件名可以指向同一个“inode”。“inode”与文件名的映射关系存储在目录中。文件类型:文件、目录、符号链接、设备文件等。r代表字符设备 b代表块设备。权限和所有权:文件的读、写、执行权限以及文件的所有者和所属组。时间戳:文件的创建时间、最后访问时间、最后修改时间等。文件大小:文件所占用的字节数。数据块指针:指向存储文件数据的磁盘块。

2023-08-03 21:44:34 567

原创 Linux驱动开发 基础

修改设备树,添加相应的节点,节点里面重点是设置 reg 属性,reg 属性包括了 GPIO 相关寄存器。初始化驱动,所需信息从设备树通过OF函数获取,比如LED实验的GPIO寄存器虚拟地址用于设置复用功能等。

2023-08-03 21:39:44 286

原创 Linux 驱动实例 (ADC/PWM/RTC)

这包括引脚的复用(即一个物理引脚可能有多种不同的功能,例如用作GPIO、用作I2C数据线,等等),以及引脚的配置(如设置为输入或输出,上拉或下拉电阻等)。Pinctrl(Pin control)则是更为底层和全面的引脚管理和控制,它主要用于配置引脚的属性和功能,例如,将某个引脚设置为GPIO、设置为其他特定功能(如UART、SPI等)、配置上拉或下拉电阻等。最后,释放资源并关闭设备。因此,更准确的说法可能是,“pinctrl接口用于管理系统中引脚的状态,包括GPIO的功能、电气属性以及复用配置等”。

2023-08-03 21:32:30 760

原创 Linux 驱动实例 (输入子系统 按键中断)

5. `interrupts=<0 24 0>,<0 25 0>,<0 26 0>,<0 27 0>,<0 28 0>,<0 29 0>,<0 30 0>,<0 31 0>`: 这些值表示`gpx1`中断控制器管理的中断号,它们对应于父中断控制器(`gic`)中的中断号。首先,要了解的是,GPIO的编号是根据内核中特定于平台的GPIO控制器实现来分配的,而不是直接从设备树的`reg`属性中获得的。虽然按键驱动可以被实现为字符设备驱动,但在这个示例中,它只关注按键事件,而没有实现字符设备驱动中的文件操作。

2023-08-03 21:28:28 328

原创 Linux驱动 第七章

**DMA区(DMA Zone)**:DMA(Direct Memory Access)区域是专门为支持直接内存访问的设备设计的,因为某些硬件设备(比如早期的 ISA 设备)只能访问物理内存的某个范围(通常在 16MB 以下),这部分内存被保留在 DMA 区。虚拟地址的好处 (1)避免用户直接访问物理内存地址,防止一些破坏性操作,保护操作系统 (2)每个进程都被分配了4GB的虚拟内存,用户程序可使用比实际物理内存更大的地址空间 (3)4GB 的进程虚拟地址空间被分成两部分:「用户空间」和「内核空间」

2023-08-02 21:44:20 116

原创 Linux驱动

这是一个典型的i++操作。假设i的初值为,执行后为。但是如果在执行i++操作的时候,在第一行话之后 r0的数据已经取到了r1中,第二行开始执行的时候,这个时候来了一个硬件外部中断,而且这个时候外部中断也让这个全局变量加1。也就是r0中的数据+1,变为6。但是中断之后返回之后,由于恢复原本状态 也就是第二行代码,值为6。

2023-08-02 21:38:00 46

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除