关于在嵌入式linux系统中加载驱动程序

2019-07-12 18:14发布

  最近在学驱动程序,到现在为止还是一个初学者,只能是记录一下我现在的学到的皮毛。我听的是囯嵌的视频,用的是嵌入式linux完全手册这本书的程序。一开始学都是看别人的程序的,我也是,我视频介绍,然后自己把程序熟悉遍,然后再编译加载一遍,因为刚开始学,很多东西不懂。    首先我有一个程序,这个是led的程序,里面东西我还没有看,然后就直接在虚拟机上编译,一开始的编译不成功,按照书上的程序是先在/driver/char/Makefile里面添加obj-m +=s3c24xx_leds.o,然后再根目录下make modules 一开始编译不成功,提示是没有gpio.h的库,然后自己上网找,网友提示说可能是不同的系统,放的位置不同,然后我就在系统里面找,大海捞针,即使有方便的搜索,后来灵感一现,在其他程序里面是不是存在相同的库呢,然后自己就找了一个原来系统的驱动程序,看到果然有,于是就把相应的库包含进去,把原来的删掉。编译成功。然后在char/下面找到s3c24xx_leds.ko这个文件。这个是模块化的驱动程序。不是静态链接的驱动程序。然后按照书上的提示把它放到/lib/modules里面。但是我的开发板里面的没有这个目录的。这时候难了我,我有想到开发手册应该有。然后就去找了。果然,里面有这些东西,是放到/home/plg下面。然后加载这个驱动程序(insmod s3c24xx_leds)加载成功。然后我按照书上的把测试程序编译好 下载到了板。在/dev下添加驱动文件(mknod /dev/leds1 c 231 0)然后运行测试程序。led灯按照我的测试程序显示。测试成功