This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

cc2640r2 MAC地址动态修改

Other Parts Discussed in Thread: CC2640

sdk版本:simplelink_cc2640r2_sdk_1_40_00_45

项目中要求可以修改mac地址。程序在simple初始化  ICall_registerApp(&selfEntity, &syncEvent); 后面调用HCI_EXT_SetBDADDRCmd可以实现mac地址的修改。在其他地方,如事件处理函数中调用,函数不起作用。

想问一下,如果想动态修改mac地址,该怎么实现?目前想到的方案是通过复位来实现。先将需要修改的mac地址存储,然后复位再调用来修改。然而协议栈不支持软件复位HAL_SYSTEM_RESET()。是否只能通过看门狗来是系统复位来修改了?

  • HCI_EXT_SetBDADDRCmd这个函数只是把地址写进ram,为保证不丢失,你需要把这个地址存放在flash中的CCFG里
    复位的话考虑软件复位和看门狗复位,HAL_SYSTEM_RESET不起效?
  • 需要把这个地址存放在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);

    我再验证一下。如果此函数不行,我计划产生一个事件,初始化看门狗,然后等待看门狗自己复位来实现软件复位。

  • 可以用,在OAD的时候用HAL_SYSTEM_RESET()可能出现问题,普通应用没问题。详情可看: processors.wiki.ti.com/index.php/CC2640_OAD_User%27s_Guide

    还可以用SysCtrlSystemReset(),这个更稳定一些