[已解决] bootloader内串口接收中断无法进入

Kx_Kevin
Posts: 27
Joined: Mon Jul 25, 2022 2:33 am

[已解决] bootloader内串口接收中断无法进入

Postby Kx_Kevin » Tue Aug 09, 2022 3:48 am

Hi

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

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

期待回复
Attachments
err_log20220809.txt
(7.77 KiB) Downloaded 525 times
abup_custom_uart.h
(28.66 KiB) Downloaded 536 times
abup_custom_uart.c
(46.45 KiB) Downloaded 389 times
Last edited by Kx_Kevin on Thu Aug 11, 2022 11:08 am, edited 1 time in total.

ESP_Gargamel
Posts: 786
Joined: Wed Nov 14, 2018 8:45 am

Re: bootloader内串口接收中断无法进入

Postby ESP_Gargamel » Tue Aug 09, 2022 7:17 am

直接把包含这些文件的 bootloader 目录打包给出来,其他要改的地方也一并说明。

Kx_Kevin
Posts: 27
Joined: Mon Jul 25, 2022 2:33 am

Re: bootloader内串口接收中断无法进入

Postby Kx_Kevin » Tue Aug 09, 2022 7:36 am

Hi

感谢答复

附件已提供,替换component中的bootloader两个文件夹,abup_custom_xx.c文件都在bootloader_support目录内,已经没有其他需要修改的boot内容,请查收。
Attachments
components.zip
(344.12 KiB) Downloaded 564 times

ESP_Gargamel
Posts: 786
Joined: Wed Nov 14, 2018 8:45 am

Re: bootloader内串口接收中断无法进入

Postby ESP_Gargamel » Wed Aug 10, 2022 3:18 am

串口中断是可以进入的,问题是你串口 isr 传进来的参数是 NULL,导致后面空指针了。

Code: Select all

r=abup_uart_isr_register(uart_num, abup_uart_group_isr_callback, NULL);
改成
r=abup_uart_isr_register(uart_num, abup_uart_group_isr_callback, &abup_uart_obj[uart_num]);

Kx_Kevin
Posts: 27
Joined: Mon Jul 25, 2022 2:33 am

Re: bootloader内串口接收中断无法进入

Postby Kx_Kevin » Wed Aug 10, 2022 6:34 am

Hi

非常感谢,的确是这个问题。

我还发现现在这样的配置,不知道是哪里不太对,每过固定的10S设备就会重启,检查了一下喂狗接口发现外部文件无法调用,所以也不知道是不是看门狗导致。 修改了串口txfifo和rxfifo的thresh值从10改到15,也没有效果。

请问这是怎么回事呢?

ESP_Gargamel
Posts: 786
Joined: Wed Nov 14, 2018 8:45 am

Re: bootloader内串口接收中断无法进入

Postby ESP_Gargamel » Wed Aug 10, 2022 7:41 am

你那个 abup_timer_callback_cnt 要到 30 才会退出 while,这导致触发 RTC WDT 了,你要把 Bootloader config -> Timeout for RTC watchdog (ms) 改大,比如 30000。

Kx_Kevin
Posts: 27
Joined: Mon Jul 25, 2022 2:33 am

Re: bootloader内串口接收中断无法进入

Postby Kx_Kevin » Wed Aug 10, 2022 8:15 am

Hi

感谢答复,我了解了。那除了你说的修改Bootloader config -> Timeout for RTC watchdog (ms)这样的固定时长,有没有喂狗的接口呢?在哪里怎么用?

因为bootloader里面的流程实际时间不可控,固定时长对我来说不现实。

ESP_Gargamel
Posts: 786
Joined: Wed Nov 14, 2018 8:45 am

Re: bootloader内串口接收中断无法进入

Postby ESP_Gargamel » Wed Aug 10, 2022 9:14 am

参看 esp_flash_encrypt_region 里面的喂狗。

Who is online

Users browsing this forum: Google [Bot] and 67 guests