Note

There is a newer bugfix release of this version. The latest bugfix release is v5.2.3

Internal and Unstable APIs

This section is listing some APIs that are internal or likely to be changed or removed in the next releases of ESP-IDF.

API Reference

Header File

Functions

void esp_rom_software_reset_system(void)

Software Reset digital core include RTC.

It is not recommended to use this function in esp-idf, use esp_restart() instead.

void esp_rom_software_reset_cpu(int cpu_no)

Software Reset cpu core.

It is not recommended to use this function in esp-idf, use esp_restart() instead.

Parameters

cpu_no -- : The CPU to reset, 0 for PRO CPU, 1 for APP CPU.

int esp_rom_printf(const char *fmt, ...)

Print formated string to console device.

Note

float and long long data are not supported!

Parameters
  • fmt -- Format string

  • ... -- Additional arguments, depending on the format string

Returns

int: Total number of characters written on success; A negative number on failure.

void esp_rom_delay_us(uint32_t us)

Pauses execution for us microseconds.

Parameters

us -- Number of microseconds to pause

void esp_rom_install_channel_putc(int channel, void (*putc)(char c))

esp_rom_printf can print message to different channels simultaneously. This function can help install the low level putc function for esp_rom_printf.

Parameters
  • channel -- Channel number (startting from 1)

  • putc -- Function pointer to the putc implementation. Set NULL can disconnect esp_rom_printf with putc.

void esp_rom_install_uart_printf(void)

Install UART1 as the default console channel, equivalent to esp_rom_install_channel_putc(1, esp_rom_uart_putc)

soc_reset_reason_t esp_rom_get_reset_reason(int cpu_no)

Get reset reason of CPU.

Parameters

cpu_no -- CPU number

Returns

Reset reason code (see in soc/reset_reasons.h)

void esp_rom_route_intr_matrix(int cpu_core, uint32_t periph_intr_id, uint32_t cpu_intr_num)

Route peripheral interrupt sources to CPU's interrupt port by matrix.

Usually there're 4 steps to use an interrupt:

  1. Route peripheral interrupt source to CPU. e.g. esp_rom_route_intr_matrix(0, ETS_WIFI_MAC_INTR_SOURCE, ETS_WMAC_INUM)

  2. Set interrupt handler for CPU

  3. Enable CPU interrupt

  4. Enable peripheral interrupt

Parameters
  • cpu_core -- The CPU number, which the peripheral interrupt will inform to

  • periph_intr_id -- The peripheral interrupt source number

  • cpu_intr_num -- The CPU (external) interrupt number. On targets that use CLIC as their interrupt controller, this number represents the external interrupt number. For example, passing cpu_intr_num = i to this function would in fact bind peripheral source to CPU interrupt CLIC_EXT_INTR_NUM_OFFSET + i.

uint32_t esp_rom_get_cpu_ticks_per_us(void)

Get the real CPU ticks per us.

Returns

CPU ticks per us

void esp_rom_set_cpu_ticks_per_us(uint32_t ticks_per_us)

Set the real CPU tick rate.

Note

Call this function when CPU frequency is changed, otherwise the esp_rom_delay_us can be inaccurate.

Parameters

ticks_per_us -- CPU ticks per us