自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 memcpy vs memcpy_toio

环境:Linux kernel 5.15.78 aarch64 armv8现象:使用vmap()以nocache的形式映射一段物理地址,使用memcpy()往其中写入数据,在写入最后64字节时发生如下错误确认并未发生溢出,且使用memcpy_toio()或以cache形式映射则不会有这个问题。网上搜了一圈没发现很好的解释,遂read the fxxking source code,趁热记录下来。本文主要探讨两个问题:1.memcpy()及memcpy_toio()的差别;

2023-03-16 14:15:59 1319

转载 Linux regmap机制:简化慢速 I/O 接口优化性能

Linux regmap机制:简化慢速 I/O 接口优化性能1. 简介Regmap 机制是在 Linux 3.1 加入进来的特性。主要目的是减少慢速 I/O 驱动上的重复逻辑,提供一种通用的接口来操作底层硬件上的寄存器。其实这就是内核做的一次重构。Regmap 除了能做到统一的 I/O 接口,还可以在驱动和硬件 IC 之间做一层缓存,从而能减少底层 I/O 的操作次数。2. 使用对比在了解 Regmap 的实现细节前,我们先来对比一下,传统操作寄存器的方式,与 Regmap 之间的差异。2.1 传

2022-04-01 21:46:33 183 1

原创 Linux Device Resource Management 原理实现

Linux Device Resource Management原理实现0x00 背景0x01 原理介绍0x02 具体实现1.资源的注册2.资源的卸载(1)驱动注册失败时(2)驱动卸载时0x03 总结0x00 背景在最近一次的驱动开发过程中,遇到由于devm接口使用不当导致kernel panic的问题。对于devm系列接口的认识,还停留在接口的简介中,只知道设备卸载时会自动释放申请过的资源。至于具体是如何实现的,还一无所知。devm接口真的有想象中的那么智能吗,这次便来一探究竟。0x01 原理介绍

2021-03-11 23:12:34 281 2

空空如也

空空如也

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

TA关注的人

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