나는 커널 및/또는 드라이버 지원이 필요하다고 생각합니다. 플랫폼과 관련된 Linux 배포판을 사용하는 경우 이미 제공되는 것이있을 수 있습니다. 가지고있는 문서 나 샘플 코드를 확인하십시오.
사실은 여기에 매핑하는 방법에 대한 기사를 발견했다 :
http://www.simtec.co.uk/appnotes/AN0014/
이 GPIO 레지스터에 접근하기위한 것입니다,하지만 코드가 다른과, 온 - 칩 메모리에 대한 동일해야합니다 주소. 물론 다른 곳에서 이미 그 공간을 사용하고 있다면지도를 작성하고 수정하기 시작하면 충돌이 발생합니다. 따라서 더 많은 문서 파기가 필요할 것입니다. 당신의 시스템을위한 커널 메모리 맵이 있습니까?
int mem_fd = open("/dev/mem", O_RDWR);
void *buffer = mmap(NULL, mem_segment_length, PROT_READ | PROT_WRITE, MAP_SHARED,
mem_fd, mem_segment_addr);
close(mem_fd);
/* buffer now points to your device's memory */
/* remember to call msync after writing to this to force changes to write back to
* /dev/mem */
것은 그러나, 필요에 따라,이 충분하지 않을 수 있습니다
나는 이것이 어려울 수 있다고 말할 것이다. 리눅스는 심지어 mmap의 명시적인 제어를 허용 할까? 최악의 경우, 발을 조금 젖히고 커널 모듈을 작성해야 할 수도 있습니다. – Earlz