MMnet1002でTOPPERS/JSPを走らせてみました。まずは、お約束のsample1プログラムからです。
JSPを動かすためには機種依存部を準備してればいいわけですが、AT91SAM9260とAT91SAM7とは周辺デバイスの仕様はほぼ共通になっているため、最小限の変更でSAM7用のコードをSAM9260で使えるようにすることができました。変更した点といえば、クロック周波数を示す定数(MCK)を定義しなおしたことと、TOPPERSの動作開始時にベクターテーブルを0番地にコピーする処理を加えたことの2点くらいです。
本来であればARM9であるために、クロックの初期化手順がSAM7の時とは異なっていたり、キャッシュの有効化のためにMMUを制御するCP15の設定をしなければなりませんが、これらの初期化はAT91Bootが動作した時点で行われているようなので、省略してしまいました。
まずはSDRAMを使って動作試験です。SAM-BAを起動したら、SDRAMのタブを選択します。書き込み開始番地として0x23F00000番地を指定して、Send Fileしてやることでメモリ上にイメージがロードされます。SAM-BAからSDRAMの初期化も行えるようになっているのですが、AT91Bootが動いた時点で初期化がされているので、いきなりロードしても問題ないようです。
tclshのウィンドウから
続いて、同じコードをフラッシュに書き込んでみます。こんどはAT91Bootと作成したバイナリの2つのファイルを書き込まねばならないので、tclのスクリプトファイルを作成して、バッチモードで書き込みました。SAMBAジャンパをはずして、リセットするとめでたくAT91Bootがsample1をロードして、実行開始するようになりました。
JSPを動かすためには機種依存部を準備してればいいわけですが、AT91SAM9260とAT91SAM7とは周辺デバイスの仕様はほぼ共通になっているため、最小限の変更でSAM7用のコードをSAM9260で使えるようにすることができました。変更した点といえば、クロック周波数を示す定数(MCK)を定義しなおしたことと、TOPPERSの動作開始時にベクターテーブルを0番地にコピーする処理を加えたことの2点くらいです。
本来であればARM9であるために、クロックの初期化手順がSAM7の時とは異なっていたり、キャッシュの有効化のためにMMUを制御するCP15の設定をしなければなりませんが、これらの初期化はAT91Bootが動作した時点で行われているようなので、省略してしまいました。
まずはSDRAMを使って動作試験です。SAM-BAを起動したら、SDRAMのタブを選択します。書き込み開始番地として0x23F00000番地を指定して、Send Fileしてやることでメモリ上にイメージがロードされます。SAM-BAからSDRAMの初期化も行えるようになっているのですが、AT91Bootが動いた時点で初期化がされているので、いきなりロードしても問題ないようです。
tclshのウィンドウから
go 0x23f00000と入力することで実行開始です。シリアルポートから 'r' を入力して走るタスクが変化することを確認。シリアルとタイマが問題無く動いているようです。
続いて、同じコードをフラッシュに書き込んでみます。こんどはAT91Bootと作成したバイナリの2つのファイルを書き込まねばならないので、tclのスクリプトファイルを作成して、バッチモードで書き込みました。SAMBAジャンパをはずして、リセットするとめでたくAT91Bootがsample1をロードして、実行開始するようになりました。