自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 什么是GPIO控制器

7.echo 18 > /sys/class/gpio/unexport //取消导出引脚,取消选中在内核空间用GPIO子系统来控制引脚:(platform平台)1.echo 18 > /sys/class/gpio/export //导出一个GPIO引脚(假设引脚编号为18),选中。2.echo out > /sys/class/gpio/gpio18/direction //设置为输出。5.echo 0 > /sys/class/gpio/gpio18/value //设置为低电平。

2024-08-02 09:14:52 776

原创 什么是设备树,匹配驱动的方法

设备树文件(.dts),是一个单独的文件,用于保存硬件信息,还有.dtsi文件是.dts文件所包含的头文件,因为可能存在一个soc被用到多种电路板上,大部分的公共部分信息被存在dtsi文件中,特殊的一些信息保存在dts文件中。static struct platform_driver demo_led_driver = {//定义了平台驱动结构,包括probe和remove函数,以及驱动的名称和设备树匹配表。可以看出,使用设备树之后的硬件信息是独立在内核之外的,这就解决了上述问题。

2024-07-29 17:31:44 312

原创 Linux驱动开发流程—probe函数

在这个函数中,通过向设备的某个寄存器写入配置数据来完成设备的初始化。当内核检测到一个设备时,它会调用驱动程序的probe函数,以便驱动程序可以初始化设备、分配资源、设置寄存器等。当内核检测到一个设备时,它会尝试找到合适的驱动程序,并调用该驱动程序的probe函数来初始化设备。在总线匹配设备和驱动的时候,会调用probe函数然后再调用驱动自己的probe函数,又发现,probe又是调用的my_device_init()函数来初始化。__devinit: 标记设备初始化函数,主要用于特定设备的初始化。

2024-07-26 16:18:35 756

原创 Linux设备驱动模型 流程和原理

* shutdown函数指针,在系统关机或重启时调用,通常用于执行设备的安全关闭操作 *//* 资源使用的GPIO配置,引用“gpio1”控制器的第10号引脚 *//* 资源使用的GPIO配置,引用“gpio1”控制器的第11号引脚 *//* 定义设备节点,名字为“xiaolaoshu”,地址为“666666” *//* GPIO配置,引用下文定义的“gpio1”控制器,使用其第10号引脚 *//* 兼容性字符串,用于描述这个设备树的类型,驱动程序可以通过它来匹配设备树 */

2024-07-26 09:04:21 985

原创 什么是Linux字符设备

有人这样写: void cdev_init(struct cdev *cdev, struct file_operations *fops);//struct cdev *p - 被注册的cdev对象。有人这样写: cdev_add(struct cdev *dev, dev_t num, unsigned int count);3.向内核里添加一个驱动 int cdev_add(struct cdev *p, dev_t dev, unsigned count);

2024-07-24 14:20:14 346

空空如也

空空如也

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

TA关注的人

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