高通平台提供了一种 island mode , 目的是为了提高 sensor 的 性能,降低功耗。
原理不太清楚是怎样做到的, 好像是放入了 cache 中?
比如:
在 por.py
# 1. Island drivers
env.AddUsesFlags(['SNS_ISLAND_INCLUDE_LSM6DSO'])
这样的话,就添加成功了 。 这个 SNS_ISLAND_INCLUDE_LSM6DSO 是什么 取绝与你 sensor 驱动的 scons的是什么
比如这种的话,这个宏控就是: SNS_ISLAND_INCLUDE_SPL07
spl07_island_enable = False
if 'SNS_ISLAND_INCLUDE_SPL07' in env:
spl07_island_enable = True
但是这种模式下,会有个问题,就是log 会有丢失的情况,所以说,debug 的时候,最好是关闭这种模式,如果不想关闭的话,可以在你想要打印的地方,添加如下函数,可以保证log 不会丢失
static void xxx_inst_exit_island (sns_sensor_instance * this)
{
sns_service_manager * smgr = this->cb->get_service_manager (this);
sns_island_service * island_svc = (sns_island_service *)smgr->get_service (smgr, SNS_ISLAND_SERVICE);
island_svc->api->sensor_instance_island_exit (island_svc, this);
}
在要打印地方的前一句,调用这个函数,log 就不会丢失。