Никак не получается получить доступ к памяти с pci платки в программе, может кто знает что не правильно:
В драйвере память мапируется так:
vma->vm_pgoff = pciBase >> PAGE_SHIFT; //pciBase начало окна памяти на плате в pci
if (remap_pfn_range(vma, vma->vm_start, vma->vm_pgoff, vma->vm_end - vma->vm_start, vma->vm_page_prot) != 0) { printk(«Uni mmap: remap_pfn_range failed !\n»); return (-EAGAIN); }
vma->vm_file = file; vma->vm_flags |= VM_IO | VM_RESERVED;
В програмке пытаюсь смапировать так:
char * data;
printf(«\n\r\t Start open dev»); handl = open(«/dev/vxb_m0»,O_RDWR,0); if(handl > 0)
data = (char *) mmap(0,0x10000,PROT_WRITE|PROT_READ,MAP_SHARED,handl,0);
printf(«\n\r\t test_addr0x%X : 0x%X \n»,(data+0xc000),*(data+0xc000));
Все вроде выделяется и мапируется, но при обращении по указателю читается 0xff.