嵌入式折腾了如此之久,今天终于有幸的点亮了第一个LED——故记录之
在Linux下,驱动可以分为三大类,字符设备,块设备,和网络接口。
这次完成LED驱动的就是的字符类设备(character device),对它的读写,就像普通文件一样,以字节为单位的进行读写。这样就可以通过Linux下的标准函数 open、close、read、write等这些来调用了。
Linux之于驱动,相当于一个插槽,驱动在linux下是*.ko的文件,可以通过insmod,和rmmod随意的加载和卸载。
当我们用insmo命令,加载一个模块的时候,我们可以通过
lsmod
或者
cat /proc/devices
来查看我们所加载的模块(module),会发现其名称后面的有数字,我们称之为主设备号。这是加载驱动后,系统给分配的版本号。
Linux下,得益于其强大的VFS设计,这样就有了 万物皆文件的性质。所以,我们的驱动所对应的设备,也是文件。
我们可以通过
mknod /dev/xxx c 111 0
这样一条命令创建一个节点(node)。
然后,我们就可以通过其提供的标准文件函数,来控制我们的设备了。
驱动基础知识就到这里了,后面讲详细的完成一个led驱动的设计