본문 바로가기

Kernel Timer 사용하기 ※.Kernel Timer를 사용하고자 하는 이유! 본 프로젝트에서 ir통신을 하기 위함이다. ir은 적외선을 이용한 통신 방법이다. 수광부와 발광부가 있어서 수광부에서 쏘는 적외선을 발광부에서 인지하는 것이다. ir통신에서 수광부의 깜빡임을 발광부에서 인지해야 한다. 그러려면 디바이스 드라이버에서는 신뢰성이 있는 깜빡는 신호를 보내줄 수 있어야 하고, 수광부에서는 그 값을 신뢰성있게 읽어 줘야 한다. 이때 신뢰성을 지키는 것으로 kernel timer를 사용하는 것이다!!! 커널 타이머는 하드웨어 상태를 주기적으로 감시하거나 정해진 시간을 초과하면 특정 함수를 수행하도록 할 때 쓰이게 되며 타이머 인터럽트를 통해 구현된다. ※.Kernel Timer 사용법 kernel timer를 사용하기 위해서는 헤.. 더보기
Device Driver] Kernel Facilities Kernel Facilities 는 드라이버 개발자의 toolbox안의 유용한 components이다. 우리가 알아볼 Kernel Facilities는 Kernel Thread , Helper Interfaces 이다. Helper Interfaces 에서는 연결리스트(Linked list), 해시리스트(Hash list), 작업큐(Work Queues), Notifier Chains, Completion Interface, Kthread Helpers, Error Handling Aids 를 살펴보자. ◎.Kernel Thread 커널 스레드는 쉽게 커널에 존재하는 스레드라 생각하자. 유저스레드와의 차이라고 한다면 커널공간에 존재하고, 커널 함수와 커널 자료구조에 접근할 수 있다는 것이다. 그리고 대개.. 더보기
Mini2440] GPIO-LED-module 만들기 GPIO핀에 LED를 달고서 그 LED가 깜빡이게 하는 디바이스 드라이버를 모듈형태로 target에 올리려고 한다. 우선 이를 위해서는 디바이스 드라이버를 모듈로 올리는 법을 알아야 한다. 그리고 LED를 깜박이는 소스코드는 gpio-led.c 파일을 보고서 만들었다. 이를 위해서 kernel source에 ctags를 걸어서 gpio 디바이스 드라이버를 만들기 위해서 필요한 함수를 선언하는 header 파일을 찾았다. 더보기