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

저의 업무가 최근 Linux dirver 구현으로 바뀌어 linux를 삽질하고 있는 사람입니다.

이번에 PXA166을 이용하여 신규 기능 구현을 해야하는데, 한가지 문제점이 있어서 질문 드립니다.

 

일단 저희 시스템은 PXA166과 FPGA가 Bus로 연결되었으며, 그 Bus에는 Nor-Flash가 연결되어있습니다.

이 Bus를 이용하여 PXA166은 FPGA의 Register에 값을 읽고/쓰고, DMA로 대용량 데이터(15MB)를 읽고 있습니다.

그리고 USB WiFi로 대용량 데이터를 전송하고 있습니다.

 

현재는 DMA로 대용량 데이터를 다 읽은 후 WiFi로 전송하는.. 즉, 시리얼 구조로 되어있는데,

구현해야될 기능은 DMA로 일정 양만큼의 데이터를 읽으면서 WiFi로 전송해야하는 기능입니다.

 

여기서 나타날 수 있는 문제점은

DMA가 동작하는 동안 Linux Kernel이 (제가 알지 못하는 이유로) Nor-Flash를 읽을 경우 BUS가 충돌납니다.

이 문제는 제가 WinCE에서 이미 격었고, WinCE에서는 해결했는데, Linux에서는 어떤 방법을 써야할지 잘 모르겠습니다.

(물론 시간도 조금 부족하구요..)

 

제 생각에는 제가 작성한 DMA Driver와 Kernel의 MTD Driver간의 Bus 동기화(mutex?)를 해야할 것 같은데..

이게 가능할까요? 만약 가능하면 어떠한 방법을 써야하나요?

제가 생각하는 문제점을 해결할 수 있는 비슷한 코드는 없을까요?

 

답변부탁드립니다.

H/W 디자인 엔지니어입니다.

 

삼성의 ARM 칩에 관심이 많아져서 가입했습니다.

 

많이 공유할 수 있도록 하겠습니다.

 

엮인글 :
http://www.aesop.or.kr/index.php?mid=Board_Community_QandA&document_srl=111831&act=trackback&key=354

고도리

2013.08.30 13:24:42
*.200.239.210

먼저, 저는 pxa166이 어떤 칩(?)인지 모르는 상태입니다.

즉, hw/sw 특성을 잘 모르는 상태라고 보시면 됩니다...^^


"일단 저희 시스템은 PXA166과 FPGA가 Bus로 연결되었으며, 그 Bus에는 Nor-Flash가 연결되어있습니다."

를 해결하셨으면....


아마도 Chip Select pin을 사용하셨을 겁니다. wince에서도 CS 핀을 가지고 address를 분리 하셨을텐데,

리눅스도 비슷합니다.


다만 드라이버를 작성하는 부분이 틀리기 때문에, 이는 커널 소스를 직접 다룰 수 있는 엔지니어가 필요한 상태라고 보여집니다.


Samsung이나 제가 다루는 칩이라면 example이라도 드리겠지만, pxa166은.........ㅠ.ㅠ 이네요.

카보

2013.08.30 20:18:49
*.104.239.18

칩 벤더와 상관없이, Kernel의 MTD 드라이버(Nand 또는 Nor Flash 사용)와 User의 driver가 하나의 버스를 공유해서 데이터를 주고 받을 때, 둘 간의 충돌을 방지하는 방법을 찾고 있습니다.

List of Articles
번호 제목 글쓴이 날짜 조회 수sort

S3C6410 Test Firmware 사용법 [1]

  • jclab
  • 2012-05-01
  • 조회 수 1759

ActiveSync/USB host 동작 관련 [5]

ICS S4210 (type password to decrypt storage?) 문제... file [4]

  • 아명
  • 2012-03-14
  • 조회 수 1759

u-boot의 mtdpart 환경변수값의 의미가 궁금합니다. [2]

  • Supsupi
  • 2012-04-02
  • 조회 수 1757

ramdisk 제작시 커널의 MTD파티션은 어떻게 해야 하나요? [2]

V4L2 device driver의 node ? [1]

  • 테크
  • 2012-04-18
  • 조회 수 1756

busybox 1.14.0 udhcpc 관련 문의드립니다. [7]

  • Tommy
  • 2010-08-18
  • 조회 수 1755

[V310] request_irq로 등록을 했지만, isr이 불려지지 않습니다.. ... [3]

V210에서 usb메모리 마운트 방법에 대한 질문 입니다. [2]

  • Ike
  • 2012-02-22
  • 조회 수 1755

v4l2 는 camera register 관련된 포트에만 쓰일수 있는건가요? [1]

  • biokk
  • 2014-02-25
  • 조회 수 1755

ffmpeg 관련하여 examples 이 컴파일이 되지 않습니다. [1]

kikat 4.2.2 에서 surfaceflinger 초기화 하는 부분에 대해서 질문 ... [3]

  • 시안
  • 2014-07-08
  • 조회 수 1754

s3c2440 touch screen 좌표 인식

리눅스 질문 : bus 충돌 회피방법 질문 [2]

  • 카보
  • 2013-08-28
  • 조회 수 1752

Camera ISP Source가 공개된 AP chip 아시는분? [1]

안녕하세요 사운드 디바이스 관련 질문입니다. [6]

ARM 멀티코어와 리눅스에서 병렬처리? [4]

  • Supsupi
  • 2014-03-28
  • 조회 수 1749

vmware 에 설치된 리눅스에서 공유폴더에 파일을 복사하는 방법 [1]

Android.Gingerbread MTD-utils 추가 포팅 문제점. [3]

GPIO 설정 [5]

사용자 로그인