diff options
| author | chrysn <[email protected]> | 2024-04-19 15:22:57 +0200 |
|---|---|---|
| committer | chrysn <[email protected]> | 2024-04-19 15:22:57 +0200 |
| commit | e6bf6c7a49fbcf16253343fb2fbc4bdb1693c908 (patch) | |
| tree | 94e8da7dac3a6430af70b8b1aeca04265d563f0c /docs | |
| parent | 8fe88847d81afceaa55aa68662d4162d5c12f804 (diff) | |
| parent | da86c086510490602ffdd688760fb59cc7a1e524 (diff) | |
Merge branch 'main' into prep-embedded-nal-async-udp
Diffstat (limited to 'docs')
| -rw-r--r-- | docs/modules/ROOT/pages/faq.adoc | 31 | ||||
| -rw-r--r-- | docs/modules/ROOT/pages/layer_by_layer.adoc | 2 |
2 files changed, 32 insertions, 1 deletions
diff --git a/docs/modules/ROOT/pages/faq.adoc b/docs/modules/ROOT/pages/faq.adoc index c6b893de5..0944127a5 100644 --- a/docs/modules/ROOT/pages/faq.adoc +++ b/docs/modules/ROOT/pages/faq.adoc | |||
| @@ -231,3 +231,34 @@ Please refer to the STM32 documentation for the specific values suitable for you | |||
| 231 | Look for the `MEMORY` section and try to determine the FLASH and RAM sizes and section start. | 231 | Look for the `MEMORY` section and try to determine the FLASH and RAM sizes and section start. |
| 232 | 232 | ||
| 233 | If you find a case where the memory.x is wrong, please report it on [this Github issue](https://github.com/embassy-rs/stm32-data/issues/301) so other users are not caught by surprise. | 233 | If you find a case where the memory.x is wrong, please report it on [this Github issue](https://github.com/embassy-rs/stm32-data/issues/301) so other users are not caught by surprise. |
| 234 | |||
| 235 | == Known issues (details and/or mitigations) | ||
| 236 | |||
| 237 | These are issues that are commonly reported. Help wanted fixing them, or improving the UX when possible! | ||
| 238 | |||
| 239 | === STM32H5 and STM32H7 power issues | ||
| 240 | |||
| 241 | STM32 chips with built-in power management (SMPS and LDO) settings often cause user problems when the configuration does not match how the board was designed. | ||
| 242 | |||
| 243 | Settings from the examples, or even from other working boards, may not work on YOUR board, because they are wired differently. | ||
| 244 | |||
| 245 | Additionally, some PWR settings require a full device reboot (and enough time to discharge any power capacitors!), making this hard to troubleshoot. Also, some | ||
| 246 | "wrong" power settings will ALMOST work, meaning it will sometimes work on some boots, or for a while, but crash unexpectedly. | ||
| 247 | |||
| 248 | There is not a fix for this yet, as it is board/hardware dependant. See link:https://github.com/embassy-rs/embassy/issues/2806[this tracking issue] for more details | ||
| 249 | |||
| 250 | === STM32 BDMA only work out of some RAM regions | ||
| 251 | |||
| 252 | The STM32 BDMA controller included in some chips (TODO: list which ones) has a limitation in that it only works out of certain regions of RAM (TODO: list which ones), otherwise the transfer | ||
| 253 | will fail. | ||
| 254 | |||
| 255 | If you see errors that look like this: | ||
| 256 | |||
| 257 | [source,plain] | ||
| 258 | ---- | ||
| 259 | DMA: error on BDMA@1234ABCD channel 4 | ||
| 260 | ---- | ||
| 261 | |||
| 262 | You likely need to set up your linker script to define a special region for this area, and copy data to that region before using with BDMA. | ||
| 263 | |||
| 264 | TODO: show how to do that | ||
diff --git a/docs/modules/ROOT/pages/layer_by_layer.adoc b/docs/modules/ROOT/pages/layer_by_layer.adoc index 1d7bdc89b..fa419f75e 100644 --- a/docs/modules/ROOT/pages/layer_by_layer.adoc +++ b/docs/modules/ROOT/pages/layer_by_layer.adoc | |||
| @@ -63,7 +63,7 @@ Luckily, there is an elegant solution to this problem when using Embassy. | |||
| 63 | 63 | ||
| 64 | == Async version | 64 | == Async version |
| 65 | 65 | ||
| 66 | It's time to use the Embassy capabilities to its fullest. At the core, Embassy has an async excecutor, or a runtime for async tasks if you will. The executor polls a set of tasks (defined at compile time), and whenever a task `blocks`, the executor will run another task, or put the microcontroller to sleep. | 66 | It's time to use the Embassy capabilities to its fullest. At the core, Embassy has an async executor, or a runtime for async tasks if you will. The executor polls a set of tasks (defined at compile time), and whenever a task `blocks`, the executor will run another task, or put the microcontroller to sleep. |
| 67 | 67 | ||
| 68 | [source,rust] | 68 | [source,rust] |
| 69 | ---- | 69 | ---- |
