3月27-29日にKernelVMキャンプに参加してきました. その成果報告をここに書きます. 知らない方のために説明すると,KernelVMキャンプは東京の山奥に籠もり昼夜問わず黙々とハックし続ける非常に厳しいキャンプで……えっ? 温泉? あいまいみー? 女装ヒルクライム? 何言ってるのかさっぱりわからないですね…… やったこと1:Raspberry Pi 2 を JTAGデバッグする 以前からsyuuさんと進めているRasPi2用VMM実装のため,JTAGデバッガが欲しいという話をしていました. tnishinaga.hatenablog.com この時はまだdbgbaseの話がフォーラムに上がっておらず,何故動かないのかをコードを追って探っていました. 結果, Cortex-A7/A15 のサポートが 0.8.0リリース以降に追加されていること JTAG接続先が見つかり,接続(TAP
ARMの仮想化支援機能を使ってみたかったので, 現在しゅううさん(@syuu1228)と一緒に教育用自作VMMを作成中です. もちろん,BareMetalで. 対象ボードは,とりあえずCortex-A7を積んだRaspberry Pi 2を予定中. (ARM64なボードが届いたらそちらに移るかも?) まだ色々調べている段階なので,道中わかったことをメモしていきます. ARMの仮想化支援 ARMの仮想化支援機構は,Cortex-A15(+ Cortex-A7)から導入された. ここで行われた主なアーキテクチャ拡張は以下の3つ: ハイパバイザモードの追加 2重メモリアドレス変換機能 物理アドレス空間の40bitへの拡張 各機能の詳細はまだ調べきれていない. 以下の資料を参照. http://www.hotchips.org/wp-content/uploads/hc_archives/hc22
@tetsu_koba 誰得かよく知らない Golang for ARM Linux ツールチェインのビルド ソースコードを入手してコマンドを入手したらソースコードからビルドできる $ GOOS=linux GOARCH-arm GOARM=5 make.bash 実行型のビルド GOARM GOARM=5 For armv5, no FPU, soft float GOARM=6(RaspPiの初代など) For armv6 デフォルト GOARM=7 For armv7 (32) 以上。 間違えなければどうということはない。 が、間違えたから理解が深まることもある ツールチェインのビルドミス GOARMを指定しないと6になる デキた実行ファイルを実機に持って行って実行すると→Illegal Instruction ランタイムライブラリがGOARM=6でビルドされているからか! vldr
QEMUのユーザーモードをDockerコンテナ上で使おうとした際に発生した問題のメモ。 環境 Debian wheezy on Docker QEMUインストール時に発生するエラー バイナリで提供されているユーザーモードQEMUをインストールする。このパッケージは、インストール時にbinfmt(ネイティブとは異なるアーキテクチャ向けのバイナリをQEMU経由で実行するために必要)の設定を行ってくれる。しかしDockerコンテナ上では、その際に行われるmountコマンドの実行がエラー終了する。 (docker host)$ docker run -it <image> /bin/bash (docker container)$ apt-get install -y qemu-user-static ... mount: permission denied update-binfmts: war
This is the official BeagleBoard-X15 Support Page maintained and supported by BeagleBoard.org a non-profit 501(C) organization. If you have any questions or issues with the content on this Wiki, contact Gerald Coley BeagleBoard-X15 Description The BeagleBoard-X15 is the newest member of the BeagleBoard family. Measuring 4" x 4.2", it is based on a Dual Core A15 processor running at 1.5GHZ and feat
ちょっと時間に対して話したいことが多すぎて、各分野での掘り下げが足りなかったとは思いますが、一通り下のほうまで盛りこみました。 電子工学について:自分は学校で電子工学を体系的に学んだことはありません。 YAPC 会期中はそこらへん歩いてます。
What is the fastest way to copy memory on a Cortex-A8? という記事によると、単純にワードごとにメモリをコピーした場合に比べ、ARM NEON命令を使うと約50%ほどコピーが早くなるそうです。 画像の回転も、基本的には順番を入れ替えながらのメモリコピーですので、NEON命令を使うとどのくらい早くなるのか、調べてみました。 単純にC言語で実装した場合 まずは、こんなコードでFull HD(1920x1080サイズ)画像を180度回転させて、どのくらいかかるか測定します。bits/pixelはRGBxを想定して32bit決め打ちです。画像を180度回転させる処理は、コピー元の開始アドレスから1ピクセル(32bit)ずつ読み出して、コピー先の最終アドレスから逆順にコピーしていくだけの処理となります。 /** * @param src 入力画像ア
Show Your Support: This site is primarily supported by advertisements. Ads are what have allowed this site to be maintained on a daily basis for the past 20+ years. We do our best to ensure only clean, relevant ads are shown, when any nasty ads are detected, we work to remove them ASAP. If you would like to view the site without ads while still supporting our work, please consider our ad-free Phor
組込みLinuxを使っていると、ライブラリなどをソースコードからビルドしたいことが度々あるのですが、通常はクロスコンパイルをするか、ターゲットマシンにDebianなどのOSをインストールしてビルドするといった方法を取ります。 しかし、クロスコンパイルする時には大抵クロスコンパイル用のオプションで嵌りますし、ターゲットマシンでビルドするにも遅すぎで、いつも困っていました。 そんな折、QEMUのユーザーモードエミュレーションとbinfmtを使うと、x86マシンの上でarmバイナリを動かすことができることを知りました。 KMC Staff Blog:QEMUのもうひとつの使い方: ユーザーモードエミュレーションとbinfmtとchrootの組み合わせ このテクニックを使うと、chrootした後の環境で動くプログラムは、あたかもARMマシン上で動いているように錯覚します。*1そのため、x86マシン
Accelerated Infrastructure for the AI Era To meet the challenge and promise of AI, hyperscale operators are redesigning data center architectures from the ground up. Marvell silicon powers the foundations of AI: accelerated compute, connectivity, and storage infrastructure. Bringing unmatched speed and performance to any cloud, Marvell is expanding the reach of AI.
I wanted to create a Deb-o-Matic environment to testbuild packages for a different architecture. Taking inspiration on Stéphane’s excellent blog post, I tried to replicate the creation of a cross-architecture Linux container in Debian. Here are the steps I made: Load binfmt_misc module: # modprobe binfmt_misc Install the required packages: # apt-get install lxc debootstrap rsync qemu-user-static b
組み込み業界の人には当たり前のことかもしれないが... ARM9*, ARM11* には Jazelle という Java bytecode 実行の機能がある。2001 頃に出てきたのが Jazelle DBX でこれは Hardware で Java bytecodeを実行する機能。もともとあった 32-bit の(ネイティブ)な ARM の命令、機能は若干劣るがコンパクトな 16-bit 系の Thumb に次ぐ第3の実行モードで、モデルによって異なるが、140 から 145 のバイトコードはプロセッサの命令として実行される。残りは特殊な命令でトラップ?させて ARM ネイティブ命令でエミュレートする。 エミュレートが必要となるのは普通のアプリケーションの 5% 程度。 また、新しいバイトコードへの対応は、とりあえず、このエミュレートをソフト的に追加することでできてしまう。 Jazel
Show Your Support: This site is primarily supported by advertisements. Ads are what have allowed this site to be maintained on a daily basis for the past 19+ years. We do our best to ensure only clean, relevant ads are shown, when any nasty ads are detected, we work to remove them ASAP. If you would like to view the site without ads while still supporting our work, please consider our ad-free Phor
実行時にデータ型を判別するためのデータ表現 基本的な技法(オブジェクトのヘッダ, tagged pointer, BIBOP)
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く