pub fn decide(
in_flight: bool,
hcchar: u32,
hcint: u32,
polls_in_flight: u32,
) -> RxActionExpand description
受信チャネルの次の動作を決める。
in_flight… 受信転送を発行済みかhcchar… HCCHAR レジスタ値hcint… HCINT レジスタ値polls_in_flight… 転送中のままポーリングした回数
WaitInFlight は MAX_IN_FLIGHT_POLLS 回までしか返さない。
それを超えたら AbnormalHalt を返して再アームさせる。
元の実装は無条件に待ち続けたため、CHENA が落ちない状態に陥ると
受信が永久に停止していた。