1. 前言
承接上篇驱动编写; https://www.ebaina.com/articles/140000004489
主要根据驱动接口的具体实现编写
2. 用户态软件编写 (1)打开设备 open(“/dev/hi_tsensor”,O_RDWR); (2)设置模式-循环采集 memset(&hitsensor,0,sizeof(Hi_Tsensor_info)); hitsensor.value = 1; ioctl(hifd, SET_MODE, &hitsensor); (3)设置采集周期16ms hitsensor.value = 16; ioctl(hifd, SET_PERIOD, &hitsensor) (4)设置上限阈值100度 hitsensor.value = 100; hitsensor.value = (int)(((hitsensor.value+40)/165.0)*806+125);//温度值转换 ioctl(hifd, SET_OVERUP, &hitsensor) (5)设置下限阈值0度 hitsensor.value = 0; hitsensor.value = (int)(((hitsensor.value+40)/165.0)*806+125);//温度值转换 ioctl(hifd, SET_OVERDN, &hitsensor) (6)启动温度采集 hitsensor.value = 1; ioctl(hifd, SET_START, &hitsensor) ; (7)获取温度 a. 获取温度 ioctl(fd, GET_TEMPER, &hitsensor); b. 转换温度格式 tmp = ((hitsensor.value – 116)/806.0)*165-40; c. 读取温度上限报警 ioctl(fd, GET_OVERUP, &hitsensor); d. 读取温度下限报警 ioctl(fd, GET_OVERDN, &hitsensor); 3. 编译程序指定交叉工具链编写即可 aarch64-himix100-linux-gcc
4. 采集bugbug现象: 测试发现,这个应用采集开启后,测试的都是一个温度,不会变化; 但是重新开启后,温度会出现变化
解决办法: 每次测温都把Tsensor开关一次
5. 测试结果 6. 增加CPU负载提升芯片温度再测试for i in seq 1 10; do dd if=/dev/zero of=/dev/null & done
可以提升几度的样子
免责声明:文章内容来自互联网,本站不对其真实性负责,也不承担任何法律责任,如有侵权等情况,请与本站联系删除。
转载请注明出处:海思35系列平台Tsensor驱动开发(2)用户态软件编写&测试 https://www.yhzz.com.cn/a/14713.html