GBA 的串口
这两天写GBA上的串口程序有一些体会:
缺省的crt0.s并不能直接从中断返回,要从中断返回,必须修改之。
如果不希望中断嵌套,就不要在中断处理程序中打开IME,因为一旦打开,程序将再次被中断。
中断处理程序应当尽量短小,从而保证能够尽快返回。
如果开启了FIFO,则一定要一次把所有的内容都读出来,否则FIFO满的情况下中断是不能再次被正常触发的。
一种比较方便的方式是关闭FIFO而打开中断,但还不能确定CTS/RTS是否能正常工作。但目前中断响应的速度用来处理普通的串口通信是没有问题的。
读写串口都会产生中断,对于写串口,中断是在串口写完毕之后发出的。如果不使用中断,在写串口时必须人为地控制速度,否则发送的内容可能会出错。如果使用中断,则可以创建一个写缓冲区,当写完一个字符后由中断处理程序写入下一个字符。