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