CAFE

Q & A

암9 보드에 다른 장치 붙이려고 하는데요 [질문]

작성자닭다리|작성시간05.07.07|조회수86 목록 댓글 4

모두들 안녕하세요~ ^.^

다름이 아니라요 ... 암9 보드에 다른 보드를 연결 하려고 하는데요

보드의 접근 방식은 flash 메모리와 같은방식 입니다.

그래서 외부 메모리 달듯이 연결을 하려고 해서요

하드웨어 적으로 메모리 매핑을 해서 충돌이 없게 만들었구요

그리구 디바이스 드라이버도 만들었는데요

문제는 이 디바이스 드라이버를 insmod하구 mknod까지는 잘 되었는데요

막상 어플리 케이션 프로그램을 돌리면 segmentation fault가 발생 하구요,

unable to handle kernel paging request at virtual address 라는 말도 나오네요...ㅠ.ㅜ

 

제 생각으로는 커널에서 이쪽 메모리 접근을 막는것 같아서요

어떻게 해야 하는지 답답해 죽겠습니다.

 

그리구요 물리 어드레스는 아는데 virtual address는 어떻게 알 수 있는지 궁금 합니다.

몇일동안 하고 있는데 영 결과가 나오질 않네요 꼭좀 답변 부탁 드립니다.

그럼 즐공 하시고 모두들 좋은 성과 얻으시길 ...

다음검색
현재 게시글 추가 기능 열기

댓글

댓글 리스트
  • 작성자Yacc | 작성시간 05.07.07 음.. MMU 설정으로 실제 Physical address와 Logical address와는 차이가 생깁니다. 보통 0x04000000 이 bank1이라면 이를 mmu 설정으로 0xf나 0xe 이후의 메모리 영역으로 (Kernel space) remap 하신 후에 device driver에서는 이 영역을 사용하셔서 짜셔야 합니다. 이때 SROM Bus의 경우 대다수가 Non bufferable,
  • 작성자Yacc | 작성시간 05.07.07 Non cacheable 일테니, MMU 설정시 이 값을 확인하시기 바랍니다. 더불어 device driver에서는 0xfxxxxxx등의 address를 직접 accessing 가능하지만 application에서는 상기영역은 접근 불가능합니다. device driver 에서 처리하시고, 어플에선 직접 해당 주소에 쓰는 그런 일들을 하면 segmentation falut가 납니다
  • 작성자Yacc | 작성시간 05.07.07 io_remap(0x04000000, 0xf0000000, 1024*1024, 0,0,0,0); (정확한 함수 명은 가물가물 -_-) 로 mmu 설정해주시고 사이즈와 옵션 처리만 해주시면 됩니다. 대충 ROM Bank address라인의 경우, 많아 봐야 10 라인 이하임으로 대략적으로 1M 정도만 잡으셔도 될 것 같네요...
  • 작성자닭다리 작성자 본인 여부 작성자 | 작성시간 05.07.07 아~ 되는거 같아요 ㅋㅋㅋㅋ 아고.. 너무 고마워서... 일주일 동안 고생 했는데.... 정말 고맙습니다. 꾸벅~ ^.^ 자세한 설명 너무 좋았어요 히~
댓글 전체보기
맨위로

카페 검색

카페 검색어 입력폼