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のボード設定記事あり)