タグ

ブックマーク / embedded.hatenadiary.org (5)

  • 「ARM 64bitがやってきた!」を発表してきました - 組み込みの人。

    "ARM 64bit has come!" というスライドを作ってテクニカルジャンボリーとカーネル/VM探検隊で発表してきました。ARMv8のaarch64に関する話です。 ARM 64bit has come! from Tetsuyuki Kobayashi テクニカルジャンボリーでのビデオ デモしたときのフォントが小さすぎて見えませんね。f(^^;; qemuやgdbの起動コマンドはスライドの通りです。 命令単位のステップ実行は、si または ni です。 ステップ実行のたびに自動的にPCのアドレスを逆アセンブル表示するのは、display/i $pc です。 レジスタのダンプは i r です。(info register) カーネル/VM探検隊 (撮影:@hasegaw さん) カーネル/VM探検隊でのビデオ (Coming soon) ウケを狙って直前でネタスライドを追加したので

    「ARM 64bitがやってきた!」を発表してきました - 組み込みの人。
  • クロスDockerのためのDockerfile - 組み込みの人。

    dockerhubにはx86, x86_64以外のアーキテクチャ用のコンテナもいくつかpushされています。これをqemuを利用したクロス環境のDockerとして動作させるためには、以下の準備が必要です。 (1) binfmt_misc でクロスで動かしたいアーキテクチャのELFファイルの設定がされていること (2) コンテナ内の/usr/bin にstatic linkされたユーザーモードqemuのバイナリがコピーされていること (1)はsudo apt-get install qemu-user-static を行ったときに自動的に行われます。 昨日の記事で使用したericvh/arm64-ubuntu-dev はすで(2)がなされた状態でdockerhubに置かれていたので、すぐにクロスで動かすことができました。 (1)だけで(2)がされていない状態では、docker runしたとき

    クロスDockerのためのDockerfile - 組み込みの人。
  • Aarch64で遊ぶ最も手軽な方法 - 組み込みの人。

    Aarch64(ARM64)の実機はまだまだ入手は困難ですが、qemuを使ってAarch64のユーザーランドを動かすことは可能です。そしてDockerを利用すると手軽にAarch64の環境を試すことができます。コンパイラも動きます。 準備 Ubuntu 14.04 (x86_64)を使用しています。 まずはDockerをインストールします。詳細はここを見る 次にqemuをインストールします。 $ sudo apt-get install qemu-user-static 起動 $ docker run -it ericvh/arm64-ubuntu-dev /bin/bash これだけで、dockerhubからaarch64のルートファイルシステムをロードしてきて実行し、bashのプロンプトが出ます。 アーキテクチャの確認。 root@5031da283529:/# uname -m aa

    Aarch64で遊ぶ最も手軽な方法 - 組み込みの人。
  • ARM 64bit でLLVMは見逃せない - 組み込みの人。

    iPhone5S, iPad Airで64bit ARMプロセッサをいち早く製品化したAppleですが、驚きのニュースがありました。 AppleはOS X, iOSのコンパイラツールチェインをgccからclang/LLVMに移行しています。その64bit ARM向けのバックエンドをLLVMのコミュニティに公開し、それを家のツリーのメインラインに統合するという話です。 ニュースの概要は以下の記事で読むことができます。 Apple Open-Sources Their 64-bit ARM LLVM Back-End - Phoronix その続報。 Apple, LLVM Developers Figure Out Their 64-Bit ARM Approach - Phoronix 一次ソースを自分でも確認しました。ことの始まりはLLVMdevのメーリングリストのこの投稿。 http

    ARM 64bit でLLVMは見逃せない - 組み込みの人。
  • clang+llvmでさりげなくすごいコードが生成されていた話。 - 組み込みの人。

    先日llvm 3.3がリリースされました。aarch64(arm 64bit)のコードが生成できるようになったということなので、ソースからビルドして遊んでいたのですが、さりげなく凄く最適化されたコードが生成されているのに気がつきました。aarch64だと今は実行して確認できる環境が手元に無いので、普通のarmv7-aで同じことを試しました。 ここで使ったコードとその結果はgistに貼りました。 https://gist.github.com/tetsu-koba/5835724 ソースコード int sum(int x) { int sum = 0; int i; for (i = 1; i <= x; i++) { sum += i; } return sum; } 1からnまでの総和を求める関数です。1から100までの総和が5050なのはガウス少年の逸話で有名ですね。 gcc 4.8.

    clang+llvmでさりげなくすごいコードが生成されていた話。 - 組み込みの人。
  • 1