Stm32flash

From Chalmers Robotförening
Revision as of 09:10, 11 January 2014 by Sterna (talk | contribs) (Created page with "Detta är ett enkelt program för att ladda över sitt program från datorn till en STM32-processor med uart via den interna bootloadern. Den variant som används till IntroAR...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Detta är ett enkelt program för att ladda över sitt program från datorn till en STM32-processor med uart via den interna bootloadern. Den variant som används till IntroARM är en fork som även kan styra flow-controlpinnar, vilket innebär att man endast behöver dra ut reset och boot, samt en uart. Detta har testats både under Linux (Arch) och OS X (10.9), dock ej ännu under Windows (2014-01-11). Koden hittar ni på Devilholks git i dagsläget (github.com/devilholk/stm32flash). Ta ner den och köra make från en terminal.

Användning

Hämtning och byggning

Först behöver du hämta programmet. Detta görs från | Devilholks git, antingen genom att gå dit manuellt och ladda ner eller köra kommandot "git clone http://github.com/devilholk/stm32flash". Därefter bygger och installerar du programmet genom att köra "make" och sedan "sudo make install". Du behöver GCC för att kunna bygga det.

Användning

STM32Flash är terminalbaserat. Detta innebär att du förslagsvis ställer dig där din .bin- eller .hex-fil kommer ut (stm32flash kan ta båda) och kör kommandot därifrån. Genom detta behöver du bara skriva namnet på filen, och inte hela sökvägen. Ett bra tips är att skriva stm32flash -h för help. Detta visar alla kommandon som finns. Hjälpen finns utskriven nederst i filen.

Hjälp

Usage: stm32flash [-bvngfhc] [-[rw] filename] [-RB [-]DTR|RTS] /dev/ttyS0
	-b rate		Baud rate (default 115200)
	-r filename	Read flash to file
	-w filename	Write flash to file
	-u		Disable the flash write-protection
	-e n		Only erase n pages before writing the flash
	-v		Verify writes
	-n count	Retry failed writes up to count times (default 10)
	-g address	Start execution at specified address (0 = flash start)
	-s start_page	Flash at specified page (0 = flash start)
	-f		Force binary parser
	-h		Show this help
	-l		Show a list of available IO pins
	-c		Resume the connection (don't send initial INIT)
			*Baud rate must be kept the same as the first init*
			This is useful if the reset fails
	-R signal	Reset device after upload using IO.
			NONE can be given if one does not wish to reset at all
			List availble IO with -l
	-B signal	Use signal to select boot mode using IO.
			Logic low is applied for system boot (upload) and logic high
			for normal boot
			List availble IO with -l

Examples:
	Get device information:
		stm32flash /dev/ttyS0

	Write with verify and then start execution:
		stm32flash -w filename -v -g 0x0 /dev/ttyS0

	Read flash to file:
		stm32flash -r filename /dev/ttyS0

	Start execution:
		stm32flash -g 0x0 /dev/ttyS0

	Use IO for boot selector, write flash and then reset
	Using 1MBAUD (suitable for 24 MHz devices) on first USB serial
		stm32flash -w filename /dev/ttyUSB0 -B cs.dtr -R cs.rts -b 1000000