您的位置:首页 > 运维架构 > Linux

Uboot中点亮LED灯

2014-01-13 17:01 337 查看

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

1、硬件要求

(1)AT91SAM9260平台

(2)PC6、PC10两个引脚连测试板的两个LED灯

2、U-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灯亮起。

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息