|
uboot移植时,在start_armboot()阶段,刚进入函数数组init_fnc_t *init_sequence[]中的init_baudrate (void)函数时可以点亮相应LED灯,但是在调用getenv_r ("baudrate", tmp, sizeof (tmp));之后不能操作点亮相应LED灯。串口不能发送数据。在*init_sequence[]中的后续几个函数也是在调用函数后不能操作点亮相应LED灯。
相关位置代码如下:
static int init_baudrate (void)
{
S3C24X0_GPIO * const gpio = S3C24X0_GetBase_GPIO();
char tmp[64]; /* long enough for environment variables */
gpio->GPBDAT =0x00000020; //在这里能点亮LED1
int i = getenv_r ("baudrate", tmp, sizeof (tmp));
gpio->GPBDAT =0x000000040; //在这里不能点亮LED2,熄灭LED1
gd->bd->bi_baudrate = gd->baudrate = (i > 0)
? (int) simple_strtoul (tmp, NULL, 10)
: CONFIG_BAUDRATE;
return (0);
}
不知道是什么问题,有没遇到相同问题的。 |
|