在CC2541中读取应用程序的XDATA值

时间:2014-01-30 08:45:23

标签: embedded bluetooth-lowenergy iar

我想读取蓝牙LE芯片CC2541的MAC地址。这存储在存储单元0x780C中。我经历了

osal_snv_read

功能,但我不知道osalSnvId_t id是什么。关于这种工作方式的简要说明非常有用。

2 个答案:

答案 0 :(得分:2)

显然,使用osal_snv_read无法读取存储MAC地址的位置。所以要么我必须使用

GAPRole_GetParameter(GAPROLE_BD_ADDR, ownAddress);

GAPROLE_STARTED

或者我必须使用

__xdata __no_init uint8 mac_id[6] @ 0x780C;

__ xdata说是从XDATA内存读取而__no_init告诉编译器不要初始化这个变量。此外,这必须保持在任何功能之外,以防止它声明为自动变量。

致谢:http://e2e.ti.com/support/low_power_rf/f/538/t/273968.aspx

答案 1 :(得分:-1)

osalSnvId_t是uint的typedef,uint8或uint16。该值将介于0x00和0xFF之间。

最高为0x7F的较低值是为Zigbee保留的,这些位置将在头文件的某处用宏定义。

您可以根据自己的目的使用0x80到0xFE之间的值。

osal_snv_write( 0x80, 6, "hello" );
osal_snv_read( 0x80, 6, mybuf );