Skip to content

About

Bare-metal C UART driver and QEMU demo for the Stellaris LM3S6965 Cortex-M3, built with CMake and the ARM GCC toolchain.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

4 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Stellaris UART

Bare-metal firmware project for the QEMU lm3s6965evb virtual board.

The target is a Cortex-M3-based Stellaris LM3S6965 environment. The project uses a custom linker script, a Cortex-M3 startup file, and the arm-none-eabi GCC toolchain.

Requirements

  • CMake 3.20 or newer
  • arm-none-eabi-gcc
  • arm-none-eabi-objcopy
  • arm-none-eabi-size
  • QEMU with ARM system emulation
  • clangd (optional, for editor integration)

Configure and build

cmake -S . -B build \
  -DCMAKE_TOOLCHAIN_FILE=cmake/arm-none-eabi.cmake
cmake --build build

Build artifacts are generated inside build/:

  • stellaris_uart.elf: ELF image for debugging.
  • stellaris_uart.bin: raw binary firmware image.
  • stellaris_uart.map: linker map file.
  • compile_commands.json: compilation database for tools such as clangd.

Run in QEMU

cmake --build build --target qemu

The QEMU target runs the firmware using the lm3s6965evb machine and connects UART output to the terminal. To exit QEMU, press Ctrl-A followed by x.

clangd integration

The .clangd file points clangd to the compilation database in build/. After configuring the project, clangd uses the same compiler flags as the firmware build, including:

  • -mcpu=cortex-m3
  • -mthumb
  • -ffreestanding

About

Bare-metal C UART driver and QEMU demo for the Stellaris LM3S6965 Cortex-M3, built with CMake and the ARM GCC toolchain.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages