当前位置: 首页 » 资讯 » 国际 » 正文

mini2440添加步进西玛电机驱动,并把??动编译到内核中

放大字体  缩小字体 发布日期:2015-03-24
核心提示:西玛西玛电机KDIR := /home/Chri/linux-2.6.32.2 else obj-m :=led_linux.o clean: arm-linux-gcc led_test.c -o led_test all:
西玛西玛电机KDIR := /home/Chri/linux-2.6.32.2 else obj-m :=led_linux.o clean: arm-linux-gcc led_test.c -o led_test all: make -C $(KDIR) M=$(PWD) modules ARCH=arm CROSS_COMPILE=arm-linux-

这几天都在搞步进西玛电机在mini2440下linux系统的驱动。下面做个总结,也记录一下过程,供以后回顾。

首先把驱动的主要C文件写好,我命名是step_motor.c。在编译进内核之前,应该先通过编译成模块测试一下效果。我用环境是虚拟机+fedora9,先把mini2440开发板的内核文件压缩包放进linux系统下,然后解压打开,会发现里面有着几个config文件,分别对应不同参数的开发板。我的开发板是w35的,所以就选择config_mini2440_w35。先用指令cp config_mini2440_w35 .config把该文件设置为编译内核的config文件,然后就make。

编译成功后就就是编译step_motor.c文件了。创建一个文件夹,把step_motor.c放进去,然后新建一个Makefile文件,注意第一个字母要大写。然后按照编译模块的规则写该文件,可以上网百度一下,我写的是这样的 ifneq ($(KERNELRELEASE),) endif


其中那个KDIR那里是刚才编译成功的内核文件的路径,编译的模块会根据这个内核来生成。写好之后就一个make,假如文件没有写错的话就会生成名称对应的模块文件step_motor.ko,接着要做的就是把整个文件夹放到开发板上面了。

使用指令insmod step_motor.ko把模块动态加载到开发板中,然后输入lsmod,查看是否有着自己的模块。成功加载后,打开文件cat /proc/devices,查看一下自己添加的设备的设备号,假如为253,那么我们就可以添加设备了mknod /dev/step_motor c 253 1,添加一个字符型设备。这时候我们查看一下 ls /dev ,就可以看到设备列表中有着我们自己添加的step_motor。这时候我们就可以把自己编写的测试文件来测试一下设备运作是否正常。

测试成功后,我们就可以把模块编译到内核中去了。首先还是先用指令cp config_mini2440_w35 .config。然后把编写好的step_motor.c放到 内核文件夹的/drivers/char里,因为我们添加的是字符型设备。然后改写改目录下的Kconfig文件,添加

config STEP_MOTOR

tristate "step_motor"

然后修改Makefile文件,添加以下代码

obj-$(CONFIG_STEP_MOTOR) +=step_motor.o

返回到根目录下,make menuconfig可以查看一下自己的设备是否有显示。然后输入make zImage ARCH=arm CROSS_COMPILE=arm-linux- ,等待一段时间后就会编译完。然后在内核目录中打开/arch/arm/boot,就会找到编译好的zImage,通过DNW把镜像下载到开发板的内核中就OK。在超级终端中ls /dev查看一下就会发现自己的设备已经出现在列表当中。

本文应该还有许多疏忽的地方,欢迎大家纠正。

rm -f *.ko *.o *.mod.o *.mod.c *.symvers 西玛西玛电机

免责声明:本文若有侵权,请联系我,立刻删去!本文仅代表作者个人观点,与全球资源网无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
[ 资讯搜索 ]  [ ]  [ 告诉好友 ]  [ 打印本文 ]  [ 关闭窗口 ]

 
0条 [查看全部]  相关评论

推荐图文
推荐资讯
点击排行
 
网站首页 | 公益慈善栏目 赞助本站可以扫描支付 | 免费推广计划 | 全球资源网顾问团 | 帮助中心 | 企业文化 | 关于我们 | 全球信息中心 | 隐私政策 | 使用协议 | 版权隐私 | 网站地图 | 排名推广 | 广告服务 | 积分换礼 | 网站留言 | RSS订阅 | 本站对所有发布的信息不承担任何责任,用户应决定是否采用并承担风险。
English  | 简体  | 繁體