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

안녕하세요.

현재 odroid-xu 보드를 통해 공부를 하고 있는 학생입니다.

해당 보드에 있는 uart0 를 컨트롤 하기 위하여 처음에는 디폴트로 제공되는 디바이스 파일 ttySAC0를 통하여

컨트롤 하였고, 이후에 해당 시리얼과 gpio를 묶어서 다른 디바이스를 컨트롤 하기 위하여 디바이스 드라이버를 제작하고

있는 중입니다.

그런데 gpio 같은 경우 드라이버에서 ioremap을 통해 가져온 주소를 통하여 읽기 쓰기 모두 가능하였지만, uart의 경우는 읽기는 가능한 것을 확인하였지만, 쓰기는 직접 쓰건 iowrite32를 통하여 쓰건 써지지 않는 현상이 일어납니다.

이것이 비단 드라이버에서뿐 아니라 mmap에서도 물론 읽기만 되고 쓰기는 되지 않습니다.


원인을 전혀 알 수가 없어서 질문 드립니다. 도움 부탁드립니다.


고도리

2014.10.23 07:33:28
*.200.239.210

UART의 특정 레지스터 등은 동작시에 손댈 수 없는게 있을겁니다.(ex> fifo register).


uart를 쓰시려고 할 경우는 직접 레지스터를 손대지 마시고, 

ttySAC0를 open하셔서 사용하시면 됩니다.


즉, 커널에서 user space의 device driver를 열어서 사용할 수도 있습니다.


예전 어떤 회사 드라이버가 그렇게 되어 있더군요....^^

erdos

2014.10.23 22:59:39
*.139.90.196

답변 감사합니다! 특정 레지스터 뿐아니라 uart 관련 레지스터 전체가 수정이 안되더라구요. 물론 기본적으로 제공하는 디바이스 파일을 이용하는 방법도 있겠지만, 구지 한번 해보고 싶었습니다 ㅎㅎ... ARM으로 배우는 임베디드 시스템이란 책에도 보란듯이 수정해서 적용하고 있기에 당연히 되는줄 알았는데 안될줄이야 ㅠㅠ..

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

사용자 로그인