1、 在接收的一串数据中,对关键字节的判断、解析。
在云台转发主控板信息的代码中,定义了一个长度33的数组,主控板发送的信息中,最长的字节数确实是33,其中ccd_rdata[2]代表该串信号的字节数,但是如果在发送这一个字节的时候受到干扰,云台接收到了不正确的字节数,(实际测试出现过截到的该数据是0X84的情况),这样云台一直接收到它认为的字节数并存到长度33的数组中,那么数组会溢出,而之后又有其他代码对该部分内存进行操作,有可能出现死机。所以,在云台接收主控板的数据的代码块中,添加了对代表数据长度的数据的校验,错误数据进行丢弃。修改后又进行了测试,后仍有死机现象发生。
void uart_ccd_isr(void *context, alt_u32 id)
{
alt_u16 status1;
do