2017-07-27 1 views
0

Il y a un nœud de périphérique fpga dans mon/dev /. Pour communiquer avec son pilote, j'ai besoin d'utiliser le code C suivant.Comment passer un noeud struct to linux en python?

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)); 

Je trouve qu'il ya classe struct en python, mais le os.read(fd, n) accepte que deux arguments. Une idée pour le faire en python?

Répondre

-1

Vous pouvez utiliser la bibliothèque termios de python pour communiquer si le noeud de périphérique est tty I/O. Référence: https://docs.python.org/2/library/termios.html

Vous pouvez également utiliser os.popen() ou os.system() et écrire directement la commande système.

+0

Ce n'est pas une E/S tty. C'est un dispositif de caractères. Le problème est que le pilote de périphérique a besoin des informations de struct pci_cmd. – house