该文章记录自己在单片机开发调试过程中遇到的坑和解决办法;

0x01 函数中声明大数组局部变量并初始化数据是一个非常耗时的操作,如果非要声明大数组,则声明时不进行初始化,根据需要进行部分初始化。

1
u8 data\[2048\] = {0};//该声明会导致单片机进行memset耗时操作

改为:

1
2
u8 data\[2048\]; 
data\[0\]=0x00;//根据具体业务进行赋值操作

0x02 中断优先级很重要,在没有使用嵌套中断的情况下,当有两个中断同时触发时将会按照优先级处理优先级高的中断,如果刚处理完优先级高的中断,然后又来了个优先级高的中断,则会继续处理高优先级中断,这种情况下很有可能导致低优先级的中断迟迟不能触发,最后引起低优先级中断丢失的可能性;