Giter Club home page Giter Club logo

stm32-usb-bootloader's Introduction

USB bootloader for STM32F1 microcontrollers

This repository contains bootloader for STM32F1xx microcontrollers. It was tested only for STM32F103RET6, but you may easily adopt it to other MCUs from F1 series supporting STM32 HAL library.

What do you need?

To use this bootloader you should have:

  • SD or MicroSD card connected to your MCU via 4-wire SDIO interface (do not forget 47kOhm resistors!). MicroSD card should works properly! File system should be Fat32.

  • Optionally, USB 2.0 port (type B, slave device), connected to your MCU. Do not forget 1.5kOhm resistor between D+ and 3.3V, otherwise your device will not be discovered by a computer.

How to use bootloader

You can put file flash.bin to SD-card with your flash image. There is no restrictions to image except it's size: it should be a bit smaller then MCU flash size to leave some place for bootloader. No image modifications (such as moving IRQ table or other) needed! You have two possibilities to put this file:

  • Enject microSD card and put flash.bin directly

  • Connect you MCU over USB to computer and run device. No drivers needed, your chip will run in cardreader mode. Copy flash.bin to MicroSD over this connection.

Than disconnect your device from PC (if connected), reboot it and after tens seconds your image will be flashed to MCU and run. Bootloader checks hash sum on start, so there is no reflashing every boot.

Note: when your MCU starts with bootloader, it takes control for 1 second to wait connection from PC and than boot your program. In this time all pins are pulled to zero if possible. You may change this behaviour.

Contacts

You are free to communicate with me by email: [email protected]

stm32-usb-bootloader's People

Contributors

dalexis avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

stm32-usb-bootloader's Issues

build project as-sis create 510KiB .bin

Hi

Archlinux
arm-none-eabi 9.2.0
cmake 3.15.5

when build the project (with little fix for build with folders with contains spaces) get a .bin file with 510KiB of size

Screenshot_20191116_094136

and the generated CMakeCache.txt show a strange findings

Screenshot_20191116_201242

uses the normal (PC) GCC/foo

how to fix it?

greetings

Update to STM32CubeF1 1.8.0 or more

seems don't like any SDs, like a SD 128MiB or 8GiB

[417887.507276] usb 2-5: new full-speed USB device number 122 using xhci_hcd
[417887.648330] usb 2-5: New USB device found, idVendor=0483, idProduct=572a, bcdDevice= 2.00
[417887.648333] usb 2-5: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[417887.648335] usb 2-5: Product: Caustic bootloader
[417887.648336] usb 2-5: Manufacturer: Caustic LTS
[417887.648338] usb 2-5: SerialNumber: 00000000001A
[417887.649087] usb-storage 2-5:1.0: USB Mass Storage device detected
[417887.649209] scsi host14: usb-storage 2-5:1.0
[417888.674385] scsi 14:0:0:0: Direct-Access     STM      Product          0.01 PQ: 0 ANSI: 2
[417888.674740] sd 14:0:0:0: Attached scsi generic sg8 type 0
[417888.674952] sd 14:0:0:0: [sdf] Very big device. Trying to use READ CAPACITY(16).
[417888.675347] sd 14:0:0:0: [sdf] Using 0xffffffff as device size
[417888.675353] sd 14:0:0:0: [sdf] 4294967296 512-byte logical blocks: (2.20 TB/2.00 TiB)
[417888.675497] sd 14:0:0:0: [sdf] Write Protect is off
[417888.675500] sd 14:0:0:0: [sdf] Mode Sense: 00 00 00 00
[417888.675660] sd 14:0:0:0: [sdf] Asking for cache data failed
[417888.675664] sd 14:0:0:0: [sdf] Assuming drive cache: write through
[417888.676271] sd 14:0:0:0: [sdf] Very big device. Trying to use READ CAPACITY(16).
[417888.676704] sd 14:0:0:0: [sdf] Using 0xffffffff as device size
[417888.677477] sd 14:0:0:0: [sdf] tag#0 FAILED Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE
[417888.677480] sd 14:0:0:0: [sdf] tag#0 Sense Key : Illegal Request [current] 
[417888.677483] sd 14:0:0:0: [sdf] tag#0 Add. Sense: Invalid command operation code
[417888.677485] sd 14:0:0:0: [sdf] tag#0 CDB: Read(16) 88 00 00 00 00 00 00 00 00 00 00 00 00 08 00 00
[417888.677489] blk_update_request: critical target error, dev sdf, sector 0 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 0
[417888.677494] Buffer I/O error on dev sdf, logical block 0, async page read
[417888.677870] sd 14:0:0:0: [sdf] tag#0 FAILED Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE
[417888.677873] sd 14:0:0:0: [sdf] tag#0 Sense Key : Illegal Request [current] 
[417888.677875] sd 14:0:0:0: [sdf] tag#0 Add. Sense: Invalid command operation code
[417888.677877] sd 14:0:0:0: [sdf] tag#0 CDB: Read(16) 88 00 00 00 00 00 00 00 00 00 00 00 00 08 00 00
[417888.677879] blk_update_request: critical target error, dev sdf, sector 0 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 0
[417888.677883] Buffer I/O error on dev sdf, logical block 0, async page read
[417888.677893] ldm_validate_partition_table(): Disk read failed.
[417888.678269] sd 14:0:0:0: [sdf] tag#0 FAILED Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE
[417888.678271] sd 14:0:0:0: [sdf] tag#0 Sense Key : Illegal Request [current] 
[417888.678274] sd 14:0:0:0: [sdf] tag#0 Add. Sense: Invalid command operation code
[417888.678276] sd 14:0:0:0: [sdf] tag#0 CDB: Read(16) 88 00 00 00 00 00 00 00 00 00 00 00 00 08 00 00
[417888.678279] blk_update_request: critical target error, dev sdf, sector 0 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 0
[417888.678281] Buffer I/O error on dev sdf, logical block 0, async page read
[417888.678675] sd 14:0:0:0: [sdf] tag#0 FAILED Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE
[417888.678677] sd 14:0:0:0: [sdf] tag#0 Sense Key : Illegal Request [current] 
[417888.678680] sd 14:0:0:0: [sdf] tag#0 Add. Sense: Invalid command operation code
[417888.678681] sd 14:0:0:0: [sdf] tag#0 CDB: Read(16) 88 00 00 00 00 00 00 00 00 00 00 00 00 08 00 00
[417888.678684] blk_update_request: critical target error, dev sdf, sector 0 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 0
[417888.678686] Buffer I/O error on dev sdf, logical block 0, async page read
[417888.679048] sd 14:0:0:0: [sdf] tag#0 FAILED Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE
[417888.679053] sd 14:0:0:0: [sdf] tag#0 Sense Key : Illegal Request [current] 
[417888.679056] sd 14:0:0:0: [sdf] tag#0 Add. Sense: Invalid command operation code
[417888.679060] sd 14:0:0:0: [sdf] tag#0 CDB: Read(16) 88 00 00 00 00 00 00 00 00 00 00 00 00 08 00 00
[417888.679067] blk_update_request: critical target error, dev sdf, sector 0 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 0
[417888.679072] Buffer I/O error on dev sdf, logical block 0, async page read
[417888.679080]  sdf: unable to read partition table

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.