uboot下的console口波特率与实际的波特率存在偏差

在项目开发中,遇到一个问题:内核的console口波特率为115200,工作正常,但UBOOT下波特率有偏差。尽管设备树的clock-frequency被正确识别,且寄存器值与内核相同,但通过对比发现UBOOT的uartclock频率与内核不一致,导致波特率计算错误。修正uartclock频率以匹配内核设置后,问题得到解决。
摘要由CSDN通过智能技术生成

本人开发一个项目时用到了console口,出现的问题是内核下的console口波特率是115200,已经正常使用;但是在uboot下的console口波特率是有偏差的(确认设置的也是115200);检查过设备树和调试信息,确认设备树的clock-frequency已经被识别到,寄存器的值也是和内核下一样的(我将内核的uart寄存器值用while去打印出来了,uboot下用命令md reg-addr addr-len打印寄存器的值),查看代码及手册发现uboot下和内核下都是baud rate = (core clock freq) / (16 * divisor);

divisor为分频器值,通过波特率与core clock频率计算得出;最后通过打印出内核core clock频率对比uboot默认uart clock频率发现不一样,其它都是一样,故确认默认的uart clock频率设置不对,改成与内核一致的uart clock频率即可

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值