私はアナログ/デジタルI / Oカードを使用します(デジタルマルチメータ-16-ATDiamond SystemsのPC/104(ISA同等)カードです。
問題は起動時に0Vにありますが、起動中約10秒後に5V(論理1)になるアドレスBASE+3に8個のデジタル出力があることです。他のカーネルドライバやプログラムなどが該当アドレスに書き込んでいるようです。問題を追跡するために特定のアドレスへの書き込みを「監視」する方法はありますか?
注:デフォルトのアドレスは0x300で、Linuxの合計起動時間は約45秒なので、私のプログラムには関係ありません。
データシートから:
基本+3書き込みデジタル出力ポート
+-------+-------+-------+-------+-------+-------+-------+-------+
Bit No. | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
+-------+-------+-------+-------+-------+-------+-------+-------+
Name | DOUT7 | DOUT6 | DOUT5 | DOUT4 | DOUT3 | DOUT2 | DOUT1 | DOUT0 |
+-------+-------+-------+-------+-------+-------+-------+-------+
これらのピンは、I / OコネクタJ3の同じ名前のピンに直接対応します。
電源をオンまたはリセットすると、出力レジスタがクリアされます。
答え1
特定のアドレスを調べないようにカーネルに指示できます。男性から起動パラメータ:
reserve=iobase,extent[,iobase,extent]...
予約開始時間パラメータは、プローブしてはいけないI / Oポート領域を指定します。デバイスドライバは、他のブートパラメータが明示的に指定しない限り、予約領域を探索しません。
reserve=0x300,32 blah=0x300
"blah"ドライバを除くすべてのデバイスドライバが0x300-0x31fを検出しないようにブロックします。
もちろん、ブートローダ(grubなど)がブラウズしている可能性はまだあります。