2

我正在为嵌入式 Linux 系统编写内核模块。该模块工作正常,并通过使用compatible设备树中的条目自动加载。它在 中创建了一个设备/dev/,我可以使用ioctl按摩访问该设备。

该模块管理几个离散的内存区域。

由于该设备应同时由多个程序读取和写入,因此我知道可能存在竞争条件。

但是每个内存区域只有一个程序。

通过多次加载模块,竞争条件应该没有任何问题(也避免了其他困难)。

问:是否可以多次加载同一个模块(对于设备树中的每个条目)?

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

不可能两次加载相同的模块。加载具有不同主要和次要编号的相同模块是可能的,而不是您可以在驱动程序中处理这种情况。

于 2015-01-29T15:22:40.193 回答