2

組み込み Linux システム用のカーネル モジュールを作成しています。モジュールは正常に動作compatibleし、デバイス ツリーのエントリを使用して自動的にロードされます。でデバイスを作成し、マッサージ/dev/を使用してアクセスできます。ioctl

このモジュールは、複数の個別のメモリ領域を管理します。

デバイスは同時に複数のプログラムによって読み書きされる必要があるため、競合状態の可能性を認識しています。

ただし、メモリ領域ごとに 1 つのプログラムしかありません。

モジュールを数回ロードすることにより、競合状態は問題になりません (また、他の問題も回避されます)。

Q:同じモジュールを (デバイス ツリーのエントリごとに) 何度もロードすることはできますか?

myDevs {
        compatible = "myDevs";
        #address-cells = <0x1>;
        #size-cells = <0x1>;


        myown0@0xff000000 {
            compatible = "myown";
            name = "myown0";
            reg = <0xff000000 0x27>;
        };

        myown1@0xff002000 {
            compatible = "myown";
            name = "myown1";
            reg = <0xff002000 0x27>;
        };
};
4

1 に答える 1

3

同じモジュールを 2 回ロードすることはできません。メジャー番号とマイナー番号が異なる同じモジュールをロードすることは可能ですが、代わりに、ドライバー内でこの状況を処理できます。

于 2015-01-29T15:22:40.193 に答える