本帖最后由 abao1 于 2020-10-9 10:15 编辑
按照开发者指南做第四十五章实验,程序按照视频以及手册上的进行编写,在控制台输出的内容和编写字符设备设备驱动都没什么问题,能够申请IO成功就是不能点亮LED。 然后我就查找有没有IO占用的问题,设备树的内容跟着视频修改了,还是没有解决点亮LED的问题。 最后去看了原子哥常见问题总汇的“2.6.16 第四十五章pinctrl 和和gpio 实验gpioled.ko灯无法点亮”,按照图片修改,就可以点亮led灯。 问题是解决了,但是疑惑就增加了。 根据左神在视频里写的笔记的内容: 申请IO的时候失败,大部分原因是这个IO被其他外设占用了。检查设备树,查找有哪些使用同一IO的设备。 1,检查复用,也就是pinctl设置。 2,gpio使用
接着我就去找了这几个配置IO的信息对比了一下: LED的IO与网络复位有关的IO一点关系都没有,而且MX6UL_PAD_SNVS_TAMPER7__GPIO5_IO7与MX6ULL_PAD_SNVS_TAMPER7__GPIO5_IO7, 这是两个不同IOMUXC的地址 MX6ULL_PAD_SNVS_TAMPER7__GPIO5_IO7是0x020e0000+0x0024=0x020e 0024, MX6UL_PAD_SNVS_TAMPER7__GPIO5_IO7是0x020e0000+0x0038=0x020e 0038, 这应该不和板子上led的IO口冲突的。 (注:在修改网络驱动的章节中,修改设备树时我用了MX6ULL_PAD_SNVS_TAMPER7__GPIO5_IO7)
|