sdk版本:simplelink_cc2640r2_sdk_1_40_00_45
项目中要求可以修改mac地址。程序在simple初始化 ICall_registerApp(&selfEntity, &syncEvent); 后面调用HCI_EXT_SetBDADDRCmd可以实现mac地址的修改。在其他地方,如事件处理函数中调用,函数不起作用。
想问一下,如果想动态修改mac地址,该怎么实现?目前想到的方案是通过复位来实现。先将需要修改的mac地址存储,然后复位再调用来修改。然而协议栈不支持软件复位HAL_SYSTEM_RESET()。是否只能通过看门狗来是系统复位来修改了?
Viki Shi:
HCI_EXT_SetBDADDRCmd这个函数只是把地址写进ram,为保证不丢失,你需要把这个地址存放在flash中的CCFG里
复位的话考虑软件复位和看门狗复位,HAL_SYSTEM_RESET不起效?
Skey Lee:
回复 Viki Shi:
需要把这个地址存放在flash中的CCFG里
这里是如何实现?请问又没哟相关资料,谢谢。
=====================================
至于复位函数,复位函数提到
//Perform the equivalent of a PIN Reset (hard reset).
// The cc26xx system has not been design to handle soft reset. 这里说还没设计进去。不知道是否可用
// Making a soft reset can make the system unstable.
// All soft reset needs to be replace by Hard reset.
#define HAL_SYSTEM_RESET() (HWREG( AON_SYSCTL_BASE + AON_SYSCTL_O_RESETCTL ) |= AON_SYSCTL_RESETCTL_SYSRESET_M);
我再验证一下。如果此函数不行,我计划产生一个事件,初始化看门狗,然后等待看门狗自己复位来实现软件复位。