测试freg驱动的功能内置C程程序
16lz
2021-01-24
这是一个系列文章:
- Android 内核添加驱动
- 测试freg驱动的功能内置C程程序
- 添加HAL层代码
- 添加JNI层
- 框架层添加硬件访问服务
该系列能对android的从下到上的各层有一个简单的设计,麻雀虽小,五脏俱全。enjoy now!
在上一节驱动程序已经添加,可是还不知道该驱动程序是否可以正常工作,用该节的代码来验证一下.
android/external ----freg ----freg.c ----Android.mk
在'android/external'下
mkdir freg
freg.c
#include #include #include #define FREG_DEVICE_NAME "/dev/freg"int main(int argc, char** argv){ int fd = -1; int val = 0; fd = open(FREG_DEVICE_NAME, O_RDWR); if(fd == -1) { printf("Failed to open device %s.\n", FREG_DEVICE_NAME); return -1; } printf("Read original value:\n"); read(fd, &val, sizeof(val)); printf("%d.\n\n", val); val = 5; printf("Write value %d to %s.\n\n", val, FREG_DEVICE_NAME); write(fd, &val, sizeof(val)); printf("Read the value again:\n"); read(fd, &val, sizeof(val)); printf("%d.\n\n", val); close(fd); return 0;}
freg.c是代码的逻辑实现,先读取'/dev/freg'里面的值,在将写入新值5,再读取出来
Android.mk
LOCAL_PATH := $(call my-dir)include $(CLEAR_VARS)LOCAL_MODULE_TAGS := optionalLOCAL_MODULE := fregLOCAL_SRC_FILES := $(call all-subdir-c-files)include $(BUILD_EXECUTABLE)
Android.mk里该bin文件命名为freg
单编:
mmm ./external/freg
打包system image:
make snod
刷入机器,adb shell
进入机器,在system/bin/
会出现名称叫freg的bin文件.在system/bin/
里执行命令:
./freg
执行我们写的freg程序,会输出:
Read the original value: 0. Write value 5 to /dev/freg. Read the value again: 5.
我们进入proc/
,cat freg
,发现值为5.说明修改成功.到此说明驱动的添加没有问题.
更多相关文章
- 绝对精品—史上最全最权威的Android(安卓)Studio插件整理
- Android程序开发通过HttpURLConnection上传文件到服务器
- 现有的Android(安卓)原生项目里面集成RN 页面的学习和踩坑之路
- 非android的平台获取apk信息
- EasyPermissions源码浅析
- android.util.XML介绍
- android手动设置布局
- 轻量级依赖注入框架koin简析
- 基于 CentOS 使用 Jenkins 实现 Android(安卓)持续集成