ディバイスドライバを ..
[
2ch
|
▼Menu
]
■コピペモード
□
スレを通常表示
□
オプションモード
□このスレッドのURL
■項目テキスト
411:login:Penguin 05/02/06 14:33:57 JfjjYGk4 >>410 アーキテクチャわかんないので、過去の経験より。 ・D cache ・コンパイラが勝手に最適化 そういう制限がある場合は、おとなしく専用ドライバ書くのが 近道のような気がしますな。 412:login:Penguin 05/02/10 21:10:10 oT40ukFS gcc 3.3.5(gentoo) で作成したモジュールを gcc 3.4.2(FC3) のPCへ 組み込もうとするとエラーで組み込めません。 どちらも kernel-2.6.10 です。 insmod: error inserting 'hoge.ko' : -1 Invalid module format kernel config (General setup, Loadable module) は同じにしてあります。 同じバージョンの gcc で作成したシステムでないと無理なのでしょうか。 413:login:Penguin 05/02/12 01:22:07 QcR6E3eX >>410 >>411の言うとおりアーキテクチャが分からないのでなんともいえないけど・・・ /dev/memをmmapでshortアクセスしたら、普通はshortで触ってくれるでしょう。 でも、触ってるデバイスが * 例えば32bit PCI * にぶら下がってたりしたら 32bit で触りに行っちゃうこともありますよ。 っていうか、PCIの向こうにいるデバイスに届くまでに余計な16bitが増えてたりする。 それでも、読みにいくときには多分shortで行っても多分大丈夫。 書き込みをshortでやったりすると、残りの16bitにゴミが乗っかっちゃうとか、 そんなんじゃないでしょうか? そうならば、shortで書きに行くときには、最初にデバイスから32bit分持ってきて、 それに16bit分上書きして、32bit書き戻すとかするしかないのでは。 (16bitアクセス限定でも、読みに行くときは16bit×2で32bit分をうまく返してくれることを かってに期待して書いてますけど) それから、32bitでアクセスするときにも触りに行くアドレスに注意が必要ですよ、多分。 32bitアラインメントじゃないとダメな予感がします。 もしそうならば、アラインメントの境界をまたいじゃうような16bitの書き込みをする場合、 両側の32×2 = 64bit分を持ってきて16bit書いて戻す、とかしないとダメですよね。 もちろんこれは、PCI上でうまく振舞うように作られていないデバイスの話で、 たとえ16bitアクセス限定デバイスでもそうならないようにつくることは可能だと思います。 ところどころ言ってるかもしれませんけどね・・・
次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
レスジャンプ
mixiチェック!
Twitterに投稿
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch
5386日前に更新/265 KB
担当:undef