1. 부팅 후 LED가 계속 깜박이게 하기
커널 4.4에서
arch/arm/boot/dts/am335x-evmsk.dts 파일 수정
leds { pinctrl-names = "default", "sleep"; pinctrl-0 = <&user_leds_default>; //pinctrl-1 = <&user_leds_sleep>;
compatible = "gpio-leds";
led@1 { label = "heartbeat"; gpios = <&gpio3 7 GPIO_ACTIVE_HIGH>; linux,default-trigger = "heartbeat";
default-state = "on"; };
led@2 { label = "heartbeat1"; gpios = <&gpio3 8 GPIO_ACTIVE_HIGH>; linux,default-trigger = "heartbeat"; default-state = "off"; }; };
|
GPIO 설정은 아래와 같이 한다.
user_leds_default: user_leds_default { pinctrl-single,pins = < 0x1E4 (PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* emu0.gpio3_7 */ 0x1E8 (PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* emu1.gpio3_8 */ >; }; |
앞에 0x1E4값은 spruh73p AM335x Technical Reference Manual 에 Chapter9에
9-10 Control_Module Registers 테이블에 아래와 같이 되어 있다.
베이스 Address가 0x800이므로 , offset값 즉 0x1E4이면 emu0 GPIO 설정하는 레지스터
Address 이다.
9E4h conf_emu0 Section 9.3.1.50
9E8h conf_emu1 Section 9.3.1.50
LED를 깜박이게 하려면, 커널 Configuration은 아래와 같이 설정해야 한다.
CONFIG_LEDS_TRIGGERS=y CONFIG_LEDS_TRIGGER_TIMER=y CONFIG_LEDS_TRIGGER_HEARTBEAT=y |
커널 이미지를 Write 후 부팅하면 된다.
내용