通过前面的学习,我们了解到编写linux驱动的过程是:先注册我们通过注册函数编写的入口函数,然后在入口函数中获取设备号->注册字符设备->自动创建设备节点->获取设备树信息,最后通过销毁函数在退出函数中释放需要释放的资源。本文涉及的知识比较简单,现在开始学习led驱动。
首先,准备材料
开发环境:VMware
操作系统:ubuntu
开发版本:派兔i2S-6UB
库文件:linux开发板或ubuntu内核源代码
二、GPIO原理图
我用的是i2C-6ULX-B开发版。有关开发版本的更多信息,请查看i2C-6ULX-B开发套件。外观如下图所示:
根据Pai Rabbit提供的原理图,我们可以知道开发板上有两个led,其中一个是通电时电源指示灯亮起,所以我们只能使用一个,如下图所示:
从原理图可以看出,led低电平时亮,高电平时灭,然后查看排兔芯板的引脚图,如下图所示:
最后,查看Pai Rabbit官方提供的pin定义,如下图所示:
现在不用说了,朋友们都知道i2C-6ULX-B开发版上的led灯是接gpio5的。芯片的IO[5],Linux中GPIO的计算方法是GPIO _ NUM =(< IMX6UL _ GPIO _ PORT >-1)* 32+< IMX6UL _ GPIO _ PIN >,所以我赢了I2C-6U
Iii .GPIO配置
了解led的硬件原理后,需要在设备树中进行配置。如果你需要,可以了解一下Pai Rabbit的官方GPIO配置教程。嗯,相对简单。如果你没有研究过设备树,你可能不会理解它。如果需要,可以在百度搜索相关教程。在配置之前,我们