Bluecore内部有些配置寄存器,称为PSKEY,这些寄存器不可随意更改,因其事关重大,稍有不慎改动便会造成运行的不稳定或无法工作,当然也有些是可以自定义修改的。量产时经常在ADK 与 Application 中修改
ADK如何存储数据到 PSK 里
(1)如sink 工程,TWS 同理,存储 PSK 值的函数,可以采用如下的函数:
(2)读取 PSK 值,可以采用如下函数:
(3)实例 在 ADK 中存储“0”或“1”到PSKEY_CUSTOMER0,并且读取
//#define PSKEY_CUSTOMER0 (PSKCUSTB+0)
#define PoweroffReasonKey 200//不用PSKEY_CUSTOMER0 宏定义,为什么,详见(4)注意点
uint16 reason=1;
PsStore(PoweroffReasonKey,&reason,sizeof(reason));
//读取
uint16 temp = 0;
PsRetrieve(PoweroffReasonKey,&temp,sizeof(temp));
(4)注意点:
These keys are divided into six blocks.
- User configuration data (0 to 49).
- DSP configuration (50 to 99).
- VM Connection Library data (100 to 149)
- User configuration data, 2nd block (150 to 199).
- Customer configuration data, (200 to 289).
- Customer configuration data, 2nd block (300-509).
详见Ps.h (apps\fw\src\gen\customer\core\trap_api) 可以找到定义,底层ADK与工具API 的定义ID 不一样
因此,ADK 中访问存储PSKEY_CUSTOMER0,直接定义成200
在应用中访问此PSK 值,是有不一样的定义,如下,详见下次分解“QUALCOMM QCC蓝牙系列量产必备:PSkey 在应用中的存储与访问”
#define PSKEXTENSION ((0x2000))
#define PSKCUSTB (PSKEXTENSION + 2000)
#define PSKEY_CUSTOMER0 (PSKCUSTB+0)
评论