C 라이브러리 (beaglebone PRU 드라이버 prussdrv.c)와 Python을 인터페이스하려고합니다. 아래 그림과 같이 내가 반환에게 mmap에 포인터를 액세스하려는 특정 기능 :mmap 포인터를 C에서 Python으로 mmap 객체로 전달
int __prussdrv_memmap_init(void) {
prussdrv.pru0_dataram_base = mmap(0, prussdrv.pruss_map_size, PROT_READ | PROT_WRITE,
MAP_SHARED, prussdrv.mmap_fd, PRUSS_UIO_MAP_OFFSET_PRUSS);
...
int prussdrv_map_prumem(unsigned int pru_ram_id, void **address) {
switch (pru_ram_id) {
case PRUSS0_PRU0_DATARAM:
*address = prussdrv.pru0_dataram_base;
break;
prussdrv_map_prumem (DATARAM[PRU_NUM], &pruDataMem);
pruDataMem_byte = (unsigned char*) pruDataMem;
나는 pruDataMem 또는 pruDataMem_byte 중 하나를 캡슐화하고 mmap에 개체로 파이썬에 전달하고 싶습니다. 이 작업을 수행하는 간단한 방법이 있습니까? 나는 캡슐과 ctypes를 보았지만 내가 찾고있는 것을 보이지 않는다?
실제로 조작 할 수있는 'mmap' 객체이거나, mmap으로 할 수있는 것과 같은 방법으로 문자열 /리스트/반복자로 취급 할 수있는 버퍼와 같은 것일까? – abarnert