タグ

ブックマーク / blog.kmckk.com (5)

  • KMC Staff Blog:Makefileの依存関係の記述を自動化する簡単な方法

    2013年02月08日 Makefileの依存関係の記述を自動化する簡単な方法 ビルドにmakeコマンドを使うときにはMakefileにファイルの依存関係を書いておく必要があります。 しかし、開発の途中でインクルードするヘッダファイルが増えてくると、これらの依存関係を手作業で記述するのは面倒です。(そして、これをサボったことでハマることもよくあることです。:) ここでは、gccの機能を使ってこれを自動化する方法を紹介します。 gccのプリプロセッサで依存関係を自動生成する gccでコンパイルするときに -MD というオプションをつけると、コンパイルとともに拡張子が.dのファイルが作成されます。これはMakefileと同じ書式でそのファイルの依存関係が記述されています。 詳しくはgccのマニュアルを参照してください。 http://gcc.gnu.org/onlinedocs/gcc-4.7

    korin
    korin 2013/02/09
  • KMC Staff Blog:ARM LinuxのユーザプログラムからCortex-A9のサイクルカウンタを利用する

    2011年10月12日 ARM LinuxのユーザプログラムからCortex-A9のサイクルカウンタを利用する 以前、「Cortex-A9のサイクルカウンタを利用した簡単な実行時間の計測方法」という記事を書きました。このときには特権モードで使用することを前提としていました。この記事の最後にも書いたとおり、ユーザーモードからパフォーマンスモニタのレジスタにアクセスするためにはあらかじめUser Enable Register(PMUSERENR)にてアクセスを許可しておく必要があります。簡単なカーネルモジュールを作ってこれをやってみました。 カーネルモジュールの作成 ユーザーモードからのPerformance Monitoring Unitへのアクセスを許可するには、あらかじめ特権モードでPMUSERENRレジスタのbit0を立てておく必要があります。詳しくはARMのArchitecture

  • KMC Staff Blog:kexecシステムコールでLinuxそのものをLinuxのブートローダとして使う

    2010年04月22日 kexecシステムコールでLinuxそのものをLinuxのブートローダとして使う サンフランシスコで開催されたELC(Embedded Linux Conference)で聴いてきた面白いセッションを紹介します。 ELCのスライドのページのMagnus Damm さんの"Kexec - Ready for Embedded Linux? " を見てください。 そもそものきっかけは彼が手に入れた評価ボードにEthernetがなくて、USBでしかホストとつなぐことができないことでした。 Linuxを起動するのにSDメモリカードを抜き差ししてそこにカーネルのイメージを書き込まなければならない。いったんカーネルがブートしてしまえば、Ethernet over USBの機能を使うことができます。 このボードでネットワーク経由でカーネルをブートしようとしたら、普通ならばuboo

    korin
    korin 2012/01/17
  • KMC Staff Blog:ARM Debian/Ubuntuの上でAndroidを動かす

    2010年09月09日 ARM Debian/Ubuntuの上でAndroidを動かす 先日のCELFテクニカルジャンボリーでは、ARMのUbuntuの上でAndroidを動かすデモを行いました。 これを応用することで、既存のユーザーモードデバイスドライバやそれに付随するデーモンプロセスを無変更のままでAndroidと共存させることができます。 その続報です。 Android側からSDメモリカードが使えるようになりました。 既存のLinux環境の上でまるごとのAndroidを動かす方法 前回のスライドのおさらいです。 そのボード上にAndroidをポーティングする。NFSrootにするとよい。 その時使ったAndroid用にpatchをあてたカーネルを使って既存のLinuxを動かす。 既存のLinuxのユーザーランドに /androidというディレクトリを作って、そこにandroidのユー

  • KMC Staff Blog:AndroidのエミュレータをNFSroot化する

    2010年03月01日 AndroidのエミュレータをNFSroot化する AndroidのエミュレータにQEMUが使われているのはご存知のことでしょう。 今回はこれまでの経験をいかしてAndroidのエミュレータに改造を加えてNFSroot化してみます。 おおまかな流れ Androidのビルド kernelのビルド NFSroot化のための変更 Androidのビルド Ubuntu 9.04 (x86_64)で行いました。 http://source.android.com/download またはUbuntu 9.04でandroidのビルドを参照して必要なファイルをインストールしてください。 ソースの取得 $ mkdir mydroid $ cd mydroid $ ANDROID_TOP=$PWD $ repo init -u git://android.git.kernel.or

  • 1