(自学编程做app)(app编程自学)

16.应用程序软件包测试

本实验目标

掌握应用程序软件包的编译方法

掌握应用程序的安装使用

14.1 准备工作

跟上一个实验差不多,这里我们提供一个应用程序的软件包模板,存放在目录:“附件: 应用程序软件包模板 “当中 ,名称为: ”mydrv_app” ,我们要将该应用程序软件包放在 OpenWrt 的一个特定的目录下面: openwrt/trunk/package/

14.2 配置 OpenWrt 支持软件包的编译

回到目录: openwrt/trunk/

输入命令: make menuconfig

配置过程如下:

1 ) 选择 Utilities

(自学编程做app)(app编程自学)

2)选择我们的应用程序 mydrv_app,按 y 选中

(自学编程做app)(app编程自学)

14.3 应用程序软件包源码介绍

我们找到应用程序软件包,发现它的结构组成跟驱动程序软件包是一样的, Makefile 大体相同,直接找到源码:

$cd mydrv_app

$cd src

$vi mydrv_app.c

源码如下:

#include <stdio.h> #include <string.h> #include <fcntl.h> #include <unistd.h> #include <sys/types.h> #include <sys/stat.h> #include <sys/ioctl.h>

int main(int argc , char** argv)

{

int fd;

int num = 1;

//打开驱动模块

fd = open("dev/mydrv" , O_RDWR|O_NONBLOCK);

if(fd < 0)

{

printf("can't open /dev/mydrv\n");

return -1;

}

//函数测试 write(fd,&num,1);

read(fd,&num,1);

ioctl(fd,1,1);

close(fd);

return 0;

}

相信写过 C 程序的都看得懂这些代码了,非常简单,首先打开驱动模块,然后从应用 层调用函数即可!

14.4 编译应用程序软件包

好的,回到 openwrt/trunk/ 目录下,依次输入下列命令进行编译:

make package/mydrv_app/compile V=99

make package/mydrv_app/install V=99

make package/index V=99

编译没有出现 Error 即表示完成,编译后的固件存放在目录:

openwrt/trunk/bin/ramips/packages/base

14.5 应用程序的安装和使用

我们把编译得到的固件下载到开发板中(SSH 网络服务进行下载) ,下载完成后如图:

(自学编程做app)(app编程自学)

好的,现在就可以进行应用程序的安装了:

(自学编程做app)(app编程自学)

安装完成之后,在确定上一个实验的驱动加载完成后,运行应用程序:

(自学编程做app)(app编程自学)

说明: 如果需要自己的驱动程序软件包和应用程序软件包,只需要修改 Makefile 和 源码中的名字即可,直接替换名称!

本实验可能遇到的问题:

opkg install xxx.ipk 时提示:

satisfy_dependencies_for: Cannot satisfy the following dependencies for xxx 问题原因: openwrt 分为两个版本,一个是 trunk 版本,一个是 backfire 版本,我们

用的是 trunk 版本,即测试版本,这个版本每天都在更新;这个错误是因为 openwrt 版本 和 ipk 模块版本不相同导致的!

解决方法:

方法一

版本。

方法二

把驱动程序软件包或者应用程序软件包(即 ipk 模块)编译到 openwrt 中形成相同

尝试强制安装: opkg install xxx.ipk --force-depends

声明:我要去上班所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流,版权归原作者爱学习de小乌龟所有,原文出处。若您的权利被侵害,请联系删除。

本文标题:(自学编程做app)(app编程自学)
本文链接:https://www.51qsb.cn/article/m8rdb.html

(0)
打赏微信扫一扫微信扫一扫QQ扫一扫QQ扫一扫
上一篇2023-02-04
下一篇2023-02-04

你可能还想知道

发表回复

登录后才能评论