abing1991 / ASL_F4_bootloader

SD card based bootloader for STM32F407

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

ASL F4 Bootloader & Bootloader App

This project houses both the ASL F4 USB bootloader for STM32F407 & STM32F303 chips along with the application to handle postprocessing and loading of firmware images onto hardware.

ASL F4 Bootloader Application

Requirements

Installation

Simply type python setup.py install. Depending on your system you may need to run that command as root. Your mileage may vary. After a successful install you should see asl_f4_loader and asl_f4_postprocess binaries in your binary search path.

ASL F4 Bootloader

Requirements

Recommended

  • OpenOCD

Building

Simply type 'make'

This will generate both a bootloader binary (in .bin and .elf formats) as well as a python .tgz that can be installed with pip.

Preparing Application Firmware

The application firmware will require the app_info.h file located in the root of this repository. It will also require a 2 word (8 octet) reserved area in it's RAM region starting at 0x20000000 (see the linker script for this bootloader for an example).

The app_info.h header contains a struct that will be needed in the firmware. No special placement is required, however, you will need to have it aligned on a word boundary, like so:

__attribute__((aligned (4)))
static const struct app_info_block info_block = {
	.magic_number = APP_INFO_MAGIC_NUMBER,
	.info_crc = 0xDEADBEEF,
};

Post procesing the firmware (which inserts CRC's and starting information) can be accomplished thusly:

asl_f4_fw_postprocess -f $(TARGET).bin -e $(TARGET).elf -o $(ADDRESS) -b $(TARGET).bin -i $(TARGET).ihex

The python package generated in the build process will provide two shell scripts:

  • asl_f4_fw_postprocess: This handles CRCing the firmware and generating the ihex file for use in the loader
  • asl_f4_loader: A shell script which can be used to load new firmware

It is also, of course, a library that can be included in your own applications for graphical loading, etc.

Loading Firmware

To load firmware, place your device in bootloader mode (On a RaceCapture Pro Mk2, this can be accomplished via holding down the reset and action buttons, then releasing reset).

Then run: asl_f4_loader -f <path_to_fw.ihex>

The loader software will automatically discover the device and update the firmware

About

SD card based bootloader for STM32F407

License:GNU General Public License v2.0


Languages

Language:C 95.5%Language:Assembly 2.2%Language:HTML 1.9%Language:C++ 0.2%Language:Python 0.1%Language:Makefile 0.1%Language:Batchfile 0.0%