片子为2136,板子自己做的,调试用H-JTAG。 以下程序在RAM运行正常,在FLASH运行会在U0THR = temp;取数据终止。 if ((U0LSR & 0x00000020) != 0) { /* UART0发送保持寄存器空 */ QueueRead(&temp, UART0SendBuf); /* 发送最初入队的数据 */ U0THR = temp; U0IER = U0IER | 0x02; /* 允许发送中断 */ }
这个在FLASH和RAM均正常:
U0THR = data; // 发送数据 while( (U0LSR&0x40)==0 ); // 等待数据发送完毕
另外调试过程发现指针容易引起取数据终止,编译模式为minimum,其他模式许多变量查看不正确。 |