# linux_driver_example **Repository Path**: flameboyence/linux_driver_example ## Basic Information - **Project Name**: linux_driver_example - **Description**: linux驱动示例代码 - **Primary Language**: C - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2020-11-01 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # linux_driver_example ### 介绍 linux驱动示例代码 ### 说明 #### 1.chrdevbase [字符设备驱动模板](https://gitee.com/flameboyence/linux_driver_example/blob/master/01_chrdevbase/chrdev.c) #### 2.led [LED驱动](https://gitee.com/flameboyence/linux_driver_example/blob/master/02_led/led.c) 参考博客:[Linux字符设备驱动一](https://gitee.com/flameboyence/blogs/blob/master/Linux%E5%AD%97%E7%AC%A6%E8%AE%BE%E5%A4%87%E9%A9%B1%E5%8A%A8%E4%B8%80.md) #### 3.newchrled [在02的基础上增加自动创建设备节点的操作](https://gitee.com/flameboyence/linux_driver_example/blob/master/03_newchrled/newchrled.c) 参考博客:[Linux字符设备驱动二](https://gitee.com/flameboyence/blogs/blob/master/Linux%E5%AD%97%E7%AC%A6%E8%AE%BE%E5%A4%87%E9%A9%B1%E5%8A%A8%E4%BA%8C.md) #### 4.dtsof [从设备树种获取数据(部分of函数的使用)](https://gitee.com/flameboyence/linux_driver_example/blob/master/04_dtsof/dtsof.c) 参考博客:[Linux设备树](https://gitee.com/flameboyence/blogs/blob/master/Linux%E8%AE%BE%E5%A4%87%E6%A0%91.md) #### 5.dtsled [将硬件信息从驱动中抽离出来放在设备树种,重新编写LED驱动程序](https://gitee.com/flameboyence/linux_driver_example/blob/master/05_dtsled/dtsled.c) #### 6.gpioled [利用linux gpio子系统和pinctrl子系统编写LED驱动程序](https://gitee.com/flameboyence/linux_driver_example/blob/master/06_gpioled/gpioled.c) #### 7.beep [蜂鸣器驱动程序(与LED驱动没什么区别)](https://gitee.com/flameboyence/linux_driver_example/blob/master/07_beep/beep.c) #### 8.atomic [原子变变量的使用](https://gitee.com/flameboyence/linux_driver_example/blob/master/08_atomic/atomic.c) 参考博客:[Linux内核并发与竞争](https://gitee.com/flameboyence/blogs/blob/master/Linux%E5%86%85%E6%A0%B8%E5%B9%B6%E5%8F%91%E4%B8%8E%E7%AB%9E%E4%BA%89.md) #### 9.spinlock [自旋锁的使用](https://gitee.com/flameboyence/linux_driver_example/blob/master/09_spinlock/spinlock.c) 参考博客:[Linux内核并发与竞争](https://gitee.com/flameboyence/blogs/blob/master/Linux%E5%86%85%E6%A0%B8%E5%B9%B6%E5%8F%91%E4%B8%8E%E7%AB%9E%E4%BA%89.md) #### 10.semaphore [信号的在驱动中的使用](https://gitee.com/flameboyence/linux_driver_example/blob/master/10_semaphore/semaphore.c) 参考博客:[Linux内核并发与竞争](https://gitee.com/flameboyence/blogs/blob/master/Linux%E5%86%85%E6%A0%B8%E5%B9%B6%E5%8F%91%E4%B8%8E%E7%AB%9E%E4%BA%89.md) #### 11.mutex [互斥体在求驱动中的使用](https://gitee.com/flameboyence/linux_driver_example/blob/master/11_mutex/mutex.c) 参考博客:[Linux内核并发与竞争](https://gitee.com/flameboyence/blogs/blob/master/Linux%E5%86%85%E6%A0%B8%E5%B9%B6%E5%8F%91%E4%B8%8E%E7%AB%9E%E4%BA%89.md) #### 12.key [按键驱动](https://gitee.com/flameboyence/linux_driver_example/blob/master/12_key/key.c) #### 13.timer [内核定时器](https://gitee.com/flameboyence/linux_driver_example/blob/master/13_timer/timer.c) #### 14.keyirq [linux中断](https://gitee.com/flameboyence/linux_driver_example/blob/master/14_keyirq/keyirq.c) 参考博客:[Linux中断](https://gitee.com/flameboyence/blogs/blob/master/Linux%E4%B8%AD%E6%96%AD.md) #### 15.blockio [阻塞IO](https://gitee.com/flameboyence/linux_driver_example/blob/master/15_blockio/blockio.c) 参考博客:[Linux驱动之阻塞和非阻塞IO等待队列一](https://gitee.com/flameboyence/blogs/blob/master/Linux%E9%A9%B1%E5%8A%A8%E4%B9%8B%E9%98%BB%E5%A1%9E%E5%92%8C%E9%9D%9E%E9%98%BB%E5%A1%9EIO%E7%AD%89%E5%BE%85%E9%98%9F%E5%88%97%E4%B8%80.md) #### 16.noblockio [非阻塞IO](https://gitee.com/flameboyence/linux_driver_example/blob/master/16_noblockio/noblockio.c) 参考博客:[Linux驱动之阻塞和非阻塞IO select poll epoll二](https://gitee.com/flameboyence/blogs/blob/master/Linux%E9%A9%B1%E5%8A%A8%E4%B9%8B%E9%98%BB%E5%A1%9E%E5%92%8C%E9%9D%9E%E9%98%BB%E5%A1%9EIOselectpollepoll%E4%BA%8C.md) #### 17.asyncnoti [异步通知](https://gitee.com/flameboyence/linux_driver_example/blob/master/17_asyncnoti/asyncnoti.c) 参考博客:[Linux异步通知信号](https://gitee.com/flameboyence/blogs/blob/master/Linux%E5%BC%82%E6%AD%A5%E9%80%9A%E7%9F%A5%E4%BF%A1%E5%8F%B7.md) #### 18.platform platform总线(linux驱动分离:设备-总线-驱动) [设备](https://gitee.com/flameboyence/linux_driver_example/blob/master/18_platform/leddevice.c) [驱动](https://gitee.com/flameboyence/linux_driver_example/blob/master/18_platform/leddriver.c) 参考博客:[Linux platform设备驱动驱动的分离与分层](https://gitee.com/flameboyence/blogs/blob/master/Linuxplatform设备驱动驱动的分离与分层.md) #### 19.dtsplatfrom [设备树+platform总线](https://gitee.com/flameboyence/linux_driver_example/blob/master/19_dtsplatfrom/dtsplatfrom.c) 参考博客:[Linux platform设备驱动驱动的分离与分层](https://gitee.com/flameboyence/blogs/blob/master/Linuxplatform设备驱动驱动的分离与分层.md) #### 20.misc [杂项设备驱动](https://gitee.com/flameboyence/linux_driver_example/blob/master/20_misc/misc.c) 参考博客:[Linux MISC驱动](https://gitee.com/flameboyence/blogs/blob/master/LinuxMISC%E9%A9%B1%E5%8A%A8.md) #### 21.input [linux input子系统](https://gitee.com/flameboyence/linux_driver_example/blob/master/21_input/keyinput.c) 参考博客:[LinuxINPUT子系统](https://gitee.com/flameboyence/blogs/blob/master/LinuxINPUT%E5%AD%90%E7%B3%BB%E7%BB%9F.md) #### 22.i2c [I2C驱动](https://gitee.com/flameboyence/linux_driver_example/blob/master/22_i2c/ap3216c.c) 参考博客:[I2C简介](https://gitee.com/flameboyence/blogs/blob/master/I2C%E7%AE%80%E4%BB%8B.md) [Linux I2C驱动](https://gitee.com/flameboyence/blogs/blob/master/LinuxI2C%E9%A9%B1%E5%8A%A8.md) #### 23.spi [SPI驱动](https://gitee.com/flameboyence/linux_driver_example/blob/master/23_spi/icm20608.c) 参考博客:[SPI简介](https://gitee.com/flameboyence/blogs/blob/master/SPI%E7%AE%80%E4%BB%8B.md) [Linux SPI驱动](https://gitee.com/flameboyence/blogs/blob/master/LinuxSPI%E9%A9%B1%E5%8A%A8.md)