기존 이솝 임베디드 포럼의 지식인 서비스가 게시판 형태로 변경되었습니다.
안녕하세요.
현재 odroid-xu 보드를 통해 공부를 하고 있는 학생입니다.
해당 보드에 있는 uart0 를 컨트롤 하기 위하여 처음에는 디폴트로 제공되는 디바이스 파일 ttySAC0를 통하여
컨트롤 하였고, 이후에 해당 시리얼과 gpio를 묶어서 다른 디바이스를 컨트롤 하기 위하여 디바이스 드라이버를 제작하고
있는 중입니다.
그런데 gpio 같은 경우 드라이버에서 ioremap을 통해 가져온 주소를 통하여 읽기 쓰기 모두 가능하였지만, uart의 경우는 읽기는 가능한 것을 확인하였지만, 쓰기는 직접 쓰건 iowrite32를 통하여 쓰건 써지지 않는 현상이 일어납니다.
이것이 비단 드라이버에서뿐 아니라 mmap에서도 물론 읽기만 되고 쓰기는 되지 않습니다.
원인을 전혀 알 수가 없어서 질문 드립니다. 도움 부탁드립니다.
UART의 특정 레지스터 등은 동작시에 손댈 수 없는게 있을겁니다.(ex> fifo register).
uart를 쓰시려고 할 경우는 직접 레지스터를 손대지 마시고,
ttySAC0를 open하셔서 사용하시면 됩니다.
즉, 커널에서 user space의 device driver를 열어서 사용할 수도 있습니다.
예전 어떤 회사 드라이버가 그렇게 되어 있더군요....^^