From 44bfd8ae54ca019115d61ec40b8e70094ebae713 Mon Sep 17 00:00:00 2001 From: Martin Ayotte Date: Thu, 28 May 2015 17:20:49 -0400 Subject: [PATCH] fix SetupClock168() for Netduino2Plus + add STM32Stamp/Netduino2Plus boards + add dfuse_addr in upload --- STM32F4/boards.txt | 60 ++++++++++++++++++++++++++++ STM32F4/cores/maple/libmaple/rccF2.c | 4 ++ STM32F4/platform.txt | 3 +- tools/linux/maple_upload | 9 ++++- 4 files changed, 73 insertions(+), 3 deletions(-) diff --git a/STM32F4/boards.txt b/STM32F4/boards.txt index 689aff7..4c83f80 100644 --- a/STM32F4/boards.txt +++ b/STM32F4/boards.txt @@ -30,4 +30,64 @@ discovery_f407.build.error_led_pin=14 #discovery_f407.build.gcc_ver=gcc-arm-none-eabi-4.8.3-2014q1 ############################################################## +stm32f4stamp.name=STM32F4Stamp F405 + +stm32f4stamp.upload.tool=maple_upload +stm32f4stamp.upload.protocol=maple_dfu + +#stm32f4stamp.upload.use_1200bps_touch=false +stm32f4stamp.upload.file_type=bin +stm32f4stamp.upload.ram.maximum_size=196608 +stm32f4stamp.upload.flash.maximum_size=1048576 +stm32f4stamp.upload.maximum_size=1048576 + +stm32f4stamp.upload.usbID=0483:df11 +stm32f4stamp.upload.altID=0 +#stm32f4stamp.upload.auto_reset=true +stm32f4stamp.upload.dfuse_addr=0x8000000 + +stm32f4stamp.build.mcu=cortex-m4 +stm32f4stamp.build.f_cpu=168000000L +stm32f4stamp.build.core=maple +stm32f4stamp.build.extra_flags=-DMCU_STM32F406VG -mthumb -DSTM32_HIGH_DENSITY -march=armv7-m -DSTM32F2 -DBOARD_discovery_f4 +stm32f4stamp.build.ldscript=ld/jtag.ld +stm32f4stamp.build.variant=discovery_f407 +stm32f4stamp.build.variant_system_lib=lib_f407.a +stm32f4stamp.build.vect=VECT_TAB_BASE +stm32f4stamp.build.density=STM32_HIGH_DENSITY +stm32f4stamp.build.error_led_port=GPIOD +stm32f4stamp.build.error_led_pin=14 +#stm32f4stamp.build.gcc_ver=gcc-arm-none-eabi-4.8.3-2014q1 + +############################################################## +netduino2plus.name=Netduino2 F405 + +netduino2plus.upload.tool=maple_upload +netduino2plus.upload.protocol=maple_dfu + +#netduino2plus.upload.use_1200bps_touch=false +netduino2plus.upload.file_type=bin +netduino2plus.upload.ram.maximum_size=196608 +netduino2plus.upload.flash.maximum_size=1048576 +netduino2plus.upload.maximum_size=1048576 + +netduino2plus.upload.usbID=0483:df11 +netduino2plus.upload.altID=0 +#netduino2plus.upload.auto_reset=true +netduino2plus.upload.dfuse_addr=0x8000000 + +netduino2plus.build.mcu=cortex-m4 +netduino2plus.build.f_cpu=168000000L +netduino2plus.build.core=maple +netduino2plus.build.extra_flags=-DMCU_STM32F406VG -mthumb -DSTM32_HIGH_DENSITY -march=armv7-m -DSTM32F2 -DBOARD_discovery_f4 +netduino2plus.build.ldscript=ld/jtag.ld +netduino2plus.build.variant=discovery_f407 +netduino2plus.build.variant_system_lib=lib_f407.a +netduino2plus.build.vect=VECT_TAB_BASE +netduino2plus.build.density=STM32_HIGH_DENSITY +netduino2plus.build.error_led_port=GPIOD +netduino2plus.build.error_led_pin=14 +#netduino2plus.build.gcc_ver=gcc-arm-none-eabi-4.8.3-2014q1 + +############################################################## diff --git a/STM32F4/cores/maple/libmaple/rccF2.c b/STM32F4/cores/maple/libmaple/rccF2.c index 9ac8bcb..40816c4 100644 --- a/STM32F4/cores/maple/libmaple/rccF2.c +++ b/STM32F4/cores/maple/libmaple/rccF2.c @@ -360,7 +360,11 @@ void SetupClock168MHz() /******************************************************************************/ /************************* PLL Parameters *************************************/ /* PLL_VCO = (HSE_VALUE or HSI_VALUE / PLL_M) * PLL_N */ +#ifdef ARDUINO_STM32F4_NETDUINO2PLUS + int PLL_M = 25; // The NETDUINO has a 25MHz external oscillator +#else int PLL_M = 8; +#endif int PLL_N = 336; /* SYSCLK = PLL_VCO / PLL_P */ diff --git a/STM32F4/platform.txt b/STM32F4/platform.txt index 6b264a0..9ac8a78 100644 --- a/STM32F4/platform.txt +++ b/STM32F4/platform.txt @@ -105,10 +105,11 @@ tools.maple_upload.cmd.windows=maple_upload.bat #tools.maple_upload.cmd.linux= tools.maple_upload.path={runtime.hardware.path}/tools/win tools.maple_upload.path.macosx={runtime.hardware.path}/tools/macosx +tools.maple_upload.path.linux={runtime.hardware.path}/tools/linux tools.maple_upload.upload.params.verbose=-d tools.maple_upload.upload.params.quiet= -tools.maple_upload.upload.pattern="{path}/{cmd}" {serial.port.file} {upload.altID} {upload.usbID} "{build.path}/{build.project_name}.bin" +tools.maple_upload.upload.pattern="{path}/{cmd}" {serial.port.file} {upload.altID} {upload.usbID} "{build.path}/{build.project_name}.bin" {upload.dfuse_addr} # Generic STM32 upload via serial to Serial Port 1 (pins PA9 and PA10) - note. Boot0 line needs to high on board reset to enable upload via serial # at the end of the upload the program is automatically run, without the board being reset diff --git a/tools/linux/maple_upload b/tools/linux/maple_upload index e6caa7f..598c981 100755 --- a/tools/linux/maple_upload +++ b/tools/linux/maple_upload @@ -6,7 +6,12 @@ if [ $# -lt 4 ]; then echo "Usage: $0 $# " >&2 exit 1 fi -dummy_port=$1; altID=$2; usbID=$3; binfile=$4 +dummy_port=$1; altID=$2; usbID=$3; binfile=$4; +if [ $# -eq 5 ]; then + dfuse_addr="--dfuse-address $5" +else + dfuse_addr="" +fi #DFU_UTIL=$(dirname $0)/dfu-util/dfu-util DFU_UTIL=/usr/bin/dfu-util @@ -15,4 +20,4 @@ if [ ! -x ${DFU_UTIL} ]; then exit 2 fi -${DFU_UTIL} -d ${usbID} -a ${altID} -D ${binfile} +${DFU_UTIL} -d ${usbID} -a ${altID} -D ${binfile} ${dfuse_addr}