tasklet을 배우고 실습하다 보니, 캐릭터 디바이스를 활용한 예제를 찾았다. 하다보니 강제로 character device를 등록, 열고, 닫고, 읽고, 쓰는 방법을 배웠다. 대충 이해한 다음 아래 동작을 구성했다. read: 앞쪽부터 읽음. write: 데이터가 있다면 뒤로 채워 넣음. 인터럽트: gpio를 시물레이션하여 앞에서 한 글자씩 지움. 버퍼 용량은 char 256개 사용. 전에 사용한 파일을 수정했고, 모듈을 만들기 위한 makefile을 […]
인터럽트 후반부를 처리하는 soft irq를 배웠다. 자 이제 사용해 보자. 불행히도 요즘은 일반화된 tasklet을 사용하고 low level인 soft irq를 사용하지 않는다고 한다. 그래도 아래 사이트에서 강제로?? 사용할 수 있는 방법을 찾았다. 실습하고 쓰지 말아야 한다. 드라이버를 로딩 후 언로딩하면 시스템이 죽어버린다. https://embetronicx.com/tutorials/linux/device-drivers/softirq-in-linux-kernel/ 요점은 kernel에서 export_symbol로 raise_softirq, open_softiq 등 3개 함수를 내보내 사용할 수 있게한다. interrrupt.h에 […]
항공기 구조설계 실무
isbn: 9791162221396 우리나라에 항공기 설계 할만한 사람이 한 100명 정도 되지 않을까 생각한다. 그럼에도 저자가 책을 굳이 냈는지 궁금하다. 많이 팔려야 몇만권정도 팔릴려나. 자기 일에 자존심을 갖고, 과거 항공기 설계 경험을 널리 전하기 위해 책을 내지 않았나 한다. 책 내용이 너무 실무위주라 항공기 설계 할 사람이 아니면 절대 쓸 일이 없어 보인다. 이걸 이렇게 설계한다 […]
코드를 분석한 내용을 자기의 것으로 만들기 위한 과정으로 실습이 중요합니다. p432. 디버깅을 통해 배우는 리눅스 커널의 구조와 원리. 프로그램을 디버깅을 통해 배워야 된다 생각했는데, 저자역시 같은 생각이다. 따라서 왜 코드만 보고 이해할 수 없었는지 명확하다. 사람이 코드만 보고 어떻게 동작하는지 이해할 수 없다. 인터럽트가 bcm2835_mmc_irq를 먼저 실행하고, thread로 bcm2835_mmc_thread_irq를 깨워 동작함을 알 수 있다.
기존 글로 가득한 구성이 아니라, 기업이 제품을 설명하는 카다로그를 보는 기분이다. 시장에서 판매되는 다양한 제품을 분석했는데, 이를 보면 그림이 많다고 그 질이 떨어지지 않는다. 보는 사람이 쉽게 이해할 수 있도록 많이 노력했다.