Linux command line build system to generate binaries for TM4C123 (ARM Cortex M4)
FreePreemptive scheduler and build environment for TM4C123GH6PM (ARM Cortex-M4)
FreeFree tier
About Linux command line build system to generate binaries for TM4C123 (ARM Cortex M4)
This open-source repository implements a round-robin preemptive scheduler and generic build environment for the TM4C123GH6PM (ARM Cortex-M4) microcontroller, as used on the TIVA C Launchpad board by Texas Instruments. It includes three tasks that blink the onboard red, green, and blue LEDs at different rates, demonstrating the scheduler's operation. The build system is minimal, consisting of a Makefile, linker script, and OpenOCD setup script, and requires the ARM GCC toolchain and OpenOCD. Tested on Ubuntu 16.04 64-bit.
Key Features
Preemptive round-robin scheduler implementation
Three LED blinking tasks (red, green, blue) with different periods
Minimal build system with Makefile, linker script, and OpenOCD setup script
Targets TM4C123GH6PM (ARM Cortex-M4) on TIVA C Launchpad
Header files include Task Control Block and configurable parameters (stack size, thread count)
Tested on Ubuntu 16.04 64-bit with ARM GCC toolchain (version 8-2018-q4-major)
Pros & Cons
Pros
- Open source and free to use
- Minimal set of files to get started quickly
- Includes a working round-robin scheduler out of the box
- Automated OpenOCD setup via 'sudo make setup'
- Well-documented directory structure and comments in code
Cons
- Only tested on Ubuntu 16.04 64-bit; may require adjustments for other operating systems
- Limited to the TM4C123GH6PM microcontroller specifically
- No support for other ARM Cortex-M variants or boards
- Does not include advanced RTOS features like semaphores or message queues
Best For
Embedded firmware development for TM4C123GH6PM (TIVA C Launchpad)Learning ARM Cortex-M4 scheduler and RTOS conceptsEducational projects demonstrating round-robin task switchingGetting started with open-source build tools for ARM Cortex-M microcontrollers
FAQ
What microcontroller is this project for?
It targets the TM4C123GH6PM ARM Cortex-M4 microcontroller, found on the TI TIVA C Launchpad board.
What toolchain is required?
The project requires the ARM GCC toolchain (specifically 'The GNU Embedded Toolchain for Arm Version 8-2018-q4-major Linux 64-bit') and OpenOCD for flashing.
How do I set up the build environment?
Download and extract the ARM GCC toolchain, add its bin directory to your PATH, then run 'sudo make setup' in the repository directory to install OpenOCD dependencies and compile it.
What does the scheduler do?
It implements a preemptive round-robin scheduler that runs three tasks simultaneously, each blinking a different onboard LED (red, blue, green) at its own rate.