도와주세요!!
글 수 15,339
커널과 어플의 메모리의 공유를 위해서 다음과 같이 작업 하였더니 안되는 군요..
아시는분 도움좀 바랍니다.
디바이스 드라이버
char *combBuffer=NULL;
init()
{
combBuffer=(char *)kmalloc(((MAXUARTNUM*MAXQUESIZE*2)+(MAXUARTNUM*4)),GFP_ATOMIC);
*combBuffer=0x75;
}
맴핑함수()
{
remap_pfn_range(vma,vma->vm_start, virt_to_phys(combBuffer)>>PAGE_SHIFT, (MAXUARTNUM*MAXQUESIZE*2)+(MAXUARTNUM*4), vma->vm_page_prot) ;
}
어플리케이션
최기화 함수()
{
if ((combBuffer =
(char *) mmap(0,(MAXUARTNUM*MAXQUESIZE*2)+(MAXUARTNUM*4), flag, MAP_SHARED, fd_ptz, 0)) == -1)
{
printf("mmap error");
exit(1);
}
else
{
printf("mmmap succeed\n");
}
printf("first charact is %x\n",*combBuffer);
}
이렇게 하였더니 0x75라는 디바이스 드라이버에서 할당한 숫자가 안나오내요..
방법 아시는 분좀 답변 부탁 드립니다..