docs(ulp): updated lp core docs with P4 related info

This commit is contained in:
Marius Vikhammer 2024-03-13 11:43:16 +08:00
parent 08d1460f15
commit 1e64c458b2
3 changed files with 30 additions and 24 deletions

View File

@ -115,7 +115,6 @@ api-reference/peripherals/hmac.rst
api-reference/peripherals/usb_device.rst
api-reference/peripherals/gpio.rst
api-reference/peripherals/sdspi_host.rst
api-reference/peripherals/dac.rst
api-reference/peripherals/spi_slave.rst
api-reference/peripherals/etm.rst
api-reference/peripherals/i2s.rst
@ -128,7 +127,6 @@ api-reference/peripherals/ana_cmpr.rst
api-reference/peripherals/ledc.rst
api-reference/peripherals/temp_sensor.rst
api-reference/peripherals/spi_features.rst
api-reference/peripherals/sdio_slave.rst
api-reference/peripherals/clk_tree.rst
api-reference/peripherals/spi_flash/spi_flash_concurrency.rst
api-reference/peripherals/spi_flash/spi_flash_override_driver.rst
@ -165,14 +163,10 @@ api-reference/system/sleep_modes.rst
api-reference/system/mm_sync.rst
api-reference/system/ota.rst
api-reference/system/app_trace.rst
api-reference/system/ulp_macros.rst
api-reference/system/perfmon.rst
api-reference/system/ulp-lp-core.rst
api-reference/system/ulp.rst
api-reference/system/esp_function_with_shared_stack.rst
api-reference/system/efuse.rst
api-reference/system/chip_revision.rst
api-reference/system/ulp_instruction_set.rst
api-reference/system/async_memcpy.rst
api-reference/system/random.rst
api-reference/system/esp_timer.rst
@ -198,7 +192,6 @@ api-reference/system/heap_debug.rst
api-reference/system/mm.rst
api-reference/system/ipc.rst
api-reference/system/esp_https_ota.rst
api-reference/system/ulp-risc-v.rst
api-reference/system/esp_err.rst
api-reference/system/freertos_idf.rst
api-reference/system/console.rst
@ -238,7 +231,6 @@ api-reference/protocols/esp_serial_slave_link.rst
api-reference/protocols/mqtt.rst
api-reference/protocols/mbedtls.rst
api-reference/protocols/esp_http_server.rst
api-reference/protocols/esp_sdio_slave_protocol.rst
api-reference/protocols/esp_local_ctrl.rst
api-reference/protocols/esp_crt_bundle.rst
api-reference/protocols/esp_http_client.rst

View File

@ -62,12 +62,10 @@ api-reference/peripherals/usb_host/usb_host_notes_index.rst
api-reference/peripherals/usb_host/usb_host_notes_dwc_otg.rst
api-reference/peripherals/usb_host/usb_host_notes_design.rst
api-reference/peripherals/usb_device.rst
api-reference/peripherals/dac.rst
api-reference/peripherals/touch_element.rst
api-reference/peripherals/lcd.rst
api-reference/peripherals/ana_cmpr.rst
api-reference/peripherals/temp_sensor.rst
api-reference/peripherals/sdio_slave.rst
api-reference/peripherals/spi_flash/xip_from_psram.inc
api-reference/peripherals/spi_flash/spi_flash_concurrency.rst
api-reference/peripherals/spi_flash/spi_flash_override_driver.rst
@ -93,19 +91,13 @@ api-reference/network/esp_wifi.rst
api-reference/network/index.rst
api-reference/system/sleep_modes.rst
api-reference/system/app_trace.rst
api-reference/system/ulp_macros.rst
api-reference/system/ulp-lp-core.rst
api-reference/system/ulp.rst
api-reference/system/ulp_instruction_set.rst
api-reference/system/random.rst
api-reference/system/power_management.rst
api-reference/system/misc_system_api.rst
api-reference/system/inc/power_management_esp32p4.rst
api-reference/system/ulp-risc-v.rst
api-reference/index.rst
api-reference/protocols/icmp_echo.rst
api-reference/protocols/esp_serial_slave_link.rst
api-reference/protocols/esp_sdio_slave_protocol.rst
api-reference/protocols/index.rst
security/host-based-security-workflows.rst
security/flash-encryption.rst

View File

@ -140,20 +140,42 @@ The ULP has the following wake-up sources:
When the ULP is woken up, it will go through the following steps:
1. Initialize system feature, e.g., interrupts
2. Call user code ``main()``
3. Return from ``main()``
4. If ``lp_timer_sleep_duration_us`` is specified, then configure the next wake-up alarm
5. Call :cpp:func:`ulp_lp_core_halt`
.. list::
:CONFIG_ESP_ROM_HAS_LP_ROM: #. Unless :cpp:member:`ulp_lp_core_cfg_t::skip_lp_rom_boot` is specified: run ROM start-up code and jump to the entry point in LP RAM. ROM start-up code will initialize lp-uart as well as print boot messages.
#. Initialize system feature, e.g., interrupts
#. Call user code ``main()``
#. Return from ``main()``
#. If ``lp_timer_sleep_duration_us`` is specified, then configure the next wake-up alarm
#. Call :cpp:func:`ulp_lp_core_halt`
ULP LP-Core Peripheral Support
------------------------------
To enhance the capabilities of the ULP LP-Core coprocessor, it has access to peripherals which operate in the low-power domain. The ULP LP-Core coprocessor can interact with these peripherals when the main CPU is in sleep mode, and can wake up the main CPU once a wakeup condition is reached. The following peripherals are supported:
* LP IO
* LP I2C
* LP UART
.. list::
* LP IO
* LP I2C
* LP UART
.. only:: CONFIG_ESP_ROM_HAS_LP_ROM
ULP LP-Core ROM
---------------
The ULP LP-Core ROM is a small pre-built piece of code located in LP-ROM, which is not modifiable by users. Similar to the bootloader ROM code ran by the main CPU, this code is executed when the ULP LP-Core coprocessor is started. The ROM code initializes the ULP LP-Core coprocessor and then jumps to the user program. The ROM code is responsible for initializing the LP UART and printing boot messages.
The ROM code is not executed if :cpp:member:`ulp_lp_core_cfg_t::skip_lp_rom_boot` is set to true. This is useful when you need the ULP to wake-up as quickly as possible and the extra overhead of initializing UART and printing is unwanted.
In addition to the boot-up code mentioned above the ROM code also provides the following functions and interfaces:
* :component_file:`ROM.ld Interface <esp_rom/esp32p4/ld/esp32p4lp.rom.ld>`
* :component_file:`newlib.ld Interface <esp_rom/esp32p4/ld/esp32p4lp.rom.newlib.ld>`
Since these functions are already present in LP-ROM no matter what, using these in your program allows you to reduce the RAM footprint of your ULP application.
Application Examples
--------------------