Uboot中点亮LED灯

《ARM Linux开发-warewin 2G/3G无线传输(DTU)和路由器—笔记》

1硬件要求

1AT91SAM9260平台

2PC6PC10两个引脚连测试板的两个LED

2U-boot版本

u-boot-1.3.4

3、实现过程

在源码 /u-boot-1.3.4/board/atmel/at91sam9260ek/at91sam9260ek.c文件的中做如下操作:

1)定义LED灯管脚

#define    RED_LED  AT91_PIN_PC6    /* this is the power led */

#define    GREEN_LED   AT91_PIN_PC10   /* this is the user led */

PC6管脚连设备上的黄灯,PC10管脚连设备上的红灯。

2)添加LED灯初始化函数

void coloured_LED_init(void)

{

    /* Enable clock */

    at91_sys_write(AT91_PMC_PCER, 1 << AT91SAM9260_ID_PIOA);

    printf("coloured_led_init--------------------\n");

    at91_set_gpio_output(RED_LED, 1);

    at91_set_gpio_output(GREEN_LED, 0);

    at91_set_gpio_value(RED_LED, 0);

    at91_set_gpio_value(GREEN_LED, 1);   

}

3)调用LED灯初始化函数及置输出状态

如以下代码所示:在int board_init(void) 函数中红色字体为调用LED灯初始化函数及设置两个管脚输出为高电平。

int board_init(void)

{

#ifdef CONFIG_HAS_LCDC

//      at91sam9260ek_smc0_init();

      lcd_init();

...........................................................................

...........................................................................

#ifdef CONFIG_MACB

    at91sam9260ek_macb_hw_init();

#endif

    coloured_LED_init();

    at91_set_gpio_value(RED_LED, 1);

    at91_set_gpio_value(GREEN_LED, 1);

    return 0;

}

4、编译调试

重新编译uboot并下载到设备上,开机运行uboot就会看到设备上的这两个LED亮起。

 

你可能感兴趣的:(嵌入式linux开发基础)