Bare metal ARM programming
I've been working with ARM Cortex based boards over the past while. One of these is the
STM32F0Discovery board from ST Microelectronics.
This is a great little board for getting to know arm based microcontrollers and it is very cheap.
Lots of the ARM Cortex documentation talks about the CMSIS specification and various board support libraries. I believe
these have their place however I have found that undergraduate engineers feel more at home twiddling bits in registers than working with a complex API. I have therefore taken a
"bare-metal" approach to programming the STM32F0Discovery board as well as other devices. Details are here:
Bare metal programming on various ARM Cortex targets
STM32F0Discovery and STM32VLDiscovery
TILM4F120 (Tiva C Launchpad)
LPC1114FN28
STM32F3Discovery
LPC812
LPC824
MicroRealms game on the LPC810
A smart magnetometer using the LPC810
Infineon XMC2Go
Programming the STM32F030F4 TSSOP20 microcontroller using ISP
Programming the STM32F042 Nucleo board from the ground up
Programming the STM32F303 Nucleo board from the ground up
Programming the STM32L011 Nucleo board from the ground up
Programming the STM32L476 Discovery board from the ground up
Programming the STM32L432 nucleo board from the ground up
Up to date header files
You can get updated header files for the various targets here.
Some of these updates fix bugs in the various definitions, others include additional peripheral definitions that were not in the original release.
Please feel free to mail me suggested improvements at frank.duignan@dit.ie .
Miscellaneous
My entry into the LPC810Simplicity challenge. Details are here
Older stuff
Working with the str9-comstick on 64 bit Ubuntu
The following documents relate to the EP9302 development board sold by (amongst others) Olimex
The EP9302 boot process
General purpose I/O on the EP9302
Back to my start page