1407|2

297

帖子

0

资源

一粒金砂(高级)

迅为i.MX6ULL开发板Platform设备驱动运行测试 [复制链接]

文章目录

1 编译驱动和设备程序
2 编译应用测试程序
3 运行测试

1 编译驱动和设备程序

和前面章节中驱动测试程序一样需要一个Makefile文件,只是将obj-m的值改为led_device.o led_driver.o,Makefile文件内容如下:

 

首先我们在终端输入两个命令(设置两个环境变量):

 

然后执行“make”命令编译模块,编译完成生成led_device.ko和led_driver.ko模块文件。

 

2 编译应用测试程序

输入如下命令编译应用测试程序:

arm-linux-gnueabihf-gcc -o led_test led_test.c

编译完成后,会生成led_test可执行文件。

 

3 运行测试

启动开发板,将编译好的led_device.ko、led_driver.ko模块文件和led_test应用测试程序拷贝到/lib/modules/4.1.15目录下(检查开发板根文件系统中有没有“/lib/modules/4.1.15”这个目录,如果没有的话需要自行创建一下。开发板中使用的是光盘资料里面提供的busybox文件系统,光盘资料的“i.MX6UL终结者光盘资料\08_开发板系统镜像\03_文件系统镜像\01_Busybox文件系统”目录下)。输入下面命令加载模块:

 

驱动加载成功后,在根文件系统中/sys/bus/platform/目录下保存着当前板子 platform 总线下的设备和驱动,其中devices 子目录为 platform 设备,drivers 子目录为 plartofm 驱动。查看/sys/bus/platform/devices/目录,看看我们的设备是否存在,我们在 led_device.c 中设置 leddevice(platform_device 类型)的name 字段为“imx6ul-led”,也就是设备名字为 imx6ul-led,因此肯定在/sys/bus/platform/devices/目录下存在一个名字“imx6ul-led”的文件,否则说明我们的设备模块加载失败,结果如图 3.1所示:

 

同理,查看/sys/bus/platform/drivers/目录,看一下驱动是否存在,我们在 led_driver.c 中设置led_driver (platform_driver 类型)的 name 字段为“imx6ul-led”,因此会在/sys/bus/platform/drivers/目录下存在名为“imx6ul-led”这个文件,结果如图 3.2所示:

 

驱动模块和设备模块加载成功以后 platform 总线就会进行匹配,当驱动和设备匹配成功以后就会输出如图 3.3所示信息:

 

设备和驱动匹配成功后,使用led_test应用程序来测试一下,命令如下:

 

通过这两条命令来验证一下LED的platform平台下的驱动是否正确。
卸载模块命令:

此帖出自ARM技术论坛

回复

1592

帖子

0

资源

纯净的硅(高级)

卸载模块命令:

是什么


回复

4584

帖子

1

资源

五彩晶圆(初级)

谢谢分享,图挂了。

个人签名

默认摸鱼


回复
您需要登录后才可以回帖 登录 | 注册

最新文章 更多>>
    关闭
    站长推荐上一条 1/10 下一条

    About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

    站点相关: 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

    北京市海淀区知春路23号集成电路设计园量子银座1305 电话:(010)82350740 邮编:100191

    电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2021 EEWORLD.com.cn, Inc. All rights reserved
    快速回复 返回顶部 返回列表