现象:异常发生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