首页 > 技术知识 > 正文

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. 采集bug

bug现象: 测试发现,这个应用采集开启后,测试的都是一个温度,不会变化; 但是重新开启后,温度会出现变化

解决办法: 每次测温都把Tsensor开关一次

5. 测试结果

海思35系列平台Tsensor驱动开发(2)用户态软件编写&测试

6. 增加CPU负载提升芯片温度再测试

for i in seq 1 10; do dd if=/dev/zero of=/dev/null & done

海思35系列平台Tsensor驱动开发(2)用户态软件编写&测试1

可以提升几度的样子

海思35系列平台Tsensor驱动开发(2)用户态软件编写&测试2

猜你喜欢