”
DE0でuClinux 5(アプリケーションの作成) ”の続き。
今回は本の通りにuClinuxに7セグメントLEDのデバイスドライバを組み込んでみる。
(追加:カーネルのmoduleを選べないのは、Kernel ConfigurationでEnable loadable module supportに*を入れてなかったのが原因でした。もう一度ブログを書きなおします。) (追加の追加:デバイスドライバを動的モジュールにすると、uClinux起動時にbooting the kernel.で止まってしまって、uClinuxが起動しなかった。これは、起動時に動的モジュールを呼び出しているのが原因だった。menuconfigで明示的にmoduleをunloadする必要がある。参考文献、Build loadable module ) 1.nios2-linux/uClinux-dist/linux-2.6.x/source/driversディレクトリに行く。
2.Kconfigに7セグメントLEDの項目を追加した。
3.Makefileにも同様に追加した。
4.nios2-linux/uClinux-distディレクトリに戻って、make menuconfigを実行した。
4A.Linux Kernel ConfigurationでEnable loadable module support に*を入れた。更にリターンキーを押して設定を続ける。
4B.Module unloadingとForce module unloadingに*を入れる。これで起動時にデバイスドライバの動的モジュールは読まれない。
(こうしないとuClinuxが起動しなかった) 5.設定を行って一旦Exitし、もう一度立ち上がった設定画面で、7 segment LED driver をスペースで選択してMを選択した。
(追加:カーネルのmoduleを選べないのは、Kernel ConfigurationでEnable loadable module supportに*を入れてなかったのが原因でした。) 6.makeコマンドを実行して、makeした。
6A.nios2-linux/uClinux-dist/romfs/lib/modules/2.6.30/kernel/driversにleddev.ko ができていた。
7.今度は、nios2-linux/mywork/leddevに移動して、leddev_test.cをコンパイルする。nios2-linux/mywork/leddevに移動した。
8.MakefileのROOTDIRを自分のパスに変更した。
9.makeを実行して、leddev_test.cをコンパイルした。
10.make romfsを実行した。
11.nios2-linux/uClinux-dist/romfs/binを見るとleddev_testが出来ていた。
12.nios2-linux/uClinux-distに移動して、make imageを実行した。
13.nios2-linux/uClinux-dist/images にzImageができた。zImageをzImage_7segleddrv に変更した。
14.zImageをzImage_7segleddrvをUSBメモリ経由でWindowsに移した。
15.Quartus II 11.0を立ち上げて、DE0にダウンロードした。
16.Nios2 11.0 Command Shellを開いて、zImage_7segleddrvの置いてあるフォルダに移動した。
17.nios2-download -g zImage_7segleddrvを実行して、zImage_7segleddrvをダウンロードした。
18.nios2-terminalでuClinuxを起動し、動的モジュールをロードした。
19.leddev_testを起動して、7セグメントLEDのテストを行った。無事に動作した。
いろいろミスって、動作するまでが大変だった。やっと動作して安心した。特にデバイスドライバの動的モジュールをunloadする設定を見つけるまでが大変だった。
2011年11月26日 06:36 |
FPGAボードで学ぶ組込みシステム開発入門[Altera偏]
| トラックバック:0
| コメント:5
”
DE0でuClinux 4(uClinuxの起動) ”の続き。
今回は本にしたがって、アプリケーション作りを練習してみることにする。
まずは、hello worldから。
romfsの下に放り込むとイメージファイルにまとめられるそうだ。知らなかった。勉強になる。
1.WindowsからmyworkをUSBメモリ経由でUbuntu11.10のホームの下のnios2-linuxにコピーした。
2.myworkの下のhelloディレクトリでMakefileのROOTDIRを自分のパスに変更した。
3.makeを実行した。成功。
4.make romfsを実行した。エラーが出てしまった。
5.本にも書いてあるが、これで大丈夫だそうだ。nios2-linux/uClinux-dist/romfsを見ると、helloがあった。
6.nios2-linux/uClinux-distに移動して、make imageを実行した。
nios2-linux/uClinux-dist/imageに移動すると、zImageが出来ていた。これをzImage_helloに名前を変更した。
7.zImage_helloをUSBメモリ経由でWindowsにコピーした。
8.Quartus II 11.0を立ち上げて、DE0にダウンロードした。
9.Nios2 11.0 Command Shellを開いて、zImage_helloの置いてあるフォルダに移動した。
10.nios2-download -g zImage_helloを実行して、zImage_helloをダウンロードした。
11.nios2-terminalでuClinuxを起動して、helloコマンドを入れたら、Hello Worldが表示された。成功。
次に、pioを試したが、SWの操作(2進数)により、7セグメントLEDに値が16進数で表示された。
2011年11月25日 05:50 |
FPGAボードで学ぶ組込みシステム開発入門[Altera偏]
| トラックバック:0
| コメント:0
”
DE0でuClinux 3(カーネルのビルド) ”の続き。
1.USBメモリ経由でUbuntuからWindowsへzImageをコピーした。
2.Quartus II 11.0を立ち上げて、DE0にダウンロードした。
3.Command Shellを起動。zImageをダウンロードした。
4.nios2-terminalを立ち上げると、uClinuxが立ち上がった。linuxがFPGAボード上で立ち上がったのは始めてなので、嬉しいです。。。
5.ルートディレクトリでlsすると、bin dev etc home init lib mnt proc sbin sys tmp usr var ディレクトリが見えた。
6.PATHは /bin:/usr/bin:/etc:/sbin:/usr/sbin だった。確かに本に書いてあるとおり、大したコマンド入っていません。
7.Ubuntuに戻ってvi, diff, find, grep, less, kill をbusyboxで追加した。下はviを起動した所です。
やった。初めてFPGAボードでuClinuxとはいえlinuxが動いた。とっても嬉しいです。。。
FPGAボードで学ぶ組み込みシステム開発入門[Altera編] はとても良い本だと思った。初心者でもうまくいくように丁寧に書いてある。しかもデバイスドライバの作り方まで書いてあって、とてもお得だと思った。2冊買ったくらいの価値はあるね。
作者の方とお知り合いになったからというわけではなく、本当にそう思いました。
2011年11月24日 05:26 |
FPGAボードで学ぶ組込みシステム開発入門[Altera偏]
| トラックバック:0
| コメント:0
”
DE0でuClinux 2(Quartus IIとSOPC Builder) ”の続き。
1.まずは、”
DE0でuClinux 2(Quartus IIとSOPC Builder) ”のuclinuxフォルダのuclinux_sopc.ptfファイルをUbuntuにUSBメモリ経由でコピーした.(UbuntuはVirtualBox上にインストールしてある)
2。nois2-linux/uClinux-distに移動して、make menuconfig を実行した.
3。カーネルのビルド方法は
本 を参照のこと。
4。ptfファイルをカーネルのビルドに反映させた。
5。make を行った。nois2-linux/uClinux-dist/images にzImageができた。
2011年11月23日 09:16 |
FPGAボードで学ぶ組込みシステム開発入門[Altera偏]
| トラックバック:0
| コメント:0
”
DE0でuClinux 1(uClinxとツールチェーンのダウンロード) ”の続き。
今回はQuartus IIを立ち上げて、uClinuxを動かすNois IIシステムを作成する。と言っても、
FPGAボードで学ぶ組込みシステム開発入門 ~Altera編~のサポートページ からダウンロードしたプロジェクトを使用する。
ファイルをダウンロードして、展開すると、DE0という名前のフォルダが出来る。DE0\dai9sho\uclinuxが目的のプロジェクトだ。
Quartus II 11.0を立ち上げて、FileメニューからOpen Project...を選択して、ucliunx.qpfを読み込む。そしてコンパイルしたのが、下の図の状態だ。
トップファイルを見てみると、SDRAMとSW入力、7セグメントLED出力がある。
Project Navigator のEntityウインドウのuclinx_sopc:instをダブルクリックしてSOPC Builderを立ち上げた。Nios IIプロセッサ、SDRAMコントローラ、SW用PIO、7セグメントLED用PIO、タイマーが入っていた。
cpu_0をダブルクリックすると、Nois IIの設定が見える。Nois II/fを使用していた。uClinuxなので、MMUは入っていなかった。
2011年11月23日 05:20 |
FPGAボードで学ぶ組込みシステム開発入門[Altera偏]
| トラックバック:0
| コメント:2
”
FPGAボードで学ぶ組み込みシステム開発入門[Altera編] ”の”9-1 uClinuxと開発環境の構築”今回はDE0でuClinuxをやってみることにした。
VirtualBox上にUbuntu11.10をインストールして、その上でnios2のuClinuxのビルドやツールを使うことにした.
なお、今回はUbuntu 11.10のブラウザ上でブログを書いている。
1。本の296ページのコンパイルに必要なツールのアップデートとインストールから行った。Ubuntu11.10のSynapticパッケージマネージャを起動して、本に書いてあるgit-coreなどのツールをインストールした。
2。本の297ページのuClinuxディストリビューションのダウンロードを行ったが、エラーになった。wgetのコマンド中のファイル名の2009の後に0が抜けていた。
3。もう一度コマンドを実行して”nios2-linux-20090730.tar.1”として保存できた。これには74分32秒かかった。
4。”nios2-linux-20090730.tar”を削除して、”nios2-linux-20090730.tar.1”を”nios2-linux-20090730.tar”に変更した。
5。tarコマンドで解凍した。
6。nios2-linuxディレクトリに入って、チェックアウトコマンドを実行した。
7.ディレクトリを上に上がって、ツールチェーンのダウンロードを行った。1度、wgetを実行したが96%で停止したので、やり直した。
8.ツールチェーンの解凍と移動を行った。解凍はうまくいったが、mvするところで、/optディレクトリがあると言われてエラーになった./optディレクトリを見ると、VBoxGuestAdditions-4.1.6やor1用のディレクトリがあったので、ホームディレクトリのoptの下のnois2だけ/optディレクトリの下に移動した。
9。上に上がって、optディレクトリを削除した.
rm -r opt
10。/opt/nios2/binにパスを通した。exportコマンドも実行したが、.bashrcにexportコマンドを追加した。
2011年11月22日 05:14 |
FPGAボードで学ぶ組込みシステム開発入門[Altera偏]
| トラックバック:0
| コメント:0
”
システム開発入門[Altera偏]を試してみる4(2.4アップダウン・カウンタのシミュレーション2) ”の続き。
前回はAlteraからダウンロードしたModelSimでシミュレーションを行ったが、Verilogソースなので、Veritak Basic版でもシミュレーションをすることが出来る。ひさしぶりに
Veritak を使ってみることにした。
Veritakの詳しい使い方は、”
FPGAリテラシー およびチュートリアル ”を見て欲しい。
Veritakでプロジェクトを作成して、セーブした。
プロジェクトをロードしてシミュレーションを行った。Waveform Viewerに波形を追加してudcntを符号なし10進数表示に変えたところだ。ModelSim同様のシミュレーション結果を得た。
Veritakの良いところはNotepad++と連帯しているところだ(Veritakで設定が必要)。プラグインを入れると、
Notepadd++ 起動時にダイアログが出てきて、ここからVeritakシミュレータを制御することが出来る。
更に、Notepad++上で信号名にカーソルを合わせると現在の時刻と信号の値が表示され、デバックの時に便利だ。
更に、Notepad++上でブレークポイントを設定して、ブレークすることが出来る。
何と言っても、私のとって使い慣れたエディタであるNotepad++上でいろいろ出来るのが嬉しい。
2011年11月03日 04:56 |
FPGAボードで学ぶ組込みシステム開発入門[Altera偏]
| トラックバック:0
| コメント:0