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

저의 업무가 최근 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=1b1

고도리

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
5728 S3C6410 Test Firmware 사용법 [1] jclab 2012-05-01 1759
5727 ActiveSync/USB host 동작 관련 [5] 백상은 2007-12-09 1759
5726 ICS S4210 (type password to decrypt storage?) 문제... file [4] 아명 2012-03-14 1759
5725 V4L2 device driver의 node ? [1] 테크 2012-04-18 1756
5724 V210에서 usb메모리 마운트 방법에 대한 질문 입니다. [2] Ike 2012-02-22 1755
5723 ramdisk 제작시 커널의 MTD파티션은 어떻게 해야 하나요? [2] 혜민아빠 2012-03-27 1755
5722 v4l2 는 camera register 관련된 포트에만 쓰일수 있는건가요? [1] biokk 2014-02-25 1755
5721 [V310] request_irq로 등록을 했지만, isr이 불려지지 않습니다.. ... [3] 훌러덩 2011-12-21 1754
5720 ffmpeg 관련하여 examples 이 컴파일이 되지 않습니다. [1] 사랑해요 2012-07-03 1754
5719 kikat 4.2.2 에서 surfaceflinger 초기화 하는 부분에 대해서 질문 ... [3] 시안 2014-07-08 1754
5718 s3c2440 touch screen 좌표 인식 박용순 2012-01-13 1752
» 리눅스 질문 : bus 충돌 회피방법 질문 [2] 카보 2013-08-28 1752
5716 Camera ISP Source가 공개된 AP chip 아시는분? [1] 꿈의사람 2014-02-07 1751
5715 busybox 1.14.0 udhcpc 관련 문의드립니다. [7] Tommy 2010-08-18 1750
5714 ARM 멀티코어와 리눅스에서 병렬처리? [4] Supsupi 2014-03-28 1749
5713 vmware 에 설치된 리눅스에서 공유폴더에 파일을 복사하는 방법 [1] blue0sky 2012-09-06 1748
5712 Android.Gingerbread MTD-utils 추가 포팅 문제점. [3] 서유한 2012-03-23 1748
5711 GPIO 설정 [5] 마대렐라 2014-01-24 1748
5710 SDRAM 확장시 에러발생 (64MB -> 128MB) [12] 박진홍 2009-08-15 1746
5709 안녕하세요 사운드 디바이스 관련 질문입니다. [6] 조현호 2013-03-25 1746

사용자 로그인