인터럽트 핸들러 추가 해주는 irq 함수에서의 printk 사용 질문
글쓴이: raphael4 / 작성시간: 금, 2014/04/04 - 10:20오전
두 장비 모듈끼리 wiegand 통신을 하는데
메인 장비에서 값 읽을 때 인터럽트 핸들러 irq 함수를 등록해주고
함수 안에 printk 로 값을 bit 단위로 찍어서 볼려고 넣었는데
26bit를 찍어야 하는데 12bit만 찍더군요.
그래서 printk를 없애고 올렸더니 26bit 정상으로 값이 들어옵니다.
printk 문을 irq 함수에서 쓰면 안되는 건지
아니면 장비 사양이 떨어져서 그러는 건지 감이 안오네요
그것도 아니면 무슨 다른 문제라도 있는걸까요? 디버깅 해야 하는데 이것때문에 미치겠습니다.
Forums:
써도 되는데 주의 사항 요구
> printk 문을 irq 함수에서 쓰면 안되는 건지
써도 되는데, 아무래도 Timing 틀어집니다.
#1 printk 쓰면 이 것 때문에 인터럽트가 더 생기고..
#2 printk가 때문에 ISR에서 Return 하는 시간이 늘어나고,
#3 ISR에서 명령어 사이에 delay가 달라지고
...
즉, Hardware 마다 영향을 주는 모양새가 달라서 그 때 그 때 고려해야 합니다.
ISR에 값을 찍지 마시고, 외부에 테이블을 만들어서 ISR에서 그냥 그 쪽으로 값을 저장해보는 것은 어떨까요?
..
댓글 달기