summaryrefslogtreecommitdiffstats
path: root/electronics/stm32.page
diff options
context:
space:
mode:
authorbnewbold <bnewbold@robocracy.org>2016-06-11 17:32:25 -0400
committerbnewbold <bnewbold@robocracy.org>2016-06-11 17:32:25 -0400
commitf331e5a10dc94f9bda20cfcd1c3b348f0ba4cb27 (patch)
tree7de06fe7b69e6ab916be5d59fab9f1cba3dcbd65 /electronics/stm32.page
parenta660a46cc0b455d6506f0a26e481492fe339c69e (diff)
downloadknowledge-f331e5a10dc94f9bda20cfcd1c3b348f0ba4cb27.tar.gz
knowledge-f331e5a10dc94f9bda20cfcd1c3b348f0ba4cb27.zip
merge stm32 stuff into a proper page
Diffstat (limited to 'electronics/stm32.page')
-rw-r--r--electronics/stm32.page52
1 files changed, 52 insertions, 0 deletions
diff --git a/electronics/stm32.page b/electronics/stm32.page
new file mode 100644
index 0000000..4c1c200
--- /dev/null
+++ b/electronics/stm32.page
@@ -0,0 +1,52 @@
+
+Memory Utilization
+=====================
+
+`text` is what ends up in flash (only).
+`data` is initialized variables: need to be storad in flash, then end up in RAM.
+`bss` is uninitialized data: nothing in flash, but does consume RAM.
+
+The `-x --format=sysv` flags to `arm-none-eabi-size` can be helpful.
+
+Debugging
+================
+
+Access all registers:
+
+ (gdb) x/x 0xE000ED14
+ 0xe000ed14: Cannot access memory at address 0xe000ed14
+ (gdb)
+ 0xe000ed18: Cannot access memory at address 0xe000ed18
+ (gdb) show mem inaccessible-by-default
+ Unknown memory addresses will be treated as inaccessible.
+ (gdb) set mem inaccessible-by-default off
+ (gdb) x/x 0xE000ED14
+ 0xe000ed14: 0x00000200
+
+Uploading via SWD
+====================
+
+`upload_blackmagic.sh`:
+
+ #!/bin/bash
+ arm-none-eabi-gdb build/stm32f401cc_project.elf < load_blackmagic.gdb
+ sleep 1.0
+
+`load_blackmagic.gdb`:
+
+ target extended-remote /dev/ttyACM0
+ monitor swdp_scan
+ attach 1
+ load
+ quit
+
+References
+=============
+
+Keil Application Note 209: Using Cortex-M3 and Cortex-M4 Fault Exceptions
+
+ARM Cortex-M3 HardFault Status Register Documentation:
+<http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0553a/Cihdjcfc.html>
+
+"STM32/ARM Cortex-M3 HOWTO: Development under Ubuntu (Debian)" (from fun-tech.se:
+<http://fun-tech.se/stm32/)>