一、笔者现在在跟着学做一些简单的嵌入式设备驱动实验,感觉那些驱动实验的步骤都是类似的,今天就跟大家一起来看一看自己做过的‘简单字符设备驱动程序的设计“
1、在做实验 的时候我们一般都是在ubuntu系统根目录下的/opt/workspace里面进行的,实验会要求编写简单的字符驱动设备,
所以会需要我把那个驱动程序代码复制到/opt.workspace里面,那么问题来了,那个驱动代码是什么,该怎么写,里面又是什么呢,
所以要进去看看。里面大致有三个部分
一般驱动里面都会要有一个makefile的文件,感觉是要用来编译驱动模块的。代码在下面
第一行就是那个环境变量KERN_DIR= 那个内核;linux-3.2.0-psp04.06.00.10就是这个文件
第二行是那个驱动模块的代码simplecdev
第三行是实验之后需要用来测试字符驱动程序模块是否安装成功到开发板上,代码如下
了解这些工作之后,我们就要在终端进入到/opt/workspace
然后在root下输入命令#make clean
#make用来编译之前的那个驱动模块simplecdev
编译成功之后用ls查看会生成一个后缀名为.ko的特别叼的内核模块文件,听说是用来加载某个模块,但一般是驱动程序,比如说上面的字符驱动模块
下一步就需要将写好的模块和用来测试的test程序考到/share目录下,因为马上就要和开发板连接了
这里需要网线和串口线连接开发板和电脑
接下来做的工作个人感觉是这些驱动模块的
共性,因为做了好多重复的操作,
比如说下面的配置ip
我们需要在数字机和目标机上面配置ip
数字机所说的也就是我们的电脑pc输入命令 # ifconfig eth0 10.0.0.1
然后需要启动我们的开发板,输入#minicom ,等到linux启动完成之后需要进行对目标机也就是开发板上配置ip
# ifconfig eth0 10.0.0.2up
在minicom中。
挂载主机上的/share目录,在此目录下安装模块,进行测试。
命令如下 # mount –t nfs –o nolock 10.0.0.1:/share /mnt(常用到)
之后的工作就是在这个目录之下安装模块
#insmod simplecdev.ko
检测是否安装成功可以进行对之前拷过来的test文件进行测试#./mnt/simplecdev.test
如果成功会显示弹出test程序调用了模块程序代码的哪些函数,像下面这样。调用了上面的代码
总结:笔者这周和我的两位小伙伴一起做了几个关于简单驱动的实验,他们的过程大致就是这样,原理还不是很懂,但是在啃代码,希望我们把他们啃懂,比如
simplecdev_open simplecdev_write simpledev_read 等他们调用的过程。
”