@@ -40,7 +40,7 @@ Create a new `idf_component.yml` in the project root directory, as follows:
4040# # IDF Component Manager Manifest File
4141dependencies :
4242 idf :
43- version : " >=4.1.0 "
43+ version : " >=4.4.4 "
4444 edgehog-esp32-device :
4545 version : " *" # this is the latest commit on the main branch
4646 git : https://github.com/edgehog-device-manager/edgehog-esp32-device.git
@@ -56,6 +56,38 @@ dependencies:
5656idf.py build
5757```
5858
59+ ## Component Free RTOS APIs usage
60+
61+ The Edgehog ESP32 Device interacts internally with the Free RTOS APIs. As such some factors
62+ should be taken into account when integrating this component in a larger system.
63+
64+ The following ** tasks** are spawned directly by the Edgehog ESP32 Device:
65+ - ` BLINK TASK ` : Provides functionality for visual feedback using an on board LED.
66+ It is only spawned if ` CONFIG_INDICATOR_GPIO_ENABLE ` is set in the Edgehog ESP32 device
67+ configuration, will use ` 2048 ` words from the stack, and can be triggered by a publish from the
68+ Astarte cluster to the dedicated LED interface. This task has a fixed duration and will be deleted
69+ at timeout.
70+ - ` OTA UPDATE TASK ` : Provides functionality for OTA updates.
71+ It will use ` 4096 ` words from the stack, and can be triggered by a publish from the
72+ Astarte cluster to the dedicated OTA update interface. This task does not have a fixed duration, it
73+ will run untill a successful OTA update has been downloaded and flashed or the procedure failed.
74+ Note that the OTA update task could restart the device.
75+
76+ All of the tasks are spawned with the lowest priority and rely on the time slicing functionality
77+ of freertos to run concurrently with the main task.
78+
79+ Other than tasks, a certain number of ** software timers** are also created to be used for telemetry.
80+ The actual number of timers that this component is going to use will depend on the
81+ telemetry configuration of your project. Each telemetry type will create a separate timer.
82+ Software timers run all in a single task instantiated by freertos. The stack size and priority for
83+ such task should be configured in the project using this component.
84+ This module has been tested using ` 2048 ` words for the stack size and a priority of ` 1 ` for the
85+ timer task.
86+
87+ In addition to what stated above, this component requires an Astarte ESP32 Device to be externally
88+ instantiated and provided in its configuration struct. The Astarte ESP32 Device interacts internally
89+ with the Free RTOS APIs and its resource usage should be evaluated separately.
90+
5991## Resources
6092
6193* [ ESP32 Component Documentation] ( https://edgehog-device-manager.github.io/docs/snapshot/device-sdks/esp32/ )
0 commit comments