先日はAT91SAM7S用のTOPPERS/ASPを動かしてみましたが、チップ依存部のコードを読んでみると変更したい箇所があったので、ちょっと改造してみました。変更するのは、使用するタイマです。
AT91SAM7シリーズの各デバイスは、WDT, PIT, RTT, TCという4種類のタイマを持っています。WDTはwatch dog timerで、システム監視用です。RTTはReal Time Timerで経過時間を計測するためのものです。WDTとRTTのふたつは内蔵の32KHzのRC発信器で動作します。PITとTCは、通常クリスタルを発振源としてPLLで逓倍して作成したマスタクロック(MCK)で動作するタイマです。TCが入出力端子を持っており、入力のキャプチャやPWM出力ができるのに対して、PITは周期的な割り込み生成が主な機能で入出力端子を持っていません。
元のASPのチップ依存部では、TCをTOPPERSのタイマとして使っているですが、わたしはいつもPITを使うことにしているので、この部分を変更したくなったわけです。TCではなくて、PITを使いたい主な理由は...
# ここまで記事を書いてから気が付きましたが、ベストテクノロジーの
# ブログに同じ内容の記事がありました。
AT91SAM7シリーズの各デバイスは、WDT, PIT, RTT, TCという4種類のタイマを持っています。WDTはwatch dog timerで、システム監視用です。RTTはReal Time Timerで経過時間を計測するためのものです。WDTとRTTのふたつは内蔵の32KHzのRC発信器で動作します。PITとTCは、通常クリスタルを発振源としてPLLで逓倍して作成したマスタクロック(MCK)で動作するタイマです。TCが入出力端子を持っており、入力のキャプチャやPWM出力ができるのに対して、PITは周期的な割り込み生成が主な機能で入出力端子を持っていません。
元のASPのチップ依存部では、TCをTOPPERSのタイマとして使っているですが、わたしはいつもPITを使うことにしているので、この部分を変更したくなったわけです。TCではなくて、PITを使いたい主な理由は...
- そもそもPITはOSの周期割り込み用途向けに用意されたタイマであるから。
- 周期割り込みの生成が目的であれば、入出力端子は必要ないから。
- SAM7SにはTCタイマは、TC0~TC2の3チャンネルしかない。そのうちのひとつを、RTOSに取られてしまうのはイタイ。
# ここまで記事を書いてから気が付きましたが、ベストテクノロジーの
# ブログに同じ内容の記事がありました。