1. 定义全局变量
sensorhub_dynamic_table
#pragma arm section rwdata="sensorhub_extern_call"
volatile xxx_t sensorhub_dynamic_table = {
copy_fun_ptr,
i2c_rd,
i2c_wr,
...
};
#pragma arm section rwdata
关于#pragma arm section的使用可以参考《#pragma arm section说明》这篇文章。
2. 编写scatter file:
LOAD_KERNEL_MAGE SP_CODE_SP_START (XX+XX)
{
...
EXEC_EXTERN_CALL SP_SENSOR_EXTERN_START XX_SIZE
{
sensor_driver_common.o (sensorhub_extern_call)
}
}
SP_SENSOR_EXTERN_START即为全局变量 sensorhub_dynamic_table的固定地址。