譬如说:
我用个循环队列存储和发送消息,队列使用固定长度的数组,其中数组的长度肯定长于每条消息,队列中有8个数组(均存在XRAM中),循环队列;
一个串口中断(每个字节触发一次) 另一个中断(固定T触发一次) 串口中断优先级高 波特率400Kbps;
串口是接收消息,入队列;定时中断发送消息,出队列;其中出队列按照一定的规则,存在出队列速度远远低于入队,如果队列满,则关闭串口;
我在高消息密度下入队时,丢消息是正常的,故宁可丢消息,也要保证工作稳定,但是发现我的队列以外的XRAM会被意外写成了数据,即被意外覆盖;
请教大家,在keil中应该如果避免此类的错误? 程序的架构上有没有改进的地方? |