[Armadillo:03387] [Armadillo-500] 外部拡張バスについて

Hiroki Sugano email@hidden
2008年 9月 14日 (日) 22:16:10 JST


菅野と申します.

Armadillo-500の外部拡張バスを使おうと思い,まずは /dev/mem 経由で
データの読み書きをしようしたのですが,どうも上手くいきません.
添付のプログラムをビルドし,実行すると

$ sudo ./test_mem 0xb8002000 0x60
mmap: start=B8002000 len=00000060 page_offset=00000000
mapped address = 0x40016000
zsh: bus error  sudo ./test_mem 0xb8002000 0x60

$ dmesg|tail -1
Unhandled fault: external abort on non-linefetch (0x008) at 0x40016000

というエラーメッセージが出てプログラムが終了します.
プログラム自体の動作は 0xb8002000 を始点として 0x60 Byte 読み出し,
それを printf するというだけです.
;; 0xb8002000 は WEIM の Control Register

試しに SDRAM 領域を dump してみると

$ sudo ./test_mem 0x80000000 0x60
mmap: start=80000000 len=00000060 page_offset=00000000
mapped address = 0x40016000
80000000 : c0000000
80000004 : c0000000
80000008 : c0000008
8000000c : c0000008
80000010 : c0000010
80000014 : c0000010
80000018 : c0000018
8000001c : c0000018
80000020 : c0000020
80000024 : c0000020
80000028 : c0000028
8000002c : c0000028
80000030 : c0000030
80000034 : c0000030
80000038 : c0000038
8000003c : c0000038
80000040 : c0000040
80000044 : c0000040
80000048 : c0000048
8000004c : c0000048
80000050 : c0000050
80000054 : c0000050
80000058 : c0000058
8000005c : c0000058

となり,正しく動作します.

いくつかのアドレスを試してみたところ,拡張バスの領域 (CS0-5) とその設定レジ
スタにアクセスしようとしたときに Bus error として落ちるようです.

開発環境は
http://armadillo.atmark-techno.com/filebrowser/armadillo-500/debian
からダウンロードした Debian を使っています.

原因とその解決策をご存知の方がおられましたら,
ご教授おねがい致します.

-- 
京都大学 情報学研究科
通信情報システム専攻 情報回路方式研究室 博士後期課程
菅野 裕揮 <email@hidden>
-------------- next part --------------
テキスト形式以外の添付ファイルを保管しました...
ファイル名: test_mem.c
型:         application/octet-stream
サイズ:     1106 バイト
説明:       無し
URL:        <http://lists.atmark-techno.com/pipermail/armadillo/attachments/20080914/beb20b36/attachment.obj>


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