Linux驱动开发学习
文章平均质量分 93
ssz__
这个作者很懒,什么都没留下…
展开
-
Linux驱动开发学习笔记7《并发与竞争》
此时你到了电话亭门口,因为里面有人,所以你不能进去打电话,相当于没有获取自旋锁,这个时候你肯定是站在原地等待,你可能因为无聊的等待而转圈圈消遣时光,反正就是哪里也不能去,要一直等到里面的人打完电话出来。终于,里面的人打完电话出来了,相当于释放了自旋锁,这个时候你就可以使用电话亭打电话了,相当于获取到了自旋锁。,如果要想进房间,那就要先获取一把钥匙,信号量值减1,直到10 把钥匙都被拿走,信号量值为0,这个时候就不允许任何人进入房间了,因为没钥匙了。,只要此线程不释放持有的锁,那么其他的线程就不能获取此锁。原创 2024-01-01 19:38:15 · 1168 阅读 · 0 评论 -
Linux驱动开发学习笔记6《蜂鸣器实验》
有源蜂鸣器只要通电就会叫,所以我们可以做一个供电电路,这个供电电路可以由一个IO来控制其通断,一般使用三极管来搭建这个电路。为什么我们不能像控制LED 灯一样,直接将GPIO 接到蜂鸣器的负极,通过IO 输出高低来控制蜂鸣器的通断。此先检查PIN 为SNVS_TAMPER1这个PIN 有没有被其他的pinctrl 节点使用,如果有使用的话就要屏蔽掉,然后再检查GPIO5_IO01 这个GPIO 有没有被其他外设使用,如果有的话也要屏蔽掉。,直接用直流电是驱动不起来的,需要2K-5K 的方波去驱动。原创 2023-12-29 19:31:49 · 1275 阅读 · 0 评论 -
Linux驱动开发学习笔记5《pinctrl和gpio子系统实验》
比如A 这个引脚在官方开发板接的是I2C 的SDA,而我们所使用的硬件可能将A这个引脚接到了其他的外设,比如LED 灯上,接不同的外设,A这个引脚的配置就不同。此函数获取GPIO 编号,因为Linux 内核中关于GPIO 的API 函数都要使用GPIO 编号,此函数会将设备树中类似的属性信息转换为对应的GPIO 编号,此函数在驱动中使用很频繁!上述代码的“gpios”节点一共定义了4 个GPIO,但是有2 个是空的,没有实际的含义。原创 2023-12-17 19:49:07 · 495 阅读 · 0 评论 -
Linux驱动开发学习笔记4《设备树下的LED驱动实验》
从上图可以看出,LED0 接到了GPIO_3 上,GPIO_3 就是GPIO1_IO03,当GPIO1_IO03输出低电平(0)的时候发光二极管LED0 就会导通点亮,当GPIO1_IO03 输出高电平(1)的时候发光二极管LED0 不会导通,因此LED0 也就不会点亮。所以LED0 的亮灭取决于GPIO1_IO03的输出电平,输出0 就亮,输出1 就灭。编译完成以后得到imx6ull-alientek-emmc.dtb,使用新的imx6ull-alientek-emmc.dtb 启动Linux 内核。原创 2023-12-17 19:48:50 · 665 阅读 · 2 评论 -
Linux驱动开发学习笔记3《新字符设备驱动实验》
经过前两章实验的实战操作,我们已经掌握了Linux 字符设备驱动开发的基本步骤,字符设备驱动开发重点是使用register_chrdev 函数注册字符设备,当不再使用设备的时候就使用unregister_chrdev 函数注销字符设备,驱动模块加载成功以后还需要手动使用mknod 命令创建设备节点。register_chrdev 和unregister_chrdev 这两个函数是老版本驱动使用的函数,现在新的字符设备驱动已经不再使用这两个函数,而是使用Linux 内核推荐的新字符设备驱动API函数。本节我们原创 2023-12-04 13:39:27 · 211 阅读 · 0 评论 -
Linux驱动开发学习笔记2《LED驱动开发试验》
所以本章的LED 灯驱动最终也是对I.MX6ULL 的IO口进行配置,与裸机实验不同的是,在Linux 下编写驱动要符合Linux的驱动框架。从上图可以看出,LED0 接到了GPIO_3 上,GPIO_3 就是GPIO1_IO03,当GPIO1_IO03输出低电平(0)的时候发光二极管LED0 就会导通点亮,当GPIO1_IO03 输出高电平(1)的时候发光二极管LED0 不会导通,因此LED0也就不会点亮。现在开启了MMU,并且设置了内存映射,因此就不能直接向0X020E0068 这个地址写入数据了。原创 2023-12-03 13:30:50 · 259 阅读 · 0 评论 -
Linux驱动开发学习笔记1《字符设备驱动开发》
是Linux 驱动中最基本的一类设备驱动,字符设备就是一个一个字节,按照字节流进行读写操作的设备,读写数据是分先后顺序的。比如我们最常见的点灯、按键、IIC、SPI,LCD 等等都是字符设备,这些设备的驱动就叫做字符设备驱动。原创 2023-12-02 17:24:26 · 230 阅读 · 0 评论