根据原理图,蜂鸣器是用GPB0控制的,
我用的是tekkaman移植的U-boot-2009.08的版本,
在这个版本中有两处设定了U-boot启动的时候蜂鸣器响,
第一个地方是在:
board\mini2440\mini2440.c这个文件,
#if defined(CONFIG_MINI2440_LED)
gpio->GPBDAT = 0x00000181;
#endif
第二个地方是lib_arm\board.c的display_banner 函数:
#if defined(CONFIG_MINI2440_LED)
S3C24X0_GPIO * const gpio = S3C24X0_GetBase_GPIO();
gpio->GPBDAT = 0x101; //tekkamanninja
#endif
解决办法:
步骤一:修改第一个地方的board\mini2440\mini2440.c文件:
改为:
#if defined(CONFIG_MINI2440_LED)
gpio->GPBDAT = 0x00000180;
#endif
步骤二:再检查文件中的start_armboot函数,是否存在如下代码:
#if defined(CONFIG_MINI2440_LED)
gpio->GPBDAT = 0x0; //tekkamanninja
#endif
这样就是U-boot系统启动的时候蜂鸣器响一会,启动结束停止,就不会出现长鸣现象了。
如果不想蜂鸣器响,将lib_arm\board.c的display_banner 函数中的:
#if defined(CONFIG_MINI2440_LED)
S3C24X0_GPIO * const gpio = S3C24X0_GetBase_GPIO();
gpio->GPBDAT = 0x101; //tekkamanninja
#endif
改为:
#if defined(CONFIG_MINI2440_LED)
S3C24X0_GPIO * const gpio = S3C24X0_GetBase_GPIO();
gpio->GPBDAT = 0x100; //tekkamanninja
#endif
[ 此帖被xiaoxin86在2010-02-15 14:45重新编辑 ]