1、目前采用了sensor core的芯片有 8960, 8064, 8974, 8x26, 8x62, 8084等,比较早的core采用的是ARM7, 后来的采用的是QDSP;
2、目前支持的sensor类型就只有 G-sensor, M-sensor,Gyro,接近和光感,将来会加入指纹,IR,化学传感器等;
3、有了sensor core,对于将来的系统,比如android5.0, 就不需要sensor HUB了;
4、没有sensor core的缺点:功耗更大,任务调度会出现抖动;
5、android5.0的计步器,只有sensor core + sensor在跑,sensor core里面有cache,不需要AP和DDR跑;
6、高通现在给vendor厂商做了DDK开关环境,不过就是采用的一个Atmel的ARM处理器,系统不能完全移植,并不完善;后面会开发Open SSC给vendor厂商,这个就是高通的8084芯片,调试好了可以直接放到手机上使用;
7、高通的QsensorTest是直接调用的sensor1接口,可以用它来调试,就可以查看sensor1一下部分是否正确;
8、sns.reg 文件,包括工厂矫正的数据都是保存在这里面;
9、接口函数:
init:初始化内存等,然后一般会调用reset;
reset:
get_data:取数据,包括同步和异步;
set/get_attr:定义了很多属性,一般都要支持power_state,开关电源;RESOLUTION_ADC采样的位数等设置(或者采样频率),MOTION_DETECT一般用于有特定的动作了才产生中断,比如横竖屏,这样的话就不用一直监听现在的状态;
handle_irq/timer:定时器和中断函数,一个sensor最多支持两个中断的产生,比如用G-sensor来实现计步功能,正常作为加速度测量需要一个中断,计步可以用另一个中断;
probe:这个是后面才添加的,主要是为了生产兼容多个厂商的芯片;
10、目前对于地磁的矫正库,需要vendor厂商来提供,高通暂时还没有提供;SAM开头的就是算法库,目前高通只支持G-sensor和Gyro,并且只是二进制文件;
11、新版的sensor的配置会放到/etc/sensor_ddf_*.conf文件中,以前是在dsps的h头文件中配置,这样的话,更换了配置信息可以不用再从新编译镜像;
12、sensor core中发送消息,采用的是service ID + message ID 的方式,如果是用户自己定义的,可以采用 SNS_OEM_1_SVC_ID_V01/02/03的service ID;
13、adb打印sensor core部分的log,只能打印err log,如果要看到所有的需要用QXDM,当然init部分的log可能还是不能看到;
14、dsps部分的log开关,在/core/sensors/debug/config/sensors_dbg_config.txt 里面进行设置,然后放到/data/misc/sensors/里面就可以了;
15、对于AP端的log,有一个宏定义 #define LOG_NDDEBUG 0 就可以打印了;