age.近年はシリコン(石)から進化した便利なもので溢れる時代。そんな気になった事や試した事など徒然と記す。Pi」に入れて、動かしてみる。Pi」用に、u-bootをUbuntのLinux上でコンパイルする。ARMクロスコンパイル環境の準備ARMツールチェーンなどのコンパイル環境は、下記記事でインストール済の環境を使う。参考シリアル接続の準備u-bootでは、シリアル通信を使って、コマンド入出力する。シリアル-USB変換ケーブルが必要で、私はアマゾンから下記を入手。搭載チップはPL2303HX。3.3V信号用のものであれば、他のものでも使える。デスクトップパソコンのシリアルポートも使えるが、信号レベル変換が必要。USB-TTLシリアルコンソールのUSB変換COMケーブルモジュールのケーブルWindows10パソコンでは、ドライバのバージョンによって認識できない事もあるようで、下記のドライバーを使う事で動作した。http://www.ifamilysoftware.com/news37.html【2018/03/03追記】パソコン更新したら、Windows10で上記ドライバーで動かせなかったが、下記記事を参考にドライバのダウングレードで動いた。Windows10でPL2303を無理やり動かす【Windows10】PL2303HX搭載のシリアル-USB変換ケーブルを動かす以前の記事で、ラズベリーパイのUart通信用に、PL2303HX搭載のシリアルーUSB変換ケーブルを使った。Piの40ピンコネクタとの配線は、以下の写真を参考。2やZeroでも同じである。Term」を利用する。シリアル通信の設定は、下記。:なし起動用SDカードの準備ファイル容量は4GByteもあれば十分なので、FATフォーマットされたマイクロSDカードを準備し、下記ファイルをSDカードのルートに書き込む。Piの起動ディスクにあるものか、又は、下記URLから取得する。Zero〜3まで共通。https://github.com/raspberrypi/firmware/tree/master/boot注2)3のファイルは、前の記事で作成したファイルを使う。4のconfig.txtファイルはテキストエディターで作成し、内容は下記。Piにセットして、電源起動すると、シリアル通信で、u-bootの起動メッセージが表示される。カウントダウンするので、その間にキー入力するとコマンド入力できる。“help”と入力すると使えるコマンドの一覧が表示される。Piに自作したプログラムを転送して実行できる環境が出来た。3で動作する事は確認できた。bootdelayに設定の時間カウントダウン待ちした後に、環境変数bootcmdに設定してあるコマンドを自動実行する。bootdelayの値が「-1」の時は、時間待ちせずにすぐにコマンド待ちとなる。下記の手順で、環境変数bootdelayを設定し記憶する。saveenvsaveenvコマンドにより、u-boot.envファイルがSDカードに作成され、次の起動時に読み込まれる。デフォルトの状態に戻したければ、このu-boot.envファイルを削除すればよい。自作したプログラムは、シリアル経由ではloadsやloadbコマンドでロードし、goコマンドで実行する。SDカードに格納したプログラムは、fatloadコマンドでロードできる。u-bootは最初0x8000番地から実行されるが、その後、後ろのアドレス(0x07F46000番地あたり)に自分自身を移動して動作する。自作プログラムは、0x8000番地〜に配置するように作ればOK。8000fatloadによるロードは、2016/8/11現在のソースでは不備があるようなので注意(詳しくは前の記事参照)u-bootが自分自身を移動する番地は、bdinfoコマンドで表示される”relocaddr”で確認できる。SDカードに格納した自作プログラムの自動実行u-bootは、環境変数bootcmdに設定してあるコマンドを自動実行する。コマンドは;で区切って複数記述できる。下記の要領で設定する。saveenv電源投入で、SDカードに格納してある自作プログラムが自動実行できる。CPUや周辺のハードウェアの初期化処理をきちんと記述すれば、config.txtのkernel行にファイル名を記述して、u-boot経由ではなく自作プログラムを直接実行する事もできる。簡単な自作プログラムの例やコンパイル方法など、今後の記事で紹介していきたい。CPUが立ち上がるのではなく、最初はGPUが立ち上がり、GPUがbootcode.bin→start.elfを読み込み実行。GPUはリセットベクタを0x0番地にコンフィグ情報を0x100番地にセット。CPUのリセットを解除し0x8000番地からのプログラムが実行される。u-bootの参考マニュアル別ボード用のマニュアルであるが、以下が参考になる。Pi」用に、u-bootをUbuntのLinux上でコンパイルする。ARMクロスコンパイル環境の準備ARMツールチェーンなどのコンパイル環境は、下記記事でインストール済の環境を使う。Pi】u-bootでTFTPサーバからイーサネット経由のファイル読込み前の記事で、UbuntuでTFTPサーバを動かすようにした。Pi】u-bootでTFTPサーバからイーサネット経由のファイル読込み前の記事で、UbuntuでTFTPサーバを動かすようにした。Piで、ベアメタルなソフト開発をするのに、JTAGデバックできた方が便利なのだが、初期状態ではJTAGの信号がGPIOコネクタに割り当てられていない。LEDを点滅させる、Lチカ(LEDチカチカ)プログラムを作ってみようと調べてみたら、どうやらARMのGPIOからでは操作できなくなった模様。Zero〜3用のコンパイル済みu-bootのバイナリファイルをGitHubに公開した。u-boot起動に必要な全てのファイルを同梱。Pi】u-bootのソースを調べる前の記事で紹介したu-bootですが、Raspberry-Piで使うのに、ソースコードを調べた覚え書きメモ。コメントをキャンセルメールアドレスが公開されることはありません。*サイト上に表示された文字を入力してください。コメントデータの処理方法の詳細はこちらをご覧ください。Ubuntu-Server/Desktopで共通操作性のエディターを目指して、「Emacs」環境を構築してきた。私も実際に使ってきて実用的になってきた。本サイトでも断片的に紹介してきたのをまと...www.yokoweb.net2017.04.01ヤマハルータ「RTX1210」でIPv6プラスを使う以前の記事で紹介したように、これまでヤマハルータ「RTX1200」でIPv6プラスを使ってインターネット通信を運用していたが、今回、ついに「RTX1210」にリプレースして運用開始したので手順など備忘録を残す。インストールし、定期的にチェックするようにする。Ubuntu-Server/Desktopで共通操作性のエディターを目指して、「Emacs」環境を構築してきた。私も実際に使ってきて実用的になってきた。本サイトでも断片的に紹介してきたのをまと...www.yokoweb.net2017.04.01ヤマハルータ「RTX1210」でIPv6プラスを使う以前の記事で紹介したように、これまでヤマハルータ「RTX1200」でIPv6プラスを使ってインターネット通信を運用していたが、今回、ついに「RTX1210」にリプレースして運用開始したので手順など備忘録を残す。インストールし、定期的にチェックするようにする。Ubuntu-Server/Desktopで共通操作性のエディターを目指して、「Emacs」環境を構築してきた。私も実際に使ってきて実用的になってきた。本サイトでも断片的に紹介してきたのをまと...www.yokoweb.net2017.04.01ヤマハルータ「RTX1210」でIPv6プラスを使う以前の記事で紹介したように、これまでヤマハルータ「RTX1200」でIPv6プラスを使ってインターネット通信を運用していたが、今回、ついに「RTX1210」にリプレースして運用開始したので手順など備忘録を残す。インストールし、定期的にチェックするようにする。Ubuntu-Server/Desktopで共通操作性のエディターを目指して、「Emacs」環境を構築してきた。私も実際に使ってきて実用的になってきた。本サイトでも断片的に紹介してきたのをまと...www.yokoweb.net2017.04.01ヤマハルータ「RTX1210」でIPv6プラスを使う以前の記事で紹介したように、これまでヤマハルータ「RTX1200」でIPv6プラスを使ってインターネット通信を運用していたが、今回、ついに「RTX1210」にリプレースして運用開始したので手順など備忘録を残す。インストールし、定期的にチェックするようにする。IPv4スポンサーリンクタイトルとURLをコピーしました。