# GLEDP
**Repository Path**: zggzcgy/gledp
## Basic Information
- **Project Name**: GLEDP
- **Description**: 树莓派4 Linux内核驱动学习,点亮一个LED灯
- **Primary Language**: C
- **License**: GPL-3.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2023-03-11
- **Last Updated**: 2023-03-11
## Categories & Tags
**Categories**: Uncategorized
**Tags**: kernel, Raspberry-pi, Linux, pi4b
## README
GLEDP
=====
#### 介绍
Linux内核驱动学习,点亮一个LED灯,树莓派4B+,芯片为BCM2711
#### 安装步骤
1. `git clone https://gitee.com/zggzcgy/gledp.git`
2. `cd gledp`
3. `make`
加载到内核模块
```sh
sudo insmod led.ko
```
卸载led内核模块
```sh
sudo rmmod led.lo
```
#### 说明
目的是通过Linux内核操作寄存器完成LED灯的控制,并非直接使用上层应用[^1],若能熟练掌握,内容共涉及下面知识点。
1. 内核模块的创建和构建
2. 内核日志的打印
3. 位运算
4. 虚拟内存的映射
5. 树莓派4B寄存器操作
知识主要参考博客[自增人生][blog],代码参考[github][code],由于PI3处理器和PI4不一样,需要参考BCM2711官方[数据手册][manual],本驱动默认使用27号针脚进行测试。官方给的针脚顺序如下图所示,这个版本主要给python这类在官方驱动提供参考顺序,我们不采用这个顺序。![pin27][gpio]
我们主要以正方形状为起始1,右边为2,成之字型从上往下数,相关连接如图所示。
[blog]: (GPIO驱动之LED)
[code]: <(https://github.com/Sojyu-Shirakawa/led_switch/blob/main/myled.c)>
[manual]: "bcm2711"
[gpio]: "树莓派针脚图"
其它注意事项
1. 仅在树莓派4B上完成测试。
2. 所有操作均在树莓派上操作。
3. 如有其他疑问欢迎进行讨论学习。
### 许可信息
[GNU General Public License v3.0](LICENSE)
[^1]: 上层应用:指在用户层直接调用操作系统接口的应用程序,如Python等应用。