android hal 测试代码,Android平台移植Sensor Hub的方法丨Android Kernel和Hal开发案例-燚智能周教授...

本文以高通骁龙2100 Android可穿戴平台为例,介绍驱动层中间层移植Sensor Hub的方法。包括添加驱动代码、配置DTSI、添加hal层代码、添加frizz_jni代码、添加安全机制权限,最后进行测试,如推送文件、安装测试APK查看数据输出。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

觉得有道理? 左侧有“公众号”、“微信号”、“头条号”,随便你想加哪个都行!还不过瘾,直接Call我们吧!

本文以高通骁龙2100(MSM8909W)Android可穿戴平台为例,讲解驱动层中间层移植Sensor Hub的方法

5b957314f91f5eb180c8665ebfbd5816.png

1、添加驱动代码(Kernel)

1、驱动代码是有sensor原厂提供的, 我们只需要将其driver code copy /kernel/drivers/char/目录下,修改相关makefile文件,使平台编译系统能够编译到frizz_driver。

2、配置DTSI

&i2c_1 {

status = "ok";

mcc@1c { /* Slave driver and slave Address */

compatible = "mcc,frizz";

reg = <0x1c>;

interrupt-parent = ;

interrupts = <28 0x20>;

vio-supply = ;

mcc,irq-gpio = ;

mcc,gpio_rstn =;

mcc,low-power-gpio = ;

};

};

2、添加hal层代码

a. 添加设备权限:高通平台的设备权限添加是在init.target.rc中,添加内容如下:

chown system system /dev/frizz

chmod 0664 /dev/frizz

在调试 /dev/frizz的权限设置为0777避免因权限不对,而导致设备节点访问失败。

b. 添加frizz hal 层代码到 src/LINUX/android/hardware/目录下,系统即可编译到,frizz 提供的hal层代码 mk写好了编译规则,但在mk文件中需要将条件语句去掉, 本次移植的平台是高通的MSM8909w。

6644e7b799e9c254ef7eb4b3bd1f4f1a.png

C、去掉高通sensor部分关于sensor的代码:

ded427d1b4abbed72d9fc5e1fdf4a862.png

d、执行下面的命令进行编译HAL层:

$ cd

$ source build/envsetup.sh

$ lunch xxx

$ mmm -B hardware/frizz_hal

编译后会在out目录下systemvendorlibhw 文件中生成名字为sensors.msm8909的so库。

3、添加frizz_jni代码

将frizz jni source code文件夹拷贝到 /packages/apps/目录下编译,编译方式如下:$ lunch xxxx <=== According to the specific platform.

$ mmm -B /packages/app/frizz_jni

编译后会在out/system/lib/目录下生成“libFrizzManager.so”so库。

4、添加安全机制权限

60f6072e5848b76ed6ad4be20d56104c.png

5、代码移植完毕,开始测试

a、在手机的/data/目录下创建frizz文件夹, 将from_ayame.bin文件push到手机的/data/frizz/目录,该固件是由sensor HUB原厂提供的。

b、将sensors.msm8909.so push到设备的/system/vendor/lib/hw/目录。

将libFrizzManager.so push 到/system/lib/目录下。

c、adb install SensorList.apk 安装sensor测试APK,查看各个sensor是否有数据输出。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值