-
Notifications
You must be signed in to change notification settings - Fork 43
Article update: Enabling External PSRAM for Zephyr Applications on ESP32 SoCs #434
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Article update: Enabling External PSRAM for Zephyr Applications on ESP32 SoCs #434
Conversation
| in | ||
| ## Placing Task Stack in PSRAM | ||
|
|
||
| Another way to to take advantage of PSRAM is by placing Zephyr's task stacks in the `.ext_ram.bss` section via `Z_KERNEL_STACK_DEFINE_IN()` with its trhird parameter `lsect` being `__attribute__((section(".ext_ram.bss")))`. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
trhird -> third
| $ west espressif monitor | ||
| ``` | ||
|
|
||
| Here is the log emmited by your board: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
emmited -> emitted
d83d5e3 to
f5eafba
Compare
| in | ||
| ## Placing Task Stack in PSRAM | ||
|
|
||
| Another way to to take advantage of PSRAM is by placing Zephyr's task stacks in the `.ext_ram.bss` section via `Z_KERNEL_STACK_DEFINE_IN()` with its thrird parameter `lsect` being `__attribute__((section(".ext_ram.bss")))`. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think there's still an extra "r":
thrird -> third
|
|
||
| Another way to to take advantage of PSRAM is by placing Zephyr's task stacks in the `.ext_ram.bss` section via `Z_KERNEL_STACK_DEFINE_IN()` with its thrird parameter `lsect` being `__attribute__((section(".ext_ram.bss")))`. | ||
|
|
||
| >__Note:__ Be careful before deciding to put your task stacks in PSRAM: When flash cache is disabled (for example, if the flash is being written to), the external RAM also becomes inaccessible. Any read operations from or write operations to it will lead to an illegal cache access exception. You can find more restrictions regarding to the use of external RAM use [here](https://docs.espressif.com/projects/esp-idf/en/stable/esp32s3/api-guides/external-ram.html#restrictions) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
regarding the use (remove "to") and the last use (after), RAM (for redundancy):
"You can find more restrictions regarding the use of external RAM [here]"
This work comes to update necessary details to use PSRAM with more recent Zephyr versions. It also updates the log results to be consistent with those observed when running the samples with more recent Zephyr versions. This work also adds a session explaining how to place Zephyr's task stacks in external RAM and the associated risks. Signed-off-by: Marcio Ribeiro <[email protected]>
f5eafba to
f8cb8d6
Compare
|
Hi @wmrsouza, thanks for this update. Can we merge? |
Yes, we can |
This PR comes to update necesary details to use PSRAM with more recent Zephyr versions. It also updates the log results to be consistent with those observed when running the samples with more recent Zephyr versions.
This work also adds a session explaining how to place Zephyr's task stacks in external RAM and the associated risks.