Product: ESP32-s3-wroom
Problem: Unable to disable ROM Log to UART 0 using register address.
Expected Test Result: ROM messages should stop being printed out UART0 after the CNTL_STORE4 register bit is set. Messages should still be printed out USB. The register overrides both the EFuse and GPIO settings.
Actual Result: ROM Messages continue to be printed over UART 0
Steps to reproduce:
Step 1: Start new project with the following code:
Code: Select all
#define RRTAG "RESET_REASON"
void app_main(void)
{
configure_led();
switch( esp_reset_reason() ) {
case ESP_RST_DEEPSLEEP:
ESP_LOGI(RRTAG,"DEEP SLEEP");
break;
case ESP_RST_WDT:
ESP_LOGI(RRTAG,"WDT");
break;
case ESP_RST_TASK_WDT:
ESP_LOGI(RRTAG,"Task WDT");
break;
case ESP_RST_INT_WDT:
ESP_LOGI(RRTAG,"INT WDT");
break;
case ESP_RST_PANIC:
ESP_LOGI(RRTAG,"PANIC");
break;
case ESP_RST_POWERON:
ESP_LOGI(RRTAG,"POWERON");
boot_count = 0;
break;
case ESP_RST_UNKNOWN:
ESP_LOGI(RRTAG,"Unknown");
break;
case ESP_RST_SW:
ESP_LOGI(RRTAG,"Software");
break;
default:
ESP_LOGI(RRTAG,"Code: %d",esp_reset_reason());
break;
}
boot_count++;
ESP_LOGI("boot", "Boot count: %d", boot_count);
if( boot_count == 1 ) {
esp_sleep_pd_config(ESP_PD_DOMAIN_RTC_SLOW_MEM, ESP_PD_OPTION_ON);
esp_sleep_pd_config(ESP_PD_DOMAIN_RTC_FAST_MEM, ESP_PD_OPTION_ON);
uint32_t val = REG_SET_BIT(RTC_CNTL_STORE4_REG, RTC_DISABLE_ROM_LOG);
ESP_LOGI("ROM_LOG","CNTL_STORE4_REG: 0x%04X - 0x%X",RTC_CNTL_STORE4_REG,val);
printf("Restarting and preserving RTC\n");
esp_restart();
}
REG_SET_BIT(RTC_CNTL_STORE4_REG, RTC_DISABLE_ROM_LOG);
printf("Start of main\n");
while( 1 ) {
vTaskDelay( pdMS_TO_TICKS(1000) );
printf("Log Message\n");
}
As described in technical manual table 8-3: