现象:异常发生crash dump regs: PC=0xa506。现象较异常,有定时器挂了,也有直接crash后挂起看门狗无法重启,>也有直接crash后重启。



  • 现象:异常发生crash dump regs: PC=0xa506。现象较异常,有定时器挂了,也有直接crash后挂起看门狗无法重启,>也有直接crash后重启。
    原因:堆栈不够,导致中断在打断一些嵌套较深的函数时,发生crash。
    解决:加大堆栈到0x1000,代码看以下。
    void initial_static_memory(uint8_t act_num,
    uint8_t adv_act_num,
    uint8_t con_num,
    uint8_t rx_buf_num,
    uint16_t rx_buf_size,
    uint8_t tx_buf_num,
    uint16_t tx_buf_size,
    uint16_t max_adv_size,
    uint16_t stack_size);

    /*********************************************************************

    • @fn user_init_static_memory
    • @brief set memory.
    • @param None.
    • @return None.
      */

    void user_init_static_memory(void)
    {
    initial_static_memory(11, 5, 2, 8, 251, 8, 251, 37, 0x1000);
    }
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26

    版权声明:本文为CSDN博主「匿迭谢君」的原创文章,遵循CC 4.0 BY-SA版权协议,转载附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/thanksguy/article/details/124979498