summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHierophect <hierophect@gmail.com>2020-01-13 17:24:52 -0500
committerHierophect <hierophect@gmail.com>2020-01-13 17:24:52 -0500
commitde2379bc30534c402836881b2e9b25dada41ca41 (patch)
tree6b02044453c94ec3c0543b5563b94f780d2db3c7
parent1544d60000bcf49aae507e4dc0d9e4061163d37a (diff)
minor WIP debug edits
-rwxr-xr-xports/stm32f4/Makefile5
-rw-r--r--ports/stm32f4/boards/meowbit_v121/mpconfigboard.mk4
-rw-r--r--ports/stm32f4/boards/openocd_stm32f4.cfg44
-rw-r--r--ports/stm32f4/supervisor/usb.c1
4 files changed, 50 insertions, 4 deletions
diff --git a/ports/stm32f4/Makefile b/ports/stm32f4/Makefile
index 93cde6737..c3eb4aa3b 100755
--- a/ports/stm32f4/Makefile
+++ b/ports/stm32f4/Makefile
@@ -22,7 +22,7 @@
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
# THE SOFTWARE.
-DEBUG = 1
+#DEBUG = 1
# Select the board to build for.
ifeq ($(BOARD),)
@@ -85,6 +85,7 @@ ifeq ($(DEBUG), 1)
CFLAGS += -fno-inline -fno-ipa-sra
else
CFLAGS += -Os -DNDEBUG
+ CFLAGS += -ggdb
# TODO: Test with -flto
### CFLAGS += -flto
endif
@@ -256,7 +257,7 @@ $(BUILD)/firmware.hex: $(BUILD)/firmware.elf
$(BUILD)/firmware.uf2: $(BUILD)/firmware.hex
$(ECHO) "Create $@"
- $(PYTHON3) $(TOP)/tools/uf2/utils/uf2conv.py -f 0x57755a57 -b 0x08000000 -c -o "$(BUILD)/firmware.uf2" $^
+ $(PYTHON3) $(TOP)/tools/uf2/utils/uf2conv.py -f 0x57755a57 -b 0x08010000 -c -o "$(BUILD)/firmware.uf2" $^
include $(TOP)/py/mkrules.mk
diff --git a/ports/stm32f4/boards/meowbit_v121/mpconfigboard.mk b/ports/stm32f4/boards/meowbit_v121/mpconfigboard.mk
index e8a257983..c033d1d4b 100644
--- a/ports/stm32f4/boards/meowbit_v121/mpconfigboard.mk
+++ b/ports/stm32f4/boards/meowbit_v121/mpconfigboard.mk
@@ -17,5 +17,5 @@ MCU_VARIANT = stm32f4
MCU_SUB_VARIANT = stm32f401xe
MCU_PACKAGE = 64
CMSIS_MCU = STM32F401xE
-# LD_FILE = boards/STM32F401_boot.ld
-LD_FILE = boards/STM32F401_fs.ld \ No newline at end of file
+LD_FILE = boards/STM32F401_boot.ld
+#LD_FILE = boards/STM32F401_fs.ld \ No newline at end of file
diff --git a/ports/stm32f4/boards/openocd_stm32f4.cfg b/ports/stm32f4/boards/openocd_stm32f4.cfg
new file mode 100644
index 000000000..19631a7c8
--- /dev/null
+++ b/ports/stm32f4/boards/openocd_stm32f4.cfg
@@ -0,0 +1,44 @@
+# This script configures OpenOCD for use with an ST-Link V2 programmer/debugger
+# and an STM32F4 target microcontroller.
+#
+# To flash your firmware:
+#
+# $ openocd -f openocd_stm32f4.cfg \
+# -c "stm_flash build-BOARD/firmware0.bin 0x08000000 build-BOARD/firmware1.bin 0x08020000"
+#
+# For a gdb server on port 3333:
+#
+# $ openocd -f openocd_stm32f4.cfg
+
+
+source [find interface/stlink-v2.cfg]
+transport select hla_swd
+source [find target/stm32f4x.cfg]
+reset_config srst_only
+init
+
+proc stm_flash { BIN0 ADDR0 {BIN1 ""} {ADDR1 ""} } {
+ reset halt
+ sleep 100
+ wait_halt 2
+ flash write_image erase $BIN0 $ADDR0
+ sleep 100
+ verify_image $BIN0 $ADDR0
+ sleep 100
+ if {$BIN1 ne ""} {
+ flash write_image erase $BIN1 $ADDR1
+ sleep 100
+ verify_image $BIN1 $ADDR1
+ sleep 100
+ }
+ reset run
+ shutdown
+}
+
+proc stm_erase {} {
+ reset halt
+ sleep 100
+ stm32f4x mass_erase 0
+ sleep 100
+ shutdown
+}
diff --git a/ports/stm32f4/supervisor/usb.c b/ports/stm32f4/supervisor/usb.c
index 5733527c2..afafe26a9 100644
--- a/ports/stm32f4/supervisor/usb.c
+++ b/ports/stm32f4/supervisor/usb.c
@@ -105,6 +105,7 @@ void init_usb_hardware(void) {
#endif
/* Peripheral clock enable */
+ __HAL_RCC_USB_OTG_FS_CLK_DISABLE();
__HAL_RCC_USB_OTG_FS_CLK_ENABLE();
init_usb_vbus_sense();