31 lines
		
	
	
	
		
			917 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable file
		
	
	
	
	
			
		
		
	
	
			31 lines
		
	
	
	
		
			917 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable file
		
	
	
	
	
#!/bin/bash
 | 
						|
# Loads firmware image using an SWD Flasher
 | 
						|
# Uses MCHCK ruby flasher toolchain
 | 
						|
# NOTE: Only tested with a buspirate on Linux
 | 
						|
 | 
						|
# Arg 1: Path to firmware image
 | 
						|
# Arg 2: Address to flash to (byte address)
 | 
						|
 | 
						|
# Must have two args
 | 
						|
if [ "$#" -ne 2 ]; then
 | 
						|
	echo "Usage:   `basename $0` <firmware binary> <starting address>"
 | 
						|
	echo "Example: `basename $0` kiibohd_bootloader.bin 0"
 | 
						|
	exit 1
 | 
						|
fi
 | 
						|
 | 
						|
# First check to see if the flasher toolchain is available
 | 
						|
if [ ! -d "programmer" ]; then
 | 
						|
	# Use git to download the toolchain
 | 
						|
	git clone https://github.com/mchck/programmer.git
 | 
						|
fi
 | 
						|
 | 
						|
# Make sure the toolchain is up to date
 | 
						|
cd programmer
 | 
						|
git pull --rebase
 | 
						|
cd ..
 | 
						|
 | 
						|
# Attempt to flash
 | 
						|
# Udev rules have been applied to name the buspirate as /dev/buspirate (instead of something like /dev/ttyUSB0)
 | 
						|
# By default only root can access serial devices on Linux
 | 
						|
ruby programmer/flash.rb name=buspirate:dev=/dev/buspirate "$1" "$2"
 | 
						|
 |