OAKS32R用Linux/M32R(noMMU版)の検証(図をクリックすると拡大されます。)

「Linux/M32R Home Page」の「noMMU版関連情報」でOAKS32RボードのLinux/M32R(noMMU型)が公開されています。
今回のデバッガを使用してみました。

用意

(1)NFSを用意し必要な設定を行います。
(2)「noMMU版関連情報」からダウンロードしたルートイメージを展開します。>
(3)ダウンロードページから、kernel0bflat.tar.bz2をダウンロードし、作業ディレクトリにvmlinuxと.gdbinitを用意します。
(4)シリアル端末ソフト(minicom等)、m32r-elf-gdb、sdiserverを起動します。

minicom1-sub sdiserver1-sub
minicom sdiserver
起動(115200 8N1) >起動(接続待ち)
m32r-elf-gdb1-sub sdiserver2-sub
m32r-elf-gdb sdiserver
起動 m32r-elf-gdb起動後

動作確認

(1)m32r-elf-gdbでrestartします。
(2)カーネルがOAKS32Rにダウンロードされ最後にリターンするとシリアル端末上に起動メッセージが表示されます。
(3)次のように起動します。端末上でLinux/M32R(noMMU版)の操作が行えます。

m32r-elf-gdb3-sub minicom2-sub
m32r-elf-gdb minicom
0番地用カーネルのダウンロード Linux/M32R(noMMU版)起動

注:図中ではlsコマンドを実行しています。

機待

NFSが接続できない場合は、カーネルは接続できるまで待ちます。

NFSが接続できない場合
minicom
待機

カーネル

*「noMMU版関連情報」のLinux/M32R(noMMU版)カーネル

(1)OAKS32Rボードのベクタは内蔵のミドルウエア用となっています。
(2)ダウンロードしたカーネルとはベクタが合いません。
(3)実際にrestartしてみると、途中で止まります。

m32r-elf-gdb2-sub minicom2-error-sub
m32r-elf-gdb minicom
restart カーネル起動停止

(4)カーネルは0x10000000を領域としています。
(5).gdbinitではSDRAMを0x1000000として設定しています。


*OAKS32R用カーネル

ダウンロードファイル(kernel0bflat.tar.bz2) vmlinux ロード用カーネル
.gdbinit スクリプトファイル

(1)カーネルを0x0000000番地以降にコンパイルし直しました。
(2).gdbinitのSDRAMの設定を0x0000000、カーネルパラメータを0x00002000と設定しました。

Hello World

(1)ダウンロードページにあるhello.tar.bz2をダウンロードしコンパイルします。
(2)できあがった「hello」ファイルをnfsのディレクトリにコピーします。
(3)端末上で操作します。

hello-sub.jpg

2019-09-03