AZ9360(ARM926EJ-Sコア内蔵)のTOPPERSお勉強
ちょっと分かったこと更新
1.ボード
⇒プロセッサ
⇒プロセッサアーキテクチャ
・AZ9360MBはARMプロセッサのNS9360を内蔵し、
下記をボードに搭載
フラッシュメモリ(ROM):8MB
SDRAM:32MB
周辺(Ethernet,USB、シリアル、デバッグ)、、等々
・NS9360はDigiInternational社の作ったARM926EJ-Sベース
のプロセッサ
・ARM926EJ-S プロセッサはARM9ベース、
でアーキテクチャはARMv4T
ARMv4TのTはThumb命令セット(16ビット)が追加された
という意味
・パイプランは5段
⇒プリフェッチ、デコード、実行、メモリ、書き込み
2.TOPPERSのARM対応
・TOPPERS JSPのARM対応版はAZ9360MB対応有り
・TOPPERS ASPのARM対応版(AT91SAM7A、AT91SAM7S)はARM7ベース
3.TOPPERSのボード依存部勉強
a.スタートアップについて
リセットベクタからstart.sがコール
スタートアップ後に、kernel_startへ飛ぶが、
この中で割込みハンドラの登録は行っている
(疑問点)
hardware_init_hook内で、BBUS、CS、GPIOの
設定を行っている。
中を追っていくと、CSの設定は行っていないので、
TOPPERSカーネル動作前にブートローダが動作
しているのだと思われる。
b.IRQ_Handler
割込みが入った時点で、リンクレジスタに復帰
アドレスが格納される。
多重割込み禁止ならこれでOK。
IRQモード中にIRQ割込みが発生すると、
リンクレジスタが上書きされるので、RAMに
退避が必要。
そのため、IRQモードではなく、
SVCモードに移行してRAMへレジスタの退避
およびSVCモードで割込みを処理する
(疑問)
・IRQモードでRAMへのレジスタ退避ではダメか
・SVCモードで退避中に「pcはダミー」の意味。
<開発環境>
TOPPERS-JSPの「armv4.txt」推奨の
BINUTILS:2.14
GCC-CORE:3.3
GDB:5.3
NEWLIB:1.11.0
と記載がある
が、Chumbyとはバージョンが異なるらしい
<開発ステップ>
・AZ9360MB手配
・TOPPERS-JSPのボード移植
(AZ9360MB対応があるので、開発環境を整えるのが主目的)
・TOPPERS-ASPのボード移植(ARM926EJ-S対応)
・Chumby開発(i.mx21対応)
<参考文献>
・ARM926EJ-S テクニカルリファレンスマニュアル
・μITRON準拠TOPPERSの実践活用
・TOPPERS JSP/ASPコード
・Interface 2006年11月号
(AZ9360MBのボード設定記事あり)