硬汉嵌入式论坛

 找回密码
 立即注册
查看: 458|回复: 4
收起左侧

[有问必答] 问一个历史问题-bsp_uart_fffo.c<下面的函数会死掉(待完善)>

[复制链接]

30

主题

180

回帖

270

积分

高级会员

积分
270
发表于 2025-11-26 15:53:17 | 显示全部楼层 |阅读模式
最近项目要用到很多串口,测试发现当前启动串口5以后,整个RTX系统就会卡死。

用SW接口调试,发现卡在的位置应该是 bsp_uart_fifo.c的赋值发送缓存个数的位置
2025-11-26_155113.png
很好奇,这里为什么会被卡住,想问下,这个历史的问题,有解决方案吗?

目前我的临时方法就是不判定发送缓冲区是否满了,我跳过这个过程发送。
暂时没发现程序有什么异常,我应用层发送的数据比较周期性,大概2秒一次,每次16字节。
应该不会出现发送缓冲区慢的情况

回复

使用道具 举报

1万

主题

7万

回帖

12万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
120428
QQ
发表于 2025-11-26 17:35:31 | 显示全部楼层
标准库bsp_uart_fifo.c里面串口发送函数UartSend修正完善
https://forum.anfulai.cn/forum.p ... 5694&fromuid=58
(出处: 硬汉嵌入式论坛)
回复

使用道具 举报

30

主题

180

回帖

270

积分

高级会员

积分
270
 楼主| 发表于 2025-11-27 23:10:31 | 显示全部楼层
eric2013 发表于 2025-11-26 17:35
标准库bsp_uart_fifo.c里面串口发送函数UartSend修正完善
https://forum.anfulai.cn/forum.php?mod=viewth ...

还是大佬给力~  十来年了~ 一直您的基础上  持续
回复

使用道具 举报

30

主题

180

回帖

270

积分

高级会员

积分
270
 楼主| 发表于 2025-12-2 16:36:17 | 显示全部楼层
本帖最后由 mioc_hust 于 2025-12-2 16:39 编辑

最后定位到问题原因了。物料混乱导致的。

实际产品应用的应该是103RC的型号,支持串口4和串口5....
实际出故障的单板,物料编码用的是103RB,这个RB可能是之前贴装的时候搞乱了。
查看手册发现103RB是没有串口4和串口5的,这里就导致了当采用串口5发送数据的时候
随便发送几次数据,数据的发送缓存就会填满,然后因为硬件没有COM5的原因,数据是发送不出去的,最终就卡死在while(1)里面了

以后遇见一些神奇的问题,可以关注下,是不是换用了相同的封装,但是芯片内部资源不同的芯片所引起~

回复

使用道具 举报

1万

主题

7万

回帖

12万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
120428
QQ
发表于 2025-12-3 10:02:25 | 显示全部楼层
mioc_hust 发表于 2025-12-2 16:36
最后定位到问题原因了。物料混乱导致的。

实际产品应用的应该是103RC的型号,支持串口4和串口5....

谢谢告知最终原因。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2026-1-10 07:55 , Processed in 0.043412 second(s), 27 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表