logo
한국어 Select Language
FF 포럼
포럼지기에게 한 마디
공지사항
뉴스 EZ보드 통합 메뉴얼
FA-VUS 개발환경 !강추! 타켓보드 부팅-HyperTerminal 타켓보드 부팅-Tutty 타켓보드 부팅-minicom Windows환경-타겟 Linux 구동 Linux환경-타겟 Linux 구동 개발 시스템 구축 유형 페도라 설치 CentOS 설치 크로스 컴파일러 설치 TFTP 환경 구축 NFS 파일 시스템 구축 삼바 서버 구축 부트로더 부트로더 쓰기 커널 이미지 제작 및 설치 램디스크 이미지 제작 및 설치
임베디드 제품 사용기 오늘의 영어 휴게실 Appliance
강좌 & 팁
강좌 & 팁 EZ-보드 그래픽 & 멀티미디어 네트워크 프로그래밍 디바이스 드라이버 ImJa 솔루션 임베디드 FLEX 안드로이드 iOS 개발 FAIDE 하드웨어 C/C++ go언어 GNU C 레퍼런스 메뉴얼 ARM 루아 응용 프로젝트 이클립스 지그비 개발자 노트 권장도서 FPGA
VIVADO DSP HSIO Logic Zynq
함수설명
C 라이브러리 함수 커널 API 그래픽 라이브러리 - gxLib
자료실
자료실 FALINUX SDK ARM PC-V210 S3C6410
G100-S3C6410 S100-S3C6410 C221-S3C6410 N200-S3C6410 EZ-S3C6410
S5PV210
G100-S5PV210 S100-S5PV210 N200-S5PV210 C221-S5PV210
EZ-S3C2440 EZ-PXA270 EZ-X5 EZ-S2410 Auto Package
도와주세요
FAQ 도와주세요

  • 회원가입
  • ID/PW 찾기
 
  1. FAQ

  2. 도와주세요


최근 글

  • [특판][성Y인Y용Y품][...
  • 요즘 잘 나가는,,,
  • 요즘은 vmware 말고 ...
  • [docker] buildx 를 ...
  • buildroot 사용 관련
  • GPIO 제어 방법 문의 [1]
  • 임베디드 리눅스 개발...
  • make wandboard_quad ...
  • LCD 초기화 코드 좀 ... [1]
  • 임베디드 리눅스 커널...

최근 댓글

  • 오래 전에 해결법을 터득해서 ...
  • 비트 코인으로 작업하는 것은 ...
  • 10년차 임베 엔지니어 입니다. ...
  • 임베디드쪽이라면 SOC 쪽 displ...
  • 그렇군요 제가 질문이 잘못됬었...
  • 취준생으로서 포트폴리오를 만...
  • 제가 현재 취업준비생입니다. ...
  • 에프에이리눅스 보드는 아래 링...
  • 전체
  • 일반
  • X5
  • S2410
  • ESP-NS
  • S3C2440
  • EP9312
  • 구매
  • 기타

S3C2440 확장 포트 제어 문의 드립니다.

2010.10.18 21:24

miso77 조회 수:25563


 H1, H2 커넥터에 연결되어있는 BD[0:31], nCS3, nWE, nOE 신호를 제어하는 방법에 대해 문의를 드립니다.


OS가 없다면 바로 해당하는 주소를 접근하면 될텐데요.

EZ-S3C2400에 올라간 리눅스에서 어플리케이션 코드로 접근이 가능한지요?


예를 들어, 아래와 같은 코드를 Host PC에서 test.c로 만든후 컴파일하여 

EZ 보드에서 실행하려고 합니다.


#defien EXT_PORT_CS3  *(volatile unsigned int *)(nCS3_BASE_ADDR + 0x0000)

void main(void)

{

    EXT_PORT_CS3 = 0x12345678;

}


이 때, 

위 처럼 바로 주소 접근이 가능한지, 가능하지 않다면 다른 방법이 존재하는지와

nCS3_BASE_ADDR에 해당하는 주소가 어떻게 되는지 알고 싶습니다.



:) OS 없이 코드만 작성하다 첨 접하는 리눅스에서 코딩하려니 어렵네요.  

이 게시물을
  • Twitter
  • Facebook
  • Delicious
목록

댓글 3

  • 박문식

    2010.10.19 06:41

    OS  가 올라간 상태에서는 어플리케이션에서 위와 같은 방법으로 접근할수 없습니다.

    디바이스 드라이버를 통해서 접근하셔야 하고 필요하다면 직접 작성하셔야 합니다.

     

    쉬운 편에 속하는 드라이버이니 직접 만들어 보는것에 도전하셔도 어렵지 않습니다..

     

     

    댓글

  • miso77

    2010.10.19 23:21

    답변 감사드립니다.  ^^;

     

    자답입니다만, 다른 분들중에 저같은 경우가 있을지 몰라 제가 테스트 한 방법을 적습니다.

     

    검색을 하다보니 mmap 함수를 사용하는 방법이 있어 사용을 해보니 GPIO와 CS 컨트롤 제어가 되는 것 같네요.

     

    아래는 테스트 코드입니다.

     

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

    #define GPIO_ADDR 0x56000000
    #define CS3_ADDR        0x18000000

    int main(void)
    {
      int fd, fd_cs3;
      volatile void *gpio_base;
      volatile void *cs3_base;

      fd = open("/dev/mem", O_RDWR|O_SYNC);
      if(fd == -1) {
        printf("/dev/mem open error");
        exit(1);
      }
     
      fd_cs3 = open("/dev/mem", O_RDWR|O_SYNC);

     

      gpio_base = mmap(0, 0x100, PROT_READ|PROT_WRITE, MAP_SHARED, fd, GPIO_ADDR);
      cs3_base = mmap(0, 0x100, PROT_READ|PROT_WRITE, MAP_SHARED, fd_cs3, CS3_ADDR);

      printf("gpio address : %x\n", gpio_base);
      printf("cs3  address : %x\n", cs3_base);

     

      while(1) {
        *(volatile unsigned *)(gpio_base + 0x54) = 0x00; // led on
        *(volatile unsigned short*)(cs3_base  + 0x00) = 0xffff;
        sleep(1);
        *(volatile unsigned *)(gpio_base + 0x54) = 0xff; // led off
        *(volatile unsigned short*)(cs3_base  + 0x04) = 0x0000;
        sleep(1);
      }

      return 0;
    }

     

    위 코드중에 주의할 점은 보드 구매시 기본으로 들어있는 코드에서는

    CS 쪽 data bus가 8bit로 설정이 되어있는 것 같습니다.

    short 로 억세스하면 CS가 두 번떨어지고 char로 하면 한번만 떨어집니다.

    이 부분은 MCU 문서보고 설정하면 될 듯 하네요.

     => 문서와 코드를 확인해보니 16bit로 설정이 되어있네요.

         좀 더 디버깅해봐야 알 수 있겠습니다 --;


     

    댓글

  • 박문식

    2010.10.20 03:29

    mmap 를 통한 하드웨어 접근방법은 CS 뿐만 아니라  모든 영역에 접근할수 있습니다.

    하지만 가장 바람직 하지 않은 방법으로 단순히 테스트만을 목적으로 한것은 사용하셔도 됩니다.


    댓글

목록
번호 제목 글쓴이 날짜 조회 수
공지 포럼의 메뉴가 보이지 않아요! 장길석 2014.02.06 957650
공지 [중요 공지]제품 사용 및 기술 문의는 전화 상담을 받지 않습니다. 장길석 2012.11.09 1408541
공지 답글에 대한 공지 사항. falinux 2006.11.20 2424032
396 S3C2440 베이스 보드에 EM-S3C6410모듈 보드를 연결해서 사용해도 가능한가요? 바람 2015.01.20 14994
395 node webkit 동영상 독불장군 2014.08.10 15291
394 /dev/mtd1 플래시 관련해서 도움이 필요합니다. 그린에너지 2014.07.19 17659
393 파일시스템상에 파일내용 매번 수정/저장 할때의 낸드 수명? [3] Tomy 2014.02.05 19866
392 보드에 삼바서버나 nfs 서버 올리기? [2] Tomy 2014.02.03 19942
391 core dump file 생성 및 분석 unicorn 2014.01.24 26905
390 pwm 신호로 모터제어를 하는데 있어서 질문이 있습니다 ㅂㅋ 2013.12.19 30703
389 커널2.6.38 올리기 [1] file hirosuk 2013.09.20 23360
388 부팅중 움직이는(애니메이션) 로고 만들기 ? [2] Tomy 2013.06.11 69904
387 EMI 관련 대책방법 문의 오엔터 2013.04.09 24035
386 ezboot2 Unable to mount root fs on unknown-block(1,0) [1] 제피러스 2012.12.29 30878
385 Uncompressing Linux ... Invalid compressed format (err=1) [1] 제피러스 2012.12.28 27543
384 U-boot 1.1.6에서 ezboot2.4.10으로 갈아타던중 커널 부팅 문제 [2] 제피러스 2012.12.25 27003
383 S3c2440 Linux Kernel 2.6.21의 실시간 관련 문의 드립니다. [1] AA리눅스 2012.11.01 23171
382 MRP-S3C2440에서 I2C와 I2S 동시에 썼을 경우. [1] 캐드리안 2012.09.13 25213
381 AX88796 PHY mode 변경 [1] unicorn 2012.06.22 52310
380 s3c2440에서 iptables를 사용하려 합니다. SonYs 2012.06.11 23280
379 프레임 버퍼 픽셀 값 쉬프트 연산하는 방법 강릉바감 2012.05.17 21177
378 CAN 통신관련 질문글 올립니다.ㅜㅜ 박한수 2012.05.16 23464
377 4GB SD와 SDHC의 인식에 차이가 있는지 궁금 합니다. [3] 새벽남 2012.04.23 24509
첫 페이지 1 2 3 4 5 6 7 8 9 10 끝 페이지
쓰기
태그
부탁드립니다. ^^
  • 글을 작성하시려면 회원으로 가입하시고 로그인 하셔야 합니다.
  • 회원 가입은 주민등록번호가 필요 없으며, 메일 주소만 있으면 간단하게 가입하실 수 있습니다.
  • 본 포럼에 등록된 모든 글의 저작권은 작성하신 분께 있으며, 저작자의 허락 없이 다른 곳에 펌이나 도용하시면 안 됩니다.
  • 또한, 전자우편 수집 프로그램이나 그 밖의 기술적 장치를 이용하여 무단으로 이메일 주소 및 자료 수집되는 것을 거부하며,
  • 이를 위반 시 정보통신망 법에 의해 형사 처벌됨을 유념하시기 바랍니다.
  • FF 포럼
  • 강좌 & 팁
  • 함수설명
  • 자료실
  • 도와주세요