mirror of
https://github.com/pascallanger/DIY-Multiprotocol-TX-Module.git
synced 2025-02-04 19:58:13 +00:00
Adding stm32 auto-upload scripts for Windows, Mac, and Linux (#184)
This commit is contained in:
parent
1dc52773f4
commit
685de52538
Binary file not shown.
@ -16,7 +16,7 @@ multistm32f103c.pid.0=0x0004
|
||||
multistm32f103c.build.variant=generic_stm32f103c
|
||||
multistm32f103c.build.vect=VECT_TAB_ADDR=0x8000000
|
||||
multistm32f103c.build.core=maple
|
||||
multistm32f103c.build.board=MULTI_STM32_FLASH_FROM_TX=104
|
||||
multistm32f103c.build.board=MULTI_STM32_FLASH_FROM_TX=108
|
||||
multistm32f103c.upload.use_1200bps_touch=false
|
||||
multistm32f103c.upload.file_type=bin
|
||||
multistm32f103c.upload.auto_reset=true
|
||||
@ -37,15 +37,23 @@ multistm32f103c.bootloader.tool=serial_upload
|
||||
#---------------------------- UPLOAD METHODS ---------------------------
|
||||
|
||||
multistm32f103c.menu.upload_method.TxFlashMethod=Flash from Tx
|
||||
multistm32f103c.menu.upload_method.TxFlashMethod.build.board=MULTI_STM32_FLASH_FROM_TX=107
|
||||
multistm32f103c.menu.upload_method.TxFlashMethod.build.board=MULTI_STM32_FLASH_FROM_TX=108
|
||||
multistm32f103c.menu.upload_method.TxFlashMethod.upload.tool=tx_upload
|
||||
multistm32f103c.menu.upload_method.TxFlashMethod.build.upload_flags=-DSERIAL_USB -DGENERIC_BOOTLOADER
|
||||
multistm32f103c.menu.upload_method.TxFlashMethod.build.vect=VECT_TAB_ADDR=0x8002000
|
||||
multistm32f103c.menu.upload_method.TxFlashMethod.build.ldscript=ld/bootloader_20.ld
|
||||
multistm32f103c.menu.upload_method.TxFlashMethod.bootloader.file=Multi4in1/StmMulti4in1.bin
|
||||
|
||||
multistm32f103c.menu.upload_method.AutoFlashMethod=Auto Detect (USB or Serial)
|
||||
multistm32f103c.menu.upload_method.AutoFlashMethod.build.board=MULTI_STM32_WITH_BOOT=108
|
||||
multistm32f103c.menu.upload_method.AutoFlashMethod.upload.tool=auto_upload
|
||||
multistm32f103c.menu.upload_method.AutoFlashMethod.build.upload_flags=-DSERIAL_USB -DGENERIC_BOOTLOADER
|
||||
multistm32f103c.menu.upload_method.AutoFlashMethod.build.vect=VECT_TAB_ADDR=0x8002000
|
||||
multistm32f103c.menu.upload_method.AutoFlashMethod.build.ldscript=ld/bootloader_20.ld
|
||||
multistm32f103c.menu.upload_method.AutoFlashMethod.bootloader.file=Multi4in1/StmMulti4in1.bin
|
||||
|
||||
multistm32f103c.menu.upload_method.DFUUploadMethod=Upload via USB
|
||||
multistm32f103c.menu.upload_method.DFUUploadMethod.build.board=MULTI_STM32_NO_BOOT=107
|
||||
multistm32f103c.menu.upload_method.DFUUploadMethod.build.board=MULTI_STM32_NO_BOOT=108
|
||||
multistm32f103c.menu.upload_method.DFUUploadMethod.upload.protocol=maple_dfu
|
||||
multistm32f103c.menu.upload_method.DFUUploadMethod.upload.tool=maple_upload
|
||||
multistm32f103c.menu.upload_method.DFUUploadMethod.build.upload_flags=-DSERIAL_USB -DGENERIC_BOOTLOADER
|
||||
@ -56,7 +64,7 @@ multistm32f103c.menu.upload_method.DFUUploadMethod.upload.altID=2
|
||||
multistm32f103c.menu.upload_method.DFUUploadMethod.bootloader.file=Multi4in1/StmMulti4in1.bin
|
||||
|
||||
multistm32f103c.menu.upload_method.serialIncBootloaderMethod=Upload via Serial inc. Bootloader (FTDI)
|
||||
multistm32f103c.menu.upload_method.serialIncBootloaderMethod.build.board=MULTI_STM32_WITH_BOOT=107
|
||||
multistm32f103c.menu.upload_method.serialIncBootloaderMethod.build.board=MULTI_STM32_WITH_BOOT=108
|
||||
multistm32f103c.menu.upload_method.serialIncBootloaderMethod.upload.protocol=maple_serial
|
||||
multistm32f103c.menu.upload_method.serialIncBootloaderMethod.upload.tool=serial_upload_inc_bootloader
|
||||
multistm32f103c.menu.upload_method.serialIncBootloaderMethod.build.upload_flags=-DSERIAL_USB -DGENERIC_BOOTLOADER
|
||||
@ -68,7 +76,7 @@ multistm32f103c.menu.upload_method.serialMethod=Upload via Serial (FTDI)
|
||||
multistm32f103c.menu.upload_method.serialMethod.upload.protocol=maple_serial
|
||||
multistm32f103c.menu.upload_method.serialMethod.upload.tool=serial_upload
|
||||
multistm32f103c.menu.upload_method.serialMethod.build.upload_flags=-DCONFIG_MAPLE_MINI_NO_DISABLE_DEBUG
|
||||
multistm32f103c.menu.upload_method.serialMethod.build.board=MULTI_STM32_NO_BOOT=107
|
||||
multistm32f103c.menu.upload_method.serialMethod.build.board=MULTI_STM32_NO_BOOT=108
|
||||
multistm32f103c.menu.upload_method.serialMethod.bootloader.file=Multi4in1/StmMulti4in1.bin
|
||||
|
||||
##############################################################
|
||||
|
@ -6,7 +6,7 @@
|
||||
# https://github.com/arduino/Arduino/wiki/Arduino-IDE-1.5---3rd-party-Hardware-specification
|
||||
|
||||
name=Multi 4-in-1 STM32
|
||||
version=1.0.7
|
||||
version=1.0.8
|
||||
|
||||
compiler.warning_flags=-w -DDEBUG_LEVEL=DEBUG_NONE
|
||||
compiler.warning_flags.none=-w -DDEBUG_LEVEL=DEBUG_NONE
|
||||
@ -117,6 +117,17 @@ recipe.hooks.savehex.postsavehex.01.pattern.macosx="{runtime.platform.path}/tool
|
||||
# Uploader tools
|
||||
# -------------------
|
||||
|
||||
# Automatically detect upload method (USB or serial)
|
||||
tools.auto_upload.cmd=auto_upload
|
||||
tools.auto_upload.cmd.windows=auto_upload.bat
|
||||
tools.auto_upload.path={runtime.platform.path}/tools/win
|
||||
tools.auto_upload.path.macosx={runtime.platform.path}/tools/macosx
|
||||
tools.auto_upload.path.linux={runtime.platform.path}/tools/linux
|
||||
tools.auto_upload.path.linux64={runtime.platform.path}/tools/linux64
|
||||
tools.auto_upload.upload.params.verbose=-d
|
||||
tools.auto_upload.upload.params.quiet=
|
||||
tools.auto_upload.upload.pattern="{path}/{cmd}" {serial.port.file} "{build.path}/{build.project_name}.bin" "{runtime.platform.path}/bootloaders/{bootloader.file}"
|
||||
|
||||
# Upload using Maple bootloader over DFU
|
||||
tools.maple_upload.cmd=maple_upload
|
||||
tools.maple_upload.cmd.windows=maple_upload.bat
|
||||
|
45
BootLoaders/Boards/stm32/tools/linux/auto_upload
Executable file
45
BootLoaders/Boards/stm32/tools/linux/auto_upload
Executable file
@ -0,0 +1,45 @@
|
||||
#!/bin/bash
|
||||
#set -e
|
||||
|
||||
function leaf_status()
|
||||
{
|
||||
this_leaf_status=$(lsusb |grep "1eaf" | awk '{ print $NF}')
|
||||
# Find the mode of the leaf bootloader
|
||||
case $this_leaf_status in
|
||||
"1eaf:0003")
|
||||
echo "dfu"
|
||||
;;
|
||||
"1eaf:0004")
|
||||
echo "ttyACMx"
|
||||
;;
|
||||
*)
|
||||
#echo "$this_leaf_status"
|
||||
echo "unknown"
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
# Get the directory where the script is running.
|
||||
DIR=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )
|
||||
|
||||
# Check to see if a maple compatible board is attached
|
||||
LEAF_STATUS=$(leaf_status)
|
||||
|
||||
# Board not found, or no boot loader on board.
|
||||
if [[ $(leaf_status) = "unknown" ]]
|
||||
then
|
||||
# No maple board detected
|
||||
echo "Maple device not found. Attempting serial upload."
|
||||
SERIAL_UPLOAD=${DIR}/serial_upload_inc_bootloader
|
||||
echo "${SERIAL_UPLOAD}" $1 0x8000000 $2 $3
|
||||
"${SERIAL_UPLOAD}" $1 0x8000000 $2 $3
|
||||
|
||||
else
|
||||
# Maple board detected
|
||||
echo "Maple device found. Attempting USB upload."
|
||||
|
||||
MAPLE_UPLOAD=${DIR}/maple_upload
|
||||
echo "${MAPLE_UPLOAD}" $1 2 1eaf:0003 $2
|
||||
"${MAPLE_UPLOAD}" $1 2 1eaf:0003 $2
|
||||
fi
|
||||
|
@ -37,6 +37,8 @@ fi
|
||||
|
||||
"${RESET_UTIL}" ${dummy_port_fullpath} 750
|
||||
|
||||
# Give the board a chance to reset to DFU mode
|
||||
sleep 0.5
|
||||
|
||||
#DFU_UTIL=$(dirname $0)/dfu-util/dfu-util
|
||||
DFU_UTIL=/usr/bin/dfu-util
|
||||
|
@ -1,5 +1,5 @@
|
||||
ATTRS{idProduct}=="1001", ATTRS{idVendor}=="0110", MODE="664", GROUP="plugdev"
|
||||
ATTRS{idProduct}=="1002", ATTRS{idVendor}=="0110", MODE="664", GROUP="plugdev"
|
||||
ATTRS{idProduct}=="0003", ATTRS{idVendor}=="1eaf", MODE="664", GROUP="plugdev" SYMLINK+="maple"
|
||||
ATTRS{idProduct}=="0004", ATTRS{idVendor}=="1eaf", MODE="664", GROUP="plugdev" SYMLINK+="maple"
|
||||
ATTRS{idProduct}=="0003", ATTRS{idVendor}=="1eaf", MODE="664", GROUP="plugdev" SYMLINK+="maple", ENV{ID_MM_DEVICE_IGNORE}="1"
|
||||
ATTRS{idProduct}=="0004", ATTRS{idVendor}=="1eaf", MODE="664", GROUP="plugdev" SYMLINK+="maple", ENV{ID_MM_DEVICE_IGNORE}="1"
|
||||
|
||||
|
67
BootLoaders/Boards/stm32/tools/macosx/auto_upload
Executable file
67
BootLoaders/Boards/stm32/tools/macosx/auto_upload
Executable file
@ -0,0 +1,67 @@
|
||||
#!/bin/bash
|
||||
shopt -s extglob
|
||||
|
||||
function list_usb()
|
||||
{
|
||||
while IFS=: read key value; do
|
||||
key="${key##+( )}"
|
||||
value="${value##+( )}"
|
||||
case "$key" in
|
||||
"Product ID")
|
||||
p="${value% *}"
|
||||
;;
|
||||
"Vendor ID")
|
||||
v="${value%% *}"
|
||||
;;
|
||||
"Manufacturer")
|
||||
m="${value}"
|
||||
;;
|
||||
"Location ID")
|
||||
l="${value}"
|
||||
printf "%s:%s %s (%s)\n" "$v" "$p" "$l" "$m"
|
||||
;;
|
||||
esac
|
||||
done < <( system_profiler SPUSBDataType )
|
||||
}
|
||||
|
||||
function leaf_status()
|
||||
{
|
||||
this_leaf_status=$(echo "$(list_usb)" | grep "1eaf" | awk '{ print $1}')
|
||||
# Find the mode of the leaf bootloader
|
||||
case $this_leaf_status in
|
||||
"0x1eaf:0x0003")
|
||||
echo "dfu"
|
||||
;;
|
||||
"0x1eaf:0x0004")
|
||||
echo "ttyACMx"
|
||||
;;
|
||||
*)
|
||||
# echo "$this_leaf_status"
|
||||
echo "unknown"
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
# Get the directory where the script is running.
|
||||
DIR=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )
|
||||
|
||||
# Check to see if a maple compatible board is attached
|
||||
LEAF_STATUS=$(leaf_status)
|
||||
|
||||
# Board not found, or no boot loader on board.
|
||||
if [[ $(leaf_status) = "unknown" ]]
|
||||
then
|
||||
# No maple board detected
|
||||
echo "Maple device not found. Attempting serial upload."
|
||||
SERIAL_UPLOAD=${DIR}/serial_upload_inc_bootloader
|
||||
echo "${SERIAL_UPLOAD}" $1 0x8000000 $2 $3
|
||||
"${SERIAL_UPLOAD}" $1 0x8000000 $2 $3
|
||||
|
||||
else
|
||||
# Maple board detected
|
||||
echo "Maple device found. Attempting USB upload."
|
||||
|
||||
MAPLE_UPLOAD=${DIR}/maple_upload
|
||||
echo "${MAPLE_UPLOAD}" $1 2 1eaf:0003 $2
|
||||
"${MAPLE_UPLOAD}" $1 2 1eaf:0003 $2
|
||||
fi
|
@ -33,6 +33,9 @@ DIR=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )
|
||||
|
||||
${DIR}/upload-reset ${dummy_port_fullpath} 750
|
||||
|
||||
# Give the board a chance to reset to DFU mode
|
||||
sleep 0.5
|
||||
|
||||
if [ $# -eq 5 ]; then
|
||||
dfuse_addr="--dfuse-address $5"
|
||||
else
|
||||
|
69
BootLoaders/Boards/stm32/tools/win/auto_upload.bat
Normal file
69
BootLoaders/Boards/stm32/tools/win/auto_upload.bat
Normal file
@ -0,0 +1,69 @@
|
||||
@echo off
|
||||
REM Script to automatically select upload method for stm32-based multi-protocol module.
|
||||
|
||||
set driverLetter=%~dp0
|
||||
set driverLetter=%driverLetter:~0,2%
|
||||
%driverLetter%
|
||||
cd %~dp0
|
||||
|
||||
set comport=%1
|
||||
|
||||
set fwpath=%2
|
||||
set fwpath=%fwpath:/=\%
|
||||
|
||||
set blpath=%3
|
||||
set blpath=%blpath:/=\%
|
||||
|
||||
:MAPLE_CHECK
|
||||
REM Look for a Maple USB device
|
||||
ECHO.
|
||||
ECHO Looking for Maple device ...
|
||||
maple_find.exe
|
||||
ECHO.
|
||||
|
||||
if %errorlevel% equ 0 (
|
||||
GOTO USB_FLASH
|
||||
) else (
|
||||
GOTO FTDI_CHECK
|
||||
)
|
||||
|
||||
:USB_FLASH
|
||||
ECHO Attempting to flash module via Maple USB ...
|
||||
ECHO java -jar maple_loader.jar %comport% 2 "1EAF:0003" "%fwpath%"
|
||||
java -jar maple_loader.jar %comport% 2 "1EAF:0003" "%fwpath%"
|
||||
ECHO.
|
||||
ECHO Done.
|
||||
ECHO.
|
||||
GOTO :EOF
|
||||
|
||||
:FTDI_CHECK
|
||||
REM Attempt to read from the STM module via the specified serial port
|
||||
ECHO Probing serial port %comport% for STM32 in BOOT0 mode ...
|
||||
stm32flash.exe -b 115200 %comport%
|
||||
|
||||
if %errorlevel% equ 0 (
|
||||
ECHO Found module on %comport%
|
||||
GOTO FTDI_FLASH
|
||||
) ELSE (
|
||||
ECHO Module in BOOT0 mode not found on %comport%
|
||||
GOTO :EOF
|
||||
)
|
||||
|
||||
:FTDI_FLASH
|
||||
ECHO.
|
||||
ECHO Flashing module via FTDI adapter on %comport%
|
||||
ECHO.
|
||||
ECHO Erasing ...
|
||||
ECHO stm32flash.exe -o -b 115200 %comport%
|
||||
stm32flash.exe -o -b 115200 %comport%
|
||||
|
||||
ECHO Writing bootloader ...
|
||||
ECHO stm32flash.exe -v -g 0x8000000 -b 115200 -w %blpath% %comport%
|
||||
stm32flash.exe -v -g 0x8000000 -b 115200 -w %blpath% %comport%
|
||||
|
||||
ECHO Writing Multi firmware ...
|
||||
ECHO stm32flash.exe -v -s 8 -e 0 -g 0x8002000 -b 115200 -w %fwpath% %comport%
|
||||
stm32flash.exe -v -s 8 -e 0 -g 0x8002000 -b 115200 -w %fwpath% %comport%
|
||||
ECHO.
|
||||
ECHO Done.
|
||||
GOTO :EOF
|
BIN
BootLoaders/Boards/stm32/tools/win/maple_find.exe
Normal file
BIN
BootLoaders/Boards/stm32/tools/win/maple_find.exe
Normal file
Binary file not shown.
@ -245,6 +245,27 @@
|
||||
"version": "4.8.3-2014q1"
|
||||
}]
|
||||
},
|
||||
{
|
||||
"name": "Multi 4-in-1 STM32 Board",
|
||||
"architecture": "STM32F1",
|
||||
"version": "1.0.8",
|
||||
"category": "Contributed",
|
||||
"help": {
|
||||
"online": "https://github.com/pascallanger/DIY-Multiprotocol-TX-Module"
|
||||
},
|
||||
"url": "https://github.com/pascallanger/DIY-Multiprotocol-TX-Module/raw/master/BootLoaders/Archives/package_multi_4in1_stm32_board_v1.0.8.tar.gz",
|
||||
"archiveFileName": "package_multi_4in1_stm32_board_v1.0.8.tar.gz",
|
||||
"checksum": "SHA-256:f8100272ec615074cf7962c2c8331014ebda78f3e4c17172b88b6dd3d83c4331",
|
||||
"size": "10319134",
|
||||
"boards": [{
|
||||
"name": "Multi 4-in-1 (STM32F103C)"
|
||||
}],
|
||||
"toolsDependencies": [{
|
||||
"packager": "arduino",
|
||||
"name": "arm-none-eabi-gcc",
|
||||
"version": "4.8.3-2014q1"
|
||||
}]
|
||||
},
|
||||
{
|
||||
"name": "Multi 4-in-1 OrangeRX Board - DEPRECATED, USE MULTI 4-IN-1 AVR BOARDS PACKAGE INSTEAD",
|
||||
"architecture": "orangerx",
|
||||
|
Loading…
x
Reference in New Issue
Block a user