对允许动态模式切换的驱动,注意驱动将在其输入ISR中间被要求切换模式。一个驱动的输入ISR看起来应如此:inChar = *pDev->dr;/@ 从数据寄存器里读一个字符 @/ *pDev->cr = GOT_IT;/@ 承认中断@/ pDev->putRcvChar (……);/@ 发送字符到高层 @/ /@ give the character to the higher layer @/如果该通道用作外部模式调试的通讯路径,且接收的该字符是"帧结束"字符,则代理的回调会锁定中断,切换设备到轮巡模式,并使用轮巡模式下的设备片刻。此后代理会解锁中断,切换模式到中断模式,并返回ISR.特别地,回调能使两模式切换,首先到轮巡模式然后到中断模式,后返回。
这要求小心处理中断处理内的回调。例如,在调用回调前你必须先承认中断。
用法:该驱动通常为BSP调用。该模块里直接调用程序是 templateDevInit(),templateDevInit2(),templateIntRcv(), templateIntTx(), and templateIntErr()。