如何读取CC2530的MAC地址?在flash中存储的是不是倒序?
先说问题,我需要读取当前芯片中的MAC地址。
我尝试了一下方法:
方法1:
-----------------------------------------
#define P_INFOPAGE PXREG( 0x7800 )
#define HAL_INFOP_IEEE_OSET 0xC
uint8 devmacaddr[8];
uint8 *macaddrptr = (uint8 *)(P_INFOPAGE+HAL_INFOP_IEEE_OSET);
for(int i=0;i<8;i++)
{
devmacaddr[i] = macaddrptr[i];
}
HalUARTWrite(0, devmacaddr, 8);
-----------------------------------------
输出结果: 50 AE 0F 04 00 4B 12 00
方法2:
-----------------------------------------
#define PAGE_OF_MAC_ADDR 0x7A
#define OSET_OF_MAC_ADDR 32
#define LEN_OF_MAC_ADDR 8
HalFlashInit();
HalFlashRead(0x7a,32,devmacaddr,8);
HalUARTWrite(0, devmacaddr, 8);
-----------------------------------------
输出结果: 50 AE 0F 04 00 4B 12 00
方法3:使用TI的SmartRF Flash Programmer中的Read IEEE功能,读出来的结果是:
00 12 4B 00 04 0F AE 50
点开View Info Page,找到的内容却是50 AE 0F 04 00 4B 12 00。
我在论坛中有看到其他的网友的MAC地址开头也是00 12 4B 00,所以我猜测第三种方法读出来的才是真正的IEEE,所以想问一下MAC地址应该怎么读?flash中存储的为什么与SmartRF Flash Programmer读出来的相反?
I think it just do little endian to big endian convert when display.