树莓派驱动开发--点亮led篇

树莓派驱动开发--搭建环境篇(保姆级)-CSDN博客

前言:环境搭建是关键,还没搭建的小伙伴去往上面连接,或者点击我主页进入环境搭建篇

一、认识树莓派设备树结构(如果没有设备树基础,请先去学习再来观看)

树莓派驱动开发--认识设备树篇-CSDN博客

请跳转我这篇文章!

二、修改设备树

经过第一点的学习后,想必你也是清楚了设备树开发板产家版,没错,我们的矛头就是bcm2711-rpi-4-b.dts。

让我们打开它,然后添加我们的设备信息:

在根节点下,添加以下内容

gpio4:gpio4@0xfe200000{
		#address-cells = <1>;
		#size-cells = <1>;

		compatible = "test_led";
		reg = <0xfe200000 0x00000004
			   0xfe20001c 0x00000004
			   0xfe200028 0x00000004>;
		status = "okay";
	};

 根节点

 添加后

 

修改好后,我们回到内核源码目录,执行

make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- dtbs

 

得到编译出来的.dtb,路径如上图。

三、编写及编译驱动文件、app文件

我们主要是讲步骤,所以代码这里就不展示,否则篇幅过大,代码参考博主的

树莓派4B采用设备树(DTS)提供硬件信息,编写platform驱动控制io(LED)_树莓派设备树-CSDN博客

然后,这里注意一下,编译app文件时,使用32位交叉编译工具,不然就会出错,解决方法在我的环境搭建篇的常见错误那里!!

好了,到这里,我默认你已经有了一个.ko 一个app可执行文件、及一个设备树.dtb文件。

四、挂载文件系统,传输文件

使用环境搭建篇的方法,把第三点得到那三个文件挂载给树莓派,

我这里就展示一下,你应该有3个东西。

然后把设备树.dtb文件替换掉树莓派本身有的那个

替换

然后把app 和 led.ko cp 到 /lib/modules/5.15.92-v8+/

再执行

sudo insmod led.ko

lsmod

就可以看到模块led了。

去到/proc/device-tree/,就可以看设备树节点

去到/dev/就可以看到字符设备名

 

 

五、点亮led

执行

gpio readall

执行

sudo  ./app 1

如接了led,

执行

sudo ./app 0

六、结束

呐,你成功了开头开心吧,所谓万事开头难!!!

相关推荐

最近更新

  1. TCP协议是安全的吗?

    2024-04-14 06:58:03       19 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-14 06:58:03       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-14 06:58:03       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-14 06:58:03       20 阅读

热门阅读

  1. 天空盒1-天空盒的实现原理

    2024-04-14 06:58:03       12 阅读
  2. Pytorch安装小坑(Windows+cu111)

    2024-04-14 06:58:03       11 阅读
  3. 微信小程序相关

    2024-04-14 06:58:03       13 阅读
  4. KDTree和Octree的区别

    2024-04-14 06:58:03       19 阅读
  5. nuxt.config.js配置

    2024-04-14 06:58:03       17 阅读
  6. React状态与引用(Refs)- 差异和使用场景

    2024-04-14 06:58:03       14 阅读
  7. js实现webp转png/jpg

    2024-04-14 06:58:03       13 阅读
  8. Spring Boot+Vue的高校食材采供管理系统

    2024-04-14 06:58:03       15 阅读