|
|
|
@ -193,6 +193,8 @@ OOCD_INTERFACE = ENV["OOCD_INTERFACE"] || (SWD_ADAPTER=="STLINKV2" ? "stlink" : |
|
|
|
|
OOCD_TARGET = "stm32f1x" |
|
|
|
|
# Black Magic Probe port |
|
|
|
|
BMP_PORT = ENV["BMP_PORT"] || "/dev/ttyACM0" |
|
|
|
|
# set CPUTAPID (0x1ba01477 for STM32, 0x2ba01477 for CKS32/APM32) |
|
|
|
|
CPUTAPID = ENV["CPUTAPID"] || "0x1ba01477" |
|
|
|
|
|
|
|
|
|
desc "flash application using USB DFU" |
|
|
|
|
task :flash => APPLICATION+".bin" do |t| |
|
|
|
@ -203,7 +205,7 @@ desc "remove STM32F1 protection using SWD" |
|
|
|
|
task :remove_protection do |
|
|
|
|
case SWD_ADAPTER |
|
|
|
|
when "STLINKV2" |
|
|
|
|
sh "#{OOCD} --file interface/#{OOCD_INTERFACE}.cfg --file target/#{OOCD_TARGET}.cfg --command 'init' --command 'halt' --command 'reset init' --command 'stm32f1x unlock 0' --command 'reset init' --command 'flash protect 0 0 last off' --command 'reset init' --command 'stm32f1x options_write 0 SWWDG NORSTSTNDBY NORSTSTOP' --command 'reset init' --command 'stm32f1x mass_erase 0' --command 'shutdown'" |
|
|
|
|
sh "#{OOCD} --file interface/#{OOCD_INTERFACE}.cfg --command 'transport select hla_swd' --command 'set CPUTAPID #{CPUTAPID}' --file target/#{OOCD_TARGET}.cfg --command 'init' --command 'halt' --command 'reset init' --command 'stm32f1x unlock 0' --command 'reset init' --command 'flash protect 0 0 last off' --command 'reset init' --command 'stm32f1x options_write 0 SWWDG NORSTSTNDBY NORSTSTOP' --command 'reset init' --command 'stm32f1x mass_erase 0' --command 'shutdown'" |
|
|
|
|
when "BMP" |
|
|
|
|
sh "#{GDB} --eval-command='target extended-remote #{BMP_PORT}' --eval-command='set confirm off' --eval-command='monitor swdp_scan' --eval-command='attach 1' --eval-command='monitor option erase' --eval-command='monitor erase_mass' --eval-command='kill' --eval-command='quit'" |
|
|
|
|
end |
|
|
|
@ -213,7 +215,7 @@ desc "flash bootloader using SWD" |
|
|
|
|
task :flash_bootloader => BOOTLOADER+".hex" do |t| |
|
|
|
|
case SWD_ADAPTER |
|
|
|
|
when "STLINKV2" |
|
|
|
|
sh "#{OOCD} --file interface/#{OOCD_INTERFACE}.cfg --file target/#{OOCD_TARGET}.cfg --command 'init' --command 'halt' --command 'reset init' --command 'flash erase_sector 0 0 last' --command 'flash write_image erase #{t.source}' --command 'reset' --command 'shutdown'" |
|
|
|
|
sh "#{OOCD} --file interface/#{OOCD_INTERFACE}.cfg --command 'transport select hla_swd' --command 'set CPUTAPID #{CPUTAPID}' --file target/#{OOCD_TARGET}.cfg --command 'init' --command 'halt' --command 'reset init' --command 'flash erase_sector 0 0 last' --command 'flash write_image erase #{t.source}' --command 'reset' --command 'shutdown'" |
|
|
|
|
when "BMP" |
|
|
|
|
sh "#{GDB} --eval-command='target extended-remote #{BMP_PORT}' --eval-command='set confirm off' --eval-command='monitor swdp_scan' --eval-command='attach 1' --eval-command='monitor erase_mass' --eval-command='load' --eval-command='kill' --eval-command='quit' #{t.source}" |
|
|
|
|
end |
|
|
|
@ -223,7 +225,7 @@ desc "flash application using SWD" |
|
|
|
|
task :flash_application => APPLICATION+".hex" do |t| |
|
|
|
|
case SWD_ADAPTER |
|
|
|
|
when "STLINKV2" |
|
|
|
|
sh "#{OOCD} --file interface/#{OOCD_INTERFACE}.cfg --file target/#{OOCD_TARGET}.cfg --command 'init' --command 'halt' --command 'reset init' --command 'flash write_image erase #{t.source}' --command 'reset' --command 'shutdown'" |
|
|
|
|
sh "#{OOCD} --file interface/#{OOCD_INTERFACE}.cfg --command 'transport select hla_swd' --command 'set CPUTAPID #{CPUTAPID}' --file target/#{OOCD_TARGET}.cfg --command 'adapter speed 100' --command 'init' --command 'halt' --command 'reset init' --command 'flash write_image erase #{t.source}' --command 'reset' --command 'shutdown'" |
|
|
|
|
when "BMP" |
|
|
|
|
sh "#{GDB} --eval-command='target extended-remote #{BMP_PORT}' --eval-command='set confirm off' --eval-command='monitor swdp_scan' --eval-command='attach 1' --eval-command='load' --eval-command='kill' --eval-command='quit' #{t.source}" |
|
|
|
|
end |
|
|
|
@ -235,7 +237,7 @@ task :debug => APPLICATION+".elf" do |t| |
|
|
|
|
case SWD_ADAPTER |
|
|
|
|
when "STLINKV2" |
|
|
|
|
# for GDB to work with openOCD the firmware needs to be reloaded |
|
|
|
|
exec("#{GDB} --eval-command='target remote | #{OOCD} --file interface/#{OOCD_INTERFACE}.cfg --file target/#{OOCD_TARGET}.cfg --command \"gdb_port pipe; log_output /dev/null; init\"' #{t.source}") |
|
|
|
|
exec("#{GDB} --eval-command='target remote | #{OOCD} --file interface/#{OOCD_INTERFACE}.cfg --command \"transport select hla_swd\" --command \"set CPUTAPID #{CPUTAPID}\" --file target/#{OOCD_TARGET}.cfg --command \"gdb_port pipe; log_output /dev/null; init\"' #{t.source}") |
|
|
|
|
when "BMP" |
|
|
|
|
exec("#{GDB} --eval-command='target extended-remote #{BMP_PORT}' --eval-command='monitor version' --eval-command='monitor swdp_scan' --eval-command='attach 1' #{t.source}") |
|
|
|
|
end |
|
|
|
@ -247,7 +249,7 @@ task :debug_bootloader => BOOTLOADER+".elf" do |t| |
|
|
|
|
case SWD_ADAPTER |
|
|
|
|
when "STLINKV2" |
|
|
|
|
# for GDB to work with openOCD the firmware needs to be reloaded |
|
|
|
|
exec("#{GDB} --eval-command='target remote | #{OOCD} --file interface/#{OOCD_INTERFACE}.cfg --file target/#{OOCD_TARGET}.cfg --command \"gdb_port pipe; log_output /dev/null; init\"' --eval-command='monitor reset halt' --eval-command='load' --eval-command='monitor reset init' #{t.source}") |
|
|
|
|
exec("#{GDB} --eval-command='target remote | #{OOCD} --file interface/#{OOCD_INTERFACE}.cfg --command \"transport select hla_swd\" --command \"set CPUTAPID #{CPUTAPID}\" --file target/#{OOCD_TARGET}.cfg --command \"gdb_port pipe; log_output /dev/null; init\"' --eval-command='monitor reset init' #{t.source}") |
|
|
|
|
when "BMP" |
|
|
|
|
exec("#{GDB} --eval-command='target extended-remote #{BMP_PORT}' --eval-command='monitor version' --eval-command='monitor swdp_scan' --eval-command='attach 1' #{t.source}") |
|
|
|
|
end |
|
|
|
|