ARM
2012年04月16日
ARMのCPUにはいままでずっと整数の除算命令がありませんでした。最近になって、Cortex-MシリーズとRシリーズには除算命令が追加されましたが、Cortex-AシリーズではCortex-A9までは除算命令はありませんでした。新しいCortex-A15には除算命令が追加されていました。
新しいgccとqemuはすでにこれに対応済みなので、試してみました。
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年02月29日
概要
KZM-A9-Dualボードで、glibcベースで比較的軽量なルートファイルシステムを用いた Linuxを動作させる手順を説明します。
ルートファイルシステムには、ARM社が公開しているものを用いています。
2011年12月20日
前回はrootstockコマンドでARM Ubuntuのルートファイルシステムのイメージを作成しましたが、今回はLinaroのダウンロードページにあるDevelopers and Community Buildsのイメージを動かしてみます。
2011年08月23日
いくつかのAndroid端末の/proc/cpuinfoを見比べてみると疑問なところがあります。
- ブート時のBogoMIPSと値と/proc/cpuinfoでの値が異なるものがある。
- デュアルコアの端末でブート時のログでは2つCPUを起動しているのに、/proc/cpuinfoではひとつしか表示されない。
これらをソースコードで調べてみました。
2011年02月03日
KZM-A9-DualボードでARM Ubuntuを動かしていますが、libcなどの標準ライブラリはstrip済みなので、デバッグ情報がついていません。そこでソースパッケージから再ビルドしてみました。