임베디드 리눅스 gpio 입출력 및 tick 신호에 따른 상관관계 관련 질문입니다.
글쓴이: kbs1439 / 작성시간: 화, 2016/11/15 - 10:01오전
안녕하세요, 현재 i.MX6Q AP로 임베디드 리눅스 어플리케이션 설계 중에 있습니다.
현재는 외부 모듈 버스를 사용해서(imx에서 사용하는 EIM 이라는 모듈) FPGA와 통신 중에 있는데
FPGA가 샘플링 할때 마다 샘플링 데이터를 읽어가도록 하고 있습니다.
그 와중에 gpio로 통신도 하구요.
근데 이게 리눅스 tick 주기 마다 버스 통신에 문제가 생기더라구요.
tick 주기 마다 통신이 아예 안됩니다. 버스의 cs나 read 핀 등이 동작이 안됩니다.
이게 시스템 타이머 인터럽트 때문인건지 어떻게 확인해야 할지 몰라서 질문을 드립니다.
커널에 tickless라는 개념이 있던데 정확하게 내용을 알지못해 적용해도 오히려 전체적인 속도만 늦어지는 느낌이더라구요. full syntick 으로 사용하니까요.
혹시 참조할 만한 자료나 어떻게 해결할 수 있을지 도움을 주시면 정말 감사드리겠습니다.
Forums:
의견
> tick 주기 마다 통신이 아예 안됩니다. 버스의 cs나 read 핀 등이 동작이 안됩니다.
>이게 시스템 타이머 인터럽트 때문인건지 어떻게 확인해야 할지 몰라서 질문을 드립니다.
일단 tick (시스템 타이머) 때문인지 검증을 해야합니다.
다음과 같은 로직은 어떨까요?
// 모든 인터럽트 막기. Hence Tick is disabled now.
disable_IRQ();
버스의 CS 혹은 read 하가
GPIO 일기
enable_IRQ();
일단 이렇게 해서도 데이타를 못 읽으면 Tick 상관성이 떨어지는 것이죠.
댓글 달기