0% found this document useful (0 votes)
546 views20 pages

Introduction To Embedded Programming On STM32

This document provides an introduction and overview of an embedded programming course focused on the STM32 microcontroller. The course will consist of 7 lectures plus a project defense session, where each lecture is supplemented with a seminar. Students will work in pairs and be provided with a development board, USB cable, and converter. The goal is to introduce students to embedded programming beyond Arduino, including basics of ARM architecture and the STM32 ecosystem. Applications of microcontrollers are widespread in devices like appliances, automobiles, medical equipment, and more. STM32 microcontrollers use the Cortex-M architecture and students will learn about registers, memory, and the toolchain including compiler, assembler, and linker. Sample code and resources

Uploaded by

Mohamed Ayed
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
546 views20 pages

Introduction To Embedded Programming On STM32

This document provides an introduction and overview of an embedded programming course focused on the STM32 microcontroller. The course will consist of 7 lectures plus a project defense session, where each lecture is supplemented with a seminar. Students will work in pairs and be provided with a development board, USB cable, and converter. The goal is to introduce students to embedded programming beyond Arduino, including basics of ARM architecture and the STM32 ecosystem. Applications of microcontrollers are widespread in devices like appliances, automobiles, medical equipment, and more. STM32 microcontrollers use the Cortex-M architecture and students will learn about registers, memory, and the toolchain including compiler, assembler, and linker. Sample code and resources

Uploaded by

Mohamed Ayed
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 20

Introduction to embedded

programming on STM32
Intro to the world of embedded programming

Skoltech, 2019
A few words about policy

● 7 lectures + 1 project defense session


● Each lecture is supplemented with seminar at the end to reinforce given
knowledge
● Each pair of students will be provided with a development board, a USB cable
and a USB<->RS232 converter
● 80% attendance is highly recommended
● STM32 is cool, Arduino is not

Any questions?
The goal of the course

● To spill the beans of non-Arduino world


● Gain some knowledge in basics of ARM
● To understand the ecosystem of embedded programming
● Etc etc
Microcontrollers are everywhere
Applications
● Household appliances: microwave ovens, washing machines, dishwashers
etc
● Home automation: climate control, light control, smart houses, security,
surveillance etc
● Avionics: inertial guidance systems and GPS receivers
● Medical equipment: vital signs monitoring, various medical imaging (PET,
SPECT, CT, and MRI) for non-invasive internal inspections
● Internet Of Things

And more and more!


Taxonomy of ARM MCUs

Cortex-M Cortex-R Cortex-A

Lowest Power, Real-Time Highest


Lower Cost Processing Performance

STM32
Taxonomy of ARM MCUs. Extra series

ML Secure

Efficiency Uplift for


Tamper Resistant
All Devices

Please refer to https://www.arm.com/products/silicon-ip-cpu for


further details
STM32F0DISCOVERY

● 64 KB Flash memory, 8 KB RAM


● On-board ST-LINK/V2
● Four LEDs
● Two push buttons
The concept of
System On a Chip
(SoC)
Cortex-M0 architecture
Cortex-M0.
Registers
Cortex-M0. System timer.
Registers’ state #1 Registers’ state #2

Command #1 !!
I C K!
ST
Command #2 SY Command #1
Command #3
Command #2
...
Command #3
CO
Command #403 NO ME Command #4
RM B
Command #404 AL ACK
FL TO
OW
Command #405 !
Toolchain. Compiler
file1.i file1.s file1.o

file1.c
Preprocessor Compiler Assembler
(mod. source) (assembly pr.) (object file)

file2.c Linker
Preprocessor Compiler Assembler (executable
object)

file3.c
Preprocessor Compiler Assembler
Toolchain. Compiler

● Binaries can be built from sources (not recommended for newbies)


● Binaries can be downloaded from official website
https://developer.arm.com/open-source/gnu-toolchain/gnu-rm/downloads
● Binaries might be installed from repository
sudo apt-get install arm-none-eabi-gcc

If you have any problems with installing ask instructors for help
Toolchain. Repository

https://github.com/edosedgar/stm32f0_ARM

https://github.com/edosedgar/skoltech_stm32_course

You might also like