完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
本文转自迅为4412精英版群: 本期实验比较简单,就是写一个简单的应用程序调用前面写的驱动。 硬件工具 1)iTOP4412 开发板 2)U 盘或者 TF 卡 3)PC 机 4)串口 9.1.1.2软件工具 1)虚拟机 Vmware 2)Ubuntu12.04.2 3)超级终端(串口助手) 4)实验配套源码文件夹“invoke_hello” 视频资源 本节配套视频为“视频 09-编写简单应用调用驱动” 学习目标 本章需要学习以下内容: 学会调用设备节点 实验操作 本期实验很简单,在前面 Linux 应用中就已经学习过设备节点的调用。 需要用到函数 extern void printf(const char *format,...);定义在标准 C 语言头文件 stdio.h 中。 下面几个头文件在应用中一般一起调用。 头文件 #include 译环境中保持为 32 位值,并会在 64 编译环境中增长为 64 位值。 头文件 字符、块的属性。 另外提醒一下,这些头文件是和编译器在一起。 这里使用,如下图所示,进入目录“/usr/local/ARM/arm-2009q3”。 使用查找命令“find ./ -name stat.h”,如下图所示,使用的头文件是目录 “/arm-none-linux-gnueabi/libc/usr/include/sys/stat.h”中的 其它几个头文件可以采用类似的方法查找,这里给大家提醒这一点,因为有时候拿到源码 之后,可能编译器版本和源码不完全对应,这个时候就有可能需要修改和处理一下头文件。不过这种问题一般都可以通过网络查找错误提示的方法一个一个解决。 如下图所示,是一个简单的调用程序。 新建“invoke_hello”文件夹,将上图的中的文件拷贝进入,进入新建的“invoke_hello” 目录,使用编译命令 “arm-none-linux-gnueabi-gcc -o invoke_hello invoke_hello.c -static” 编译,如下图所示。 将 “invoke_hello” 拷贝到 U 盘, 启动开发板, 加载前一期的 “devicenode_linux_module” 驱动,如下图所示,使用 invoke_hello 调用设备节点“/dev/hello_ctl123”。 先使用命令“mount /dev/sda1 /mnt/udisk/”加载 U 盘; 使用命令“insmod /mnt/udisk/devicenode_linux_module.ko”加载驱动; 使用命令“./mnt/udisk/invoke_hello”,运行 invoke_hello。 如上图所示,运行“invoke_hello”之后,会打印以下内容” hello open cmd is 1,arg is 6 hello release 如下图所示,设备节点 open、close、ioctl 分别对应打印信息 printk(KERN_EMERG "hello openn"); printk(KERN_EMERG "hello releasen"); printk("cmd is %d,arg is %dn",cmd,arg);ioctl 会打印第二个和第三个参数。 |
|
相关推荐
|
|
只有小组成员才能发言,加入小组>>
「含关键代码」基于AM3352/AM3354/AM3359的Linux开发案例分享
4899 浏览 0 评论
87419 浏览 0 评论
【高手问答】如何做到精通linux技术?资深工程师带你突破难点
4730 浏览 2 评论
3626 浏览 2 评论
解读Linux :先从创建一个文件夹用来存放jdk压缩文件开始
2486 浏览 0 评论
2006浏览 3评论
1292浏览 1评论
求解:aarch64交叉编译工具已经安装成功,环境变量已经配置,怎么将系统架构切换为ARM的架构
1347浏览 0评论
电脑和虚拟机可以互ping,电脑和开发板也可以互ping,但是虚拟机和开发板ping不通是什么原因
1238浏览 0评论
1178浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-25 16:46 , Processed in 1.304977 second(s), Total 55, Slave 43 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号