乐鑫技术交流
直播中

张健

7年用户 1382经验值
私信 关注
[问答]

在ubuntu下编译IDF-4.4.2,bootloader内串口接收中断无法进入是什么原因导致的?

我在ubuntu下编译IDF-4.4.2。 修改了uart.c内的接口来适配外设串口的运行,发送没有问题,使用abup_boot_uart_init来初始化,abup_uart_tx_chars可以发送。
但接收到数据设备就立刻宕机,log文件导出放在附件中,修改的abup_custom_uart.c也已经提供。

烦请检查一下log是否能看出什么原因导致,以及我在中断方面是否有配置不对的地方,非常感谢。

回帖(1)

李莉

2024-6-14 17:17:59
首先,我需要查看您提供的log文件和修改过的abup_custom_uart.c文件。但是,作为一个AI助手,我无法直接查看附件。不过,我可以为您提供一些建议和可能的原因,以帮助您解决问题。

1. 确保您的串口接收中断配置正确。检查您的中断服务程序(ISR)是否正确处理接收到的数据,并确保在ISR中调用适当的API来处理接收到的数据。

2. 检查您的串口接收缓冲区是否足够大,以防止溢出。如果缓冲区太小,可能会导致数据丢失或设备宕机。

3. 确保您的串口接收中断优先级设置正确。如果中断优先级设置不正确,可能会导致中断服务程序无法及时处理接收到的数据,从而导致设备宕机。

4. 检查您的串口接收中断是否被正确地使能和配置。您可以使用调试工具(如GDB)来检查中断是否被触发,以及中断服务程序是否被正确调用。

5. 检查您的串口驱动程序是否正确处理接收到的数据。确保驱动程序在接收到数据时正确更新缓冲区和状态变量。

6. 检查您的代码中是否有死锁或资源竞争问题。这些问题可能导致设备宕机。

7. 如果可能,请尝试使用其他串口设备或串口驱动程序,以排除硬件或驱动程序问题。

8. 使用调试工具(如GDB)和日志记录功能,逐步跟踪您的代码执行过程,以便找到导致设备宕机的确切位置。

希望这些建议能帮助您解决问题。如果您能提供更多的信息,例如log文件和修改过的abup_custom_uart.c文件的内容,我将更好地帮助您分析问题。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分