From f331e5a10dc94f9bda20cfcd1c3b348f0ba4cb27 Mon Sep 17 00:00:00 2001 From: bnewbold Date: Sat, 11 Jun 2016 17:32:25 -0400 Subject: merge stm32 stuff into a proper page --- electronics/stm32.page | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 electronics/stm32.page (limited to 'electronics/stm32.page') 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: + + +"STM32/ARM Cortex-M3 HOWTO: Development under Ubuntu (Debian)" (from fun-tech.se: + -- cgit v1.2.3