Skip to content

jmarc101/embedded-ARM

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

embedded-arm

Bare-metal ARM development. Using STM32 microcontrollers with PlatformIO for ease of development.

Reference course - the Quantum Leaps course.

Hardware

Board: STM32 Nucleo-F446RE MCU: STM32F446RET6

Spec Value
Core ARM Cortex-M4 + FPU + DSP
Clock 180 MHz (max)
Flash 512 KB
SRAM 128 KB + 4 KB backup
Voltage 1.7V - 3.6V

Peripherals

Type Count
Timers 17
ADC 3x 12-bit
DAC 2x 12-bit
GPIO 50 pins
USART/UART 6
SPI / I2C 4 / 3
USB OTG FS + HS
CAN 2
DMA 16 streams

Board Features

Feature Details
Debugger ST-LINK/V2-1 (on-board)
User LED LD2 on PA5
User Button B1 on PC13 (active low)
Headers Arduino + ST Morpho
Power USB or 7-12V external

Memory Map

Region Address Size
Flash 0x0800_0000 512 KB
SRAM 0x2000_0000 128 KB
Peripherals 0x4000_0000
Cortex-M4 0xE000_0000

Docs

Structure

embedded-arm/
├── projects/
│   ├── 00-test/
│   │   ├── src/
│   │   │   └── main.c
│   │   └── platformio.ini
│   ├── 01-blinky/
│   └── ...
├── common/
└── docs/

Each project is a standalone PlatformIO project.

Setup

# Install PlatformIO
curl -fsSL -o get-platformio.py https://raw.githubusercontent.com/platformio/platformio-core-installer/master/get-platformio.py
python3 get-platformio.py
echo 'export PATH="$HOME/.platformio/penv/bin:$PATH"' >> ~/.bashrc && source ~/.bashrc

# Build & upload
git clone https://github.com/jmarc101/embedded-ARM.git
pio run -t upload

## Usage

**Build & upload:**
```bash
cd projects/01-blinky
pio run -t upload

Serial monitor:

pio device monitor

Create new project:

cd projects
mkdir 03-new-project && cd 03-new-project
pio project init --board nucleo_f446re --project-option "framework=cmsis"

Projects

# Name Description
00 test Minimal startup code

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages