您的位置:首页 > 其它

debug(3) 死机原因及解决方法

2016-06-20 16:36 239 查看
1、UART问题

原有UART代码在中断的时候buf_ptr++,没考虑指针越界的问题,需要加上指针边界。

解决方法:在UART_READ函数里加上初始指针地址

uart0_env.rx.bufptr = bufptr;
bufptr_start=app_uart_env.buf_rx;


UART RX中断里改为:

*uart0_env.rx.bufptr = reg;
if(uart0_env.rx.bufptr == buf_start+QN_UART_RX_LEN-1)
uart0_env.rx.bufptr=bufptr_start;
else uart0_env.rx.bufptr++;


2、内存开关:为了省电,默认会只开MEM_BLOCK5,在usr_config.h,需要全部都打开,把宏屏蔽掉:

//#define CFG_MEM_RETENTION   (MEM_BLOCK1 | MEM_BLOCK2 | MEM_BLOCK3 | MEM_BLOCK4 | MEM_BLOCK6 | MEM_BLOCK7)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: