2012年05月17日
2012年05月15日
2012年04月19日
U-bootの起動シーケンスを見てみます。
なお、今回の記事はKZM-A9-Dualボードで使用した2009年のU-bootに基づいています。最近のリリースのU-bootではファイル構成もリロケーションのしくみもかなり変っていました。これについては後日とりあげます。
2012年04月17日
2012年04月16日
ARMのCPUにはいままでずっと整数の除算命令がありませんでした。最近になって、Cortex-MシリーズとRシリーズには除算命令が追加されましたが、Cortex-AシリーズではCortex-A9までは除算命令はありませんでした。新しいCortex-A15には除算命令が追加されていました。
新しいgccとqemuはすでにこれに対応済みなので、試してみました。
2012年04月13日
2012年04月12日
JTAGデバッガがもっとも活躍するのは、できたばかりのボードの初期化コードを開発するときです。最近のLinuxのブートローダとしてはU-bootがよく使われます。KZM-A9-DualボードもU-bootを使っています。そこで、KZM-A9-DualボードのU-bootをPARTNER-Jetで追いかけてみることにします。
2012年04月11日
Ubuntu 12.04LTSでのarm-linux-gnueabihf-gccのツールチェインのhfはHard Floatの意味です。
関数呼び出し規約(Calling Convention)が変更されて、double, floatの引数はFPUのレジスタに積んで渡し、戻り値もFPUのレジスタを使うようになっています。今までは、FPUが利用可能だったとしても、Soft Floatと互換性を保つために汎用レジスタで引き渡していました。当然これらは混ぜて使うことはできません。全てのライブラリに影響があります。
簡単なプログラムで実際に生成されるコードを見てみます。
2012年04月10日
Ubuntu 12.04LTSではMultiarchが拡充されていると聞いたので、12.04LTS Beta2をインストールしてarm-linux-gnueabihfのクロスビルドと実行を試してみました。
Rubyのクロスビルドとインストールを追記しました。
2012年04月09日
"ARMv8 Instruction Set Overview"というドキュメントがARMのサイトからダウンロード可能です。(ただし登録が必要。)
この資料からARMv8アーキテクチャの概要をながめてみました。
2012年03月27日
2012年03月26日
弊社の若槻、辻、小林でInterface 2012年5月号にQEMUの記事を書きました。
- 第一章 「エミュレータ QEMUの概要とLinuxの起動、テストのための改造」
- Appendix 1 「QEMUの内部構造: 動的バイナリ変換技術について」
2012年03月14日
2012年03月13日
initrdの使い方がわかってきたので、その応用としてDebianをnetinstallしてみます。
以前に、「ARMのQEMUにDebianをnetinstallする」という記事を書きましたが、今回はQEMUでなくてKZM-A9-Dualボードで行います。
2012年03月12日
前回の「Buildrootで作ったルートファイルシステムをinitramfsでカーネルに組み込む」では、ルートファイルシステムとカーネルが一体化しているので、扱いは簡単ですが、ルートファイルシステムの内容を変更するたびにカーネルを再ビルドしなければなりません。カーネルはもう変更の必要がないのならば、カーネルとルートファイルシステムを別々にしておくほうがよい場合もあります。