2012年04月
2012年04月19日
U-bootの起動シーケンスを見てみます。
なお、今回の記事はKZM-A9-Dualボードで使用した2009年のU-bootに基づいています。最近のリリースのU-bootではファイル構成もリロケーションのしくみもかなり変っていました。これについては後日とりあげます。
2012年04月16日
ARMのCPUにはいままでずっと整数の除算命令がありませんでした。最近になって、Cortex-MシリーズとRシリーズには除算命令が追加されましたが、Cortex-AシリーズではCortex-A9までは除算命令はありませんでした。新しいCortex-A15には除算命令が追加されていました。
新しいgccとqemuはすでにこれに対応済みなので、試してみました。
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アーキテクチャの概要をながめてみました。