[Armadillo:05808] Re: メモリーマップについて

s.maruyama email@hidden
2010年 9月 10日 (金) 17:13:21 JST


nakaiさま

ありがとうございます。

> nakaiです。
>
> (2010/09/10 15:09), s.maruyama wrote:
>> 出来るだけ、詳細なメモリーの割り当て情報が望まれます。
>> 例えば、
>> カーネルモジュールの開始アドレスと終了アドレス、及びサイズ、
>> イーサネット モジュールの、開始アドレスと終了アドレス、及びサイズ、
>
> kernelをビルドしたときに、System.mapというファイルが生成されるので、
> それを参照すると、関数や変数などがマップされるアドレスがわかります。
> または、arm-linux-gnueabi-objdump -x vmlinuxでもおなじです。
> 基本的に、Linuxは全て仮想アドレスになります。
>
>> ユーザーランドメモリーの、
>> アプリケーションA の、開始アドレスと終了アドレス、及びサイズ
>> ” Bの、 ” ”
>
> 個別のアプリケーションがマップされるアドレスは、
> readelfなどでわかります。
> PC$ readelf -h sample
> ELF Header:
>  Magic:   7f 45 4c 46 01 01 01 61 00 00 00 00 00 00 00 00
>  Class:                             ELF32
>  Data:                              2's complement, little endian
>  Version:                           1 (current)
>  OS/ABI:                            ARM
>  ABI Version:                       0
>  Type:                              EXEC (Executable file)
>  Machine:                           ARM
>  Version:                           0x1
>  Entry point address:               0x98f4
>  Start of program headers:          52 (bytes into file)
>  Start of section headers:          16988 (bytes into file)
>  Flags:                             0x2, has entry point, GNU EABI
>  Size of this header:               52 (bytes)
>  Size of program headers:           32 (bytes)
>  Number of program headers:         6
>  Size of section headers:           40 (bytes)
>  Number of section headers:         33
>  Section header string table index: 30
>
> ユーザーランドのイメージの大きさは、ビルドするとできる
> image.binの大きさとなります。ls -lなどでサイズはわかります。
> PC$ ls -l images/romfs.img
> -rw-r--r-- 1 nakai nakai 13574181 2010-06-03 16:40 images/romfs.img
>
> または、
> armadillo# df
> Filesystem           1k-blocks      Used Available Use% Mounted on
> /dev/ram0                13109     11979       468  96% /
> のようにすると、イメージサイズがわかります。上記では13MBくらいです。
>
>> 仮想アドレスでは無いと思っていますが、これは、間違いですか?
>
> 仮想アドレスです。
>
>> 通常、ROMイメージを作成する時には、メモリー割り当てのマップが
>> 作成されるものと考えていたのですが、それに類するようなものは
>> 無いのでしょうか?
>
> kernelは作成されます(上記参照)が、ユーザーランドは作成されません。
>
>
> ログイン後、freeするとメモリ使用量がわかるので確認してみてください。
> armadillo# free
>              total         used         free       shared      buffers
>  Mem:       126448        25164       101284            0          268
> Swap:            0            0            0
> Total:       126448        25164       101284
>
> 上記では、100MBくらい空いていることになります。
>
>
> 以下のような本を読むと参考になるかもしれません。
> ・組み込みLinux入門
> http://www.cqpub.co.jp/hanbai/books/33/33271.htm
> ・組み込みLinuxシステム構築
> http://www.oreilly.co.jp/books/4873111617/
>
> _______________________________________________
> armadillo mailing list
> email@hidden
> http://lists.atmark-techno.com/cgi-bin/mailman/listinfo/armadillo
> 




armadillo メーリングリストの案内