Cortex-M0+ Bringup // Chapter 1 - Introductiondim. 24 septembre 2017 by Mick Cherry
This article is the first of a (long) serie that explains in details how to start a small MCU (Cortex-M0+ STM32L053) from scratch.
All the basic aspects of a small mcu bringup will (hopefully) be covered: toolchain, linker script, swd, debugging, uart, ...
The present article is here to list and source the hardware tools used for this serie (see below).
Here is the full posts list for this serie:
Chapter - A simple program to run (the easy part)
Chapter - A toolchain (cross-compilation)
Chapter - Before the main (Reset Handler)
Chapter - Headers & Startup Files (what-are-we-missing-this-time?)
Chapter - What goes where? (Linker script)
Chapter - A properly cross-compiled binary (handcrafted Makefile)
Chapter - A Cortex-M0+ MCU (the target mcu)
Chapter - A flasher (SWD)
Chapter - A flasher software (Memory Map)
Chapter - A debugger (gdb)
Chapter - It's alive! (finally)
Chapter - Fiat Lux: Led blinking (GPIO set)
Chapter - Button: Easy Polling (GPIO get)
Chapter - Button: Easy Interrupting (GPIO IRQ)
Chapter - In the beginning was the word (UART debug)
Chapter - Tick-tock (Systick)
Chapter - Voltage measure (ADC made easy)
The goal of this long serie of posts is to explain in detail how to start (boot) a STM32L053 mcu and perform some basic board bringup tasks such as blinking a led (a long time classic - if not mandatory - feature when booting a board for the first time), printing debug on a serial line, getting a button interruption.
Here is the hardware list used for the following posts. We need 5 hardware parts to complete the goal: a computer (to cross-compile), a target mcu or board, a flasher, a power supply, a usb ttl serial cable.
The target MCU we are using is a STM32L053 embedded on a NUCLEO-L053R8 evaluation board.
The eval board user manual is available here.
The STM32L053 datasheet is available here.
The flasher is a hardare part that is used to transfer the compiled binary from your computer to the target mcu on the eval board. We use a ST-LINK/V2-1 which is a (detachable) part of the nucleo evaluation board.
Some power supply is required to power the nucleo eval board. We use 3 alkaline cells (AAA) to provide 4.5V of power supply to the board.
Computer & internet
We obviously need a computer to compile and flash the software to the target mcu.
It is often useful to be able to print some messages from the target mcu (debug, info, ...) on a screen, usually your computer screen. For this, we need a last hardware part which is a cable that converts USB signal/protocols to UART.
Basic embedded software setup
All these hardware parts will be tied together in a classic embedded software development setup, which can be seen like this:
In the next post, we will write an exceedingly small and simple program which will be the the first one we flash in the target mcu.