2017-07-27 2 views
0

私の/ dev /にfpgaデバイスノードがあります。ドライバと通信するには、次のCコードを使用する必要があります。pythonでLinuxのデバイスノードに構造体を渡すには?

struct pci_cmd { 
    unsigned int bar_id; 
    unsigned int command; 
    void *device_addr; 
    void *user_addr; 
}; 

ssize_t f = open ("/dev/de4", O_RDWR); 
unsigned short val; 
struct pci_cmd read_cmd = { 0, 0, 0x2, &val }; 
read (f, &read_cmd, sizeof(val)); 

私は、pythonでstructクラスが見つかりましたが、os.read(fd, n)は2つの引数しか受け入れません。どのようなアイデアをこれでPythonで行うには?

答えて

-1

デバイスノードがtty I/Oの場合、Pythonのtermiosライブラリを使用して通信できます。 参照:https://docs.python.org/2/library/termios.html

また、os.popen()またはos.system()を使用して、システムコマンドを直接書き込むこともできます。

+0

これはtty I/Oではありません。それはキャラクターデバイスです。問題は、デバイスドライバがstruct pci_cmd情報を必要とすることです。 – house

関連する問題