Embedded Linux에 동영상 재생 시키기

Embedded Arm Linux     Embedded Arm Linux의 App 제작 툴인 QT를 이용하고 있다. 현재 QT 버전은 4.8.6 이다. 다음을 고려해 보자 QT 4.8.x 에서 video가 지원 되는가? no QT 5.x    에서 video가 지원되는가? no QT 자체적으로 동영상 포멧이 지원되지 않고, system에서 동영상 포멧이 지원되는 코덱이 설치되있어야 qt에서 사용할 수 있는것 같음. 그렇다면, 시스템에…

dmesg

Linux dmesg : Display Message 또는 Driver Message 를 의미     일반 C 프로그래밍을 하면 printf 함수를 통해 문자를 출력할 수 있다. 이와 마찬가지로 kernel 부팅 시, 혹은 kernel 영역에서의 로그는 dmesg 에 기록되게 된다. ( 사용자가 driver, library 등에서 직접 로그를 남기고 싶으면 printk 함수를 사용하면 된다.) kernel message는 여러 부분에 기록이 남는다….

linux wakeup interrupt

  linux 에서 sleep mode 에 들어갔다가 wakeup 하기 위하여 깨어나기 위한 wakeup interrupt 를 등록해야 한다. 예를 들어, 외부의wakeup interrupt 로 Enter Key 를 등록하였다면,  sleep mode 에서 다른 키를 아무리 눌러도 상태가 변하지 않지만, Enter Key 를 누르면 wakeup 되는 것이다. 이를 위하여 리눅스에서 power management 를 담당하고 있는 pm driver 를 수정해야 한다….

커널 타이머 (Kernel Timer)

하드웨어 상태를 주기적으로 감시할때 정해진 시간이 초과되면 특정 함수를 수행하는 기능을 한다. 리눅스 커널은 타이머 인터럽트가 발생하며 스케줄링에 필요한 처리를 끝낸 후 커널 타이머 목록이라는 데이터 구조를 검사하며, 이 커널 타이머 목록은 수행할 함수와 처리되어야 할 시간에 대한 정보가 담긴 연결 리스트이다.   커널 타이머 이용시 struct timer_list : 커널 타이머 구조체 init_timer(): 커널 타이머…

spinlock 종류, 차이점

  Semapore, Mutex, Spin-Lock 차이점은 다음 글에 정리되어 있다.   Spin-Lock의 종류를 알아보자. * spin_lock_irqsave()와 spin_lock_irq() 둘다 interrupt를 disable 시킨 이후에 spin lock을 획득하는 것은 동일하지만, spin_lock_irqsave()는 CPU의 flag 레지스터를 보관했다가 spin_unlock_irqrestore()로 복구할 수 있다. * spin_lock()과 spin_lock_irq()의 차이는 spin_lock()은 interrupt를 disable하지 않기 때문에 interrupt handler(top half)에서는 사용할 수 없다. 대신 이때는 spin_lock_irq()나 spin_lock_irqsave()를 사용해야…

Linux Keypad Driver

    Linux System에서 Keypad Driver 를 구성하는 방식은 다양하지만, 아래 두 가지에 대해 정리한다   1. Driver로 작성하여 실행시 올리기 일반 드라이버로 작성 후, insmod / modprobe로 드라이버 올린다   2. Kernel built-in 으로 작성하기 /work/linux/target/kernel/added/drivers/input/keyboard/bcm_gpio_keypad.c 에서 수정 /work/linux/target/kernel/added/arch/arm/[모델명]/arch.c 에서 키맵핑