主题 : uboot启动内核,不接串口中无法启动!急,指点。 复制链接 | 浏览器收藏 | 打印
级别: 新手上路
UID: 9675
精华: 0
发帖: 18
金钱: 95 两
威望: 22 点
贡献值: 0 点
综合积分: 36 分
注册时间: 2009-10-10
最后登录: 2013-12-17
楼主  发表于: 2010-03-30 18:55

 uboot启动内核,不接串口中无法启动!急,指点。

平台:
2440的板子,留有uart接口,连接一个MAX3232小板用于调试。

问题点:

现用u-boot启动linux内核,接MAX3232小板时能启动,不接启动不了

问题描述:


接MAX3232小板时,串口信息显示正常启动,LCD屏出现linux的LOGO,示波器量串口有大量波形。
不接MAX3232小板时,LCD屏无LOGO,示波器量串口只在刚加电时有少量波形。

判断可能是uboot的问题,换用vivi启动内核,接小板和不接小板时,示波器都有大量波形。

先谢过了。
级别: 新手上路
UID: 12946
精华: 0
发帖: 14
金钱: 70 两
威望: 14 点
贡献值: 0 点
综合积分: 28 分
注册时间: 2010-01-15
最后登录: 2010-09-09
1楼  发表于: 2010-04-01 14:11
楼主打印信息的串口是不是TTL悬空的,尝试将RX引脚拉高到高电平,怀疑是否启动时接收脚悬空导致ARM串口收到干扰数据。楼主记得把解决方法共享哦~
级别: 新手上路
UID: 9675
精华: 0
发帖: 18
金钱: 95 两
威望: 22 点
贡献值: 0 点
综合积分: 36 分
注册时间: 2009-10-10
最后登录: 2013-12-17
2楼  发表于: 2010-04-21 17:21
好久没来了,就是RX悬空的原因,加入错误状态判断就好了


cpu/arm920t/s3c24x0/serial.c中加放
int serial_errstat (void)
{
    S3C24X0_UART * const uart = S3C24X0_GetBase_UART(UART_NR);

    return uart->UERSTAT& 0xf;
}

修改common/main.c中的abortboot
    while ((bootdelay > 0) && (!abort)) {
        int i;

        --bootdelay;
        /* delay 100 * 10ms */
        for (i=0; !abort && i<100; ++i) {
            if (tstc()) {    /* we got a key press    */
修改if (tstc()) 为if (tstc() && !serial_errstat())就好了