正点原子Linux驱动开发学习笔记
文章平均质量分 96
嵌入式进阶之路
这个作者很懒,什么都没留下…
展开
-
新字符设备驱动实验
首先我们需要使用register_chrdev_region(静态方法)或者alloc_chrdev_region(动态方法)来注册字符设备并申请设备号。然后我们使用cdev_init来初始化一个字符设备,并使用函数cdev_add来向内核中添加一个字符设备。最后需要设置自动申请设备节点,先使用class_create来创建一个类,然后使用device_create来创建一个设备。通过上述的步骤就可以搭建一个新的字符设备驱动框架,并且在模块加载以后能够实现自动创建设备节点了。原创 2023-07-14 21:23:04 · 508 阅读 · 1 评论 -
嵌入式LinuxLED驱动开发实验
我们现在还没有学习到设备树的相关知识,所以,我们也是通过在字符设备驱动框架的基础上来配置底层寄存器来实现LED灯的点亮,但是,与之前不同的是,在Linux系统中会存在地址映射的方式,所以,我们在裸机实验操作的实际的物理地址和在Linux系统下操作的地址是不同的,所以我们需要用一个宏来找到映射的虚拟地址下的实际地址,从而完成对底层寄存器的配置。我们可以看到,LED灯的负极连接LED0这个引脚,如果给LED0低电平的话,这样就可以从VCC_3V3生成灌电流,点亮LED灯,所以就需要给LED0这个引脚置0。原创 2023-07-13 22:15:17 · 1586 阅读 · 1 评论 -
字符设备驱动开发(最初方式)
字符设备是Linux中最基本的一类设备驱动,我们常见的点灯、按键、IIC、SPI、LCD等等都是通过字符设备驱动框架来进行开发的。字符设备驱动是通过一个一个字节流的方式来进行读写操作设备,读写数据是分先后顺序的。原创 2023-07-12 16:41:30 · 1069 阅读 · 0 评论