mirror of
https://github.com/espressif/esp-idf.git
synced 2024-10-05 20:47:46 -04:00
4230acb971
This commit adds a new example which demonstrates how the ULP RISC-V co-processor handles interrupts.
72 lines
2.4 KiB
Markdown
72 lines
2.4 KiB
Markdown
| Supported Targets | ESP32-S2 | ESP32-S3 |
|
|
| ----------------- | -------- | -------- |
|
|
|
|
# ULP-RISC-V Interrupt Handling:
|
|
|
|
This example demonstrates how the ULP-RISC-V coprocessor can register and handle interrupts. Currently this example supports handling of -
|
|
- Software triggered interrupts
|
|
- RTC IO triggered interrupts
|
|
|
|
The example keeps a count of the software interrupts triggered on the ULP RISC-V core and wakes up the main processor from deep sleep after a certain threshold.
|
|
Additionaly, it wakes up the main processor from deep sleep when a button is pressed and the GPIO interrupt is triggered.
|
|
|
|
## How to use example
|
|
|
|
### Hardware Required
|
|
|
|
The example can be run on any ESP32-S2 or ESP32-S3 based development board connected to a computer with a single USB cable for flashing and monitoring. The external interface should have 3.3V outputs. You may use e.g. 3.3V compatible USB-to-Serial dongle.
|
|
|
|
### Build and Flash
|
|
|
|
Build the project and flash it to the board, then run monitor tool to view serial output:
|
|
|
|
```
|
|
idf.py -p PORT flash monitor
|
|
```
|
|
|
|
(To exit the serial monitor, type ``Ctrl-]``.)
|
|
|
|
By default, this example uses GPIO#0 which is connected to the "Boot" button on esp32-s2/s3 development boards. To trigger the GPIO interrupt on the ULP RISC-V core, press the Boot button.
|
|
|
|
## Example Output
|
|
|
|
Output from main CPU:
|
|
|
|
```
|
|
Not a ULP RISC-V wakeup, initializing it!
|
|
Entering in deep sleep
|
|
|
|
ESP-ROM:esp32s3-20210327
|
|
Build:Mar 27 2021
|
|
rst:0x5 (DSLEEP),boot:0x8 (SPI_FAST_FLASH_BOOT)
|
|
pro cpu reset by JTAG
|
|
SPIWP:0xee
|
|
mode:DIO, clock div:1
|
|
load:0x3fce3810,len:0x12b4
|
|
load:0x403c9700,len:0x4
|
|
load:0x403c9704,len:0xaf4
|
|
load:0x403cc700,len:0x2bcc
|
|
entry 0x403c9898
|
|
W (91) spi_flash: Detected size(8192k) larger than the size in the binary image header(2048k). Using the size in the binary image header.
|
|
ULP RISC-V woke up the main CPU!
|
|
ULP RISC-V SW Interrupt triggered 5 times.
|
|
Entering in deep sleep
|
|
|
|
ESP-ROM:esp32s3-20210327
|
|
Build:Mar 27 2021
|
|
rst:0x5 (DSLEEP),boot:0x8 (SPI_FAST_FLASH_BOOT)
|
|
pro cpu reset by JTAG
|
|
SPIWP:0xee
|
|
mode:DIO, clock div:1
|
|
load:0x3fce3810,len:0x12b4
|
|
load:0x403c9700,len:0x4
|
|
load:0x403c9704,len:0xaf4
|
|
load:0x403cc700,len:0x2bcc
|
|
entry 0x403c9898
|
|
W (91) spi_flash: Detected size(8192k) larger than the size in the binary image header(2048k). Using the size in the binary image header.
|
|
ULP RISC-V woke up the main CPU!
|
|
ULP RISC-V GPIO Interrupt triggered.
|
|
Entering in deep sleep
|
|
|
|
```
|