기존 이솝 임베디드 포럼의 지식인 서비스가 게시판 형태로 변경되었습니다.

현철님 조언데로 mmap()을 이용해서 테스트를 해봤습니다.

<test code>

#include <sys/mman.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>

#define OLED_ADDR 0x50400000

int main(int argc, char* argv[])
{
    int fd, i, result = 0;
    unsigned char *oled;

    fd  = open("/dev/mem", O_RDWR);
    if(fd == -1)
    {
        printf("/dev/mem file Open failedn");
        exit(EXIT_FAILURE);
    }

    oled=(volatile unsigned char* )mmap(NULL,1,PROT_READ|PROT_WRITE
                                                         MAP_SHARED,fd,
                                                         OLED_ADDR);

    if(oled == MAP_FAILED)
    {
        printf("mmap function failedn");
        result = -1;
        goto fail;
    }


    for(i=0; i<100; i++)
        *oled = 0xFF;

    munmap(NULL, 1);
fail:
    close(fd);
    if(result == -1)
        exit(EXIT_FAILURE);
    else
        exit(EXIT_SUCCESS);
}

mmap()으로 테스트 했더니 device에 접금을 합니다.

I/O memory를 이용했던 드라이버에서는 왜 접근을 못하는지

같은 방법으로 I/O memory를 사용한 char driver로 key driver는 만들어서 잘 동작하고 있습니다.

제가 뭔가 잘못을 한것 같은데... 어느 부분을 틀린건지 모르겠습니다.

드라이버에서 I/O memory를 사용하는데 있어서 특별히 주의 할점이 있는지 궁금합니다.

고현철

2008.04.01 08:42:18
*.202.149.96

일단 없습니다....

단....

I/O memory를 어떻게 생성했냐입니다....

여러가지 방법이 있습니다만...

1. MMU setting(arm에서의 domain mmu setting)을 위한 memory access
2. kernel 에서 ioremap을 이용한 접근(app에서는 당근 virt address)
3. mmap을 이용한 방법입니다......2의 경우도 3의 mmap을 이용해서 가능합니다.

위의 세 경우를 생각하셔서 결정하시기 바랍니다........^^
List of Articles
번호 제목 글쓴이 날짜 조회 수
228 alsa에서 alsa arm device와 soc audio device는 정확히 어떤관계인가... [2] 오대광 2008-04-18 900
227 [질문] 커널 디버깅 메시지 [3] 문철민 2008-04-15 805
226 [질문] 리눅스 커널 책 좀 추천 해 주세요 [1] 손성원 2008-04-15 1356
225 [완료] 낸드플래시에 FAT 파일시스템을 사용할 수 있나요? [4] 이세종 2008-04-11 1108
224 [완료] sd카드 풀스펙 데이터시트를 구합니다. [2] 이세종 2008-04-11 915
223 [완료]가상어드레스에 관하여 [4] 문철민 2008-04-11 734
222 [질문] pxa_request_dma, request_dma 에 대해서 궁금합니다. [2] 오대광 2008-04-10 754
221 [질문] 리눅스용 RS485 드라이버를 찾고 있습니다. [2] 장병남 2008-04-10 1222
220 [완료] 이거 어디가 문제일까요??ㅜㅜ [5] 오대광 2008-04-04 1272
219 [완료]2.6용 devicedriver makefile 문의 [2] 문철민 2008-04-04 714
218 [질문] S3C2440 보드에 낸드플래시를 하나 더 달려고 하는데요,, [4] 장병남 2008-04-03 934
217 [질문]파일생성일자 읽어오는법좀~~ [1] 김우겸 2008-04-03 707
216 [완료]이솝보드에 관한건 아니지만.. ㅠ.ㅜ (uC/TCP 관련) [2] 이경준 2008-04-03 728
215 [완료] exception vector table과 cache관련 문의 [3] 김정호 2008-04-03 773
214 [완료]컴파일시 error발생하는 경우 [4] 김진희 2008-04-02 652
213 [완료]Freescale MC9328MX1 포팅 질문 [2] 이태간 2008-04-02 732
212 [질문]arm에서의 mmu setting을 이용한 메모리 설정 [1] 한기태 2008-04-01 972
211 [re] [질문]arm에서의 mmu setting을 이용한 메모리 설정 장석원 2008-04-02 737
210 [질문]usb to parallel ?? [1] 손성원 2008-04-01 709
» [질문]I/O Memory를 이용한 device 접근 version-2 [1] 한기태 2008-04-01 714

사용자 로그인