Sys_reset is not consistent, why?

Hi,

I am calling sys_reset to reboot the device. When it executed, the device stopped working and console not printing # when I press enter key and also I am not seeing booting debug messages until I reconnect the power. What might be the issue in device or software?

I am facing this issue for all examples provided in the Github repo. The software reset is necessary for camera app after OTA firmware update, so please guide me to fix this issue.

Thanks,

Yugandhar

Hi @yugandhar ,

On our EVB boards, we are unable to reproduce.

May I suggest a software fix and test:

Inside the function sys_reset in sys_api.c,

Replace this function with the code below.

void sys_reset(void)

{

flash_t flash;

flash_init(&flash);

hal_flash_reset_to_spi(flash.phal_spic_adaptor);




hal_sys_set_system_reset();

}

If software reset does not work, hardware reset may be the only option.

Thank you.

Hi @Kelvin_Huang ,

I tried as you suggested, but no use.

Sometimes, the main firmware started running and stopped suddenly, then I need to manually remove and connect power to boot properly.

I am suspecting, the soft reset leaving SRAM and DDR loaded with previous values and when firmware executed upon soft reset might halting CPU somtimes. So, in this state manual restart is required. Is there any possibility for this? Because when device not lost power and only soft reset will keep the RAM in same state?

The failure cases I observed so far

  1. Bootloader loaded ISP IQ data and then halted.
  2. VOE initialization is in middel and then halted, below is the log.

HASHMAP 0x70c90524(record-list) INIT SUCCESS
hal_voe_ready 0x0 0x800000
read fcs_status 0x00000080
[video_init] uvcd iq is null, use default.
[video_init] uvcd SNR is null, use default.
IQ:FW size (944526422)

When I restart manually, I can see below log.

read fcs_status 0x000000bf
[video_init] uvcd iq is null, use default.
[video_init] uvcd SNR is null, use default.
IQ:FW size (73960)
sensor:date 2026/3/4 version:RTL8735B_VOE_1.6.1.0
sensor:FW size (14464)

Why IQ FW size is 944526422 (wrong) when I do soft reset and why 14464 when I restart power?

This is very rare issue, so I took little long to reply. I want to try de-init of my application completely before soft reset, will it help? Do you have any suggestions to fix the soft reset issue?

Thanks,

Yugandhar

Hi @yugandhar,

I believe that there is an issue with your read and write from your new 32MB flash [Highly likely pointing to your hardware]

Thank you.

Best Regards,
Kelvin Huang

Hi @Kelvin_Huang ,

No, We are using 16MB only, we stopped using 32 MB flash. The logs I shared are with 16MB flash only and also we changed to 1 bit SPI mode instead of quad IO after noticed quad IO read issues mentioned at Boot failure after OTA update - #11 by Pammy

Thanks,

Yugandhar

Hi @yugandhar,

By right, read fcs_status should be 0x00000080, if it is showing 0x000000bf. It shows that there is definitely something wrong with the read and write to and from flash. Also, IQ:FW size (944526422) but when you reboot, the chip reads it as IQ:FW size (73960).

There is something wrong with your hardware. By default, our board uses quad mode with 16M. Please check that your hardware is all good.

Thank you.

Hi @Kelvin_Huang ,

We are seeing below errors with correct IQ FW size also, why? What might be the exact issue.

hal_voe_ready 0x0 0x800000
read fcs_status 0x00000080
[video_init] uvcd iq is null, use default.
[video_init] uvcd SNR is null, use default.
IQ:FW size (73960)
sensor:date 2026/3/4 version:RTL8735B_VOE_1.6.1.0
sensor:FW size (14464)
sensor timestamp: 2026/03/04
iq timestamp: 2024/09/13 14:00:00
[MISC Err]Pin 0[5] is conflicted
[MISC Err]It’s configured as GPIO now.
[MISC Err]It’s using by peripheral F0000000
[MISC Err]Pin 4[0] is conflicted
[MISC Err]It’s configured as GPIO now.
[MISC Err]It’s using by peripheral F0000000
[MISC Err]Pin 3[11] is conflicted
[MISC Err]It’s configured as GPIO now.
[MISC Err]It’s using by peripheral F0000000
[MISC Err]Pin 3[13] is conflicted
[MISC Err]It’s configured as Primary now.
[MISC Err]It’s using by peripheral 0000000C
[MISC Err]Pin 3[12] is conflicted
[MISC Err]It’s configured as Primary now.
[MISC Err]It’s using by peripheral 0000000E
[MISC Err]Pin 3[10] is conflicted
[MISC Err]It’s configured as Primary now.
[MISC Err]It’s using by peripheral 0000000E
ISP:1 ENC:1 H265:1 NN:1
hal_voe_ready 0x0 0x800000
voe :RTL8735B_VOE_1.6.1.0
sensor:RTL8735B_VOE_1.6.1.0
hal :RTL8735B_VOE_1.7.0.0
VOE FCS run open isp timeout 1000002
hal_video_init fail

Thanks,

Yugandhar

Hi @yugandhar ,

There are some pin conflicts in your code.

Thank you.

Hi @Kelvin_Huang ,

There are no pin conflicts, because we never modified any pin configurations in original SDK code. The issue I posted here is related to sys_reset. After sys_reset only I am seeing unexpected execution until I do manual power reset. Is sys_reset correct API for system reboot?

Thanks,

Yuagandhar

Hi @yugandhar ,

sys_reset();

This API is correct for doing a reboot.

Thank you.

Hi @Kelvin_Huang ,

Why I am seeing pin conflict issues and IQ FW wrong size after calling sys_reset?

Is it RAM or flash issue?

Why it is successful after manual power off and on?

Thank you