TOPPERS/JSP for Blackfin ACB-BF592依存部

By 酔漢 - Last updated: 木曜日, 2月 2, 2012 - Save & Share - 2 Comments

出張帰りでぐったり疲れていて何もする気にならなかったので、気分転換にJSPカーネルをACB-BF592に移植しました。何か間違っている気がします。

TOPPERS/JSP for Blackfinは、ある時期に思い立ってカーネルのターゲット依存部を三層構造にしています。本来JSPカーネルは、ターゲット依存部がCPU依存部とシステム依存部の二層構造です。しかしながら、この構造はペリフェラルが単独LSIだった時代ならともかく、UARTやSPIコントローラと言った主要ペリフェラルがマイコンに集積されている現状とはそぐいません。そこで、Blackfin版JSPカーネルでは、CPU、CHIP、SYSTEMの三層にしました。この変更により、TOPPERS/JSP for Blackfinは移植時の作業量の見積もりが容易になっています。

CPU依存部については、今のところBlackfinプロセッサ全製品で共通ですので、書き換える必要はありません。ですのでACB-BF592に対応するに当たっては、チップ依存部とシステム依存部を書き換えるだけです。

チップ依存部の書き換えについては、インクルードファイルの変更のような雑務を除けば、だいたい以下のような変更で済みます。

device_dispatcher()は、割り込みがかかったときに、優先順位、SIC_ISR、SIC_IMASKの値から、どのペリフェラルの割り込みハンドラを呼び出すべきか決定するルーチンです。Blackfinシリーズは物によってSIC_ISRの幅が違うため、初期にはBF537の導入時などに大幅な変更が必要になりました。しかしながら、主なバリエーションは網羅しているため、最近では適切なアーキテクチャを元にすれば書き直しは不要なはずです。今回は、BF533をお手本として、device_dispatcher()はそのまま使いました。

移植の容易さを目的として三層化していたおかげで、久しぶりであるにもかかわらず必要な作業は明確でした。2時間ほど手を動かした後、ちょっとしたタイポを修正して、すぐにビルドが通るようになりました。週末に時間をとってデバッグにかかるつもりです。

なお、GNUツールチェーンでビルドが通るコードをCVSにコミットしています。

Posted in TOPPERS/JSP • • Top Of Page

2 Responses to “TOPPERS/JSP for Blackfin ACB-BF592依存部”

Comment from maya
Time 2012年2月2日 at 12:05 PM

移植お疲れ様です。
他の作業でもたもたしてたら先こされてしまいました(汗

今度Visual DSP++でも確認してみます。

Comment from 酔漢
Time 2012年2月2日 at 11:54 PM

いえいえ、私もまだ動作確認していませんので。

Write a comment