How cheriwen/mspm0g3507_freertos works
This is an MSPM0 embedded FreeRTOS example, not a substantial application product: the README describes an otherwise empty DriverLib project, while empty.c supplies a static LED-blink task and a periodic debug-print task. The runtime flow initializes SysConfig and UART, creates both tasks, and starts the scheduler. The tree also includes FreeRTOS synchronization and timing facilities; those are represented as available subsystems, but their wiring into this demo is not established by the sampled excerpts.
Main entry points: tasks.c Task scheduler · empty.c Startup and tasks · UART0_Debug.c Debug UART driver · board_led.c Board LED driver
Components 18
Demo application
- Startup and tasks
empty.c - LED blink task
empty.c - Debug print task
empty.c
FreeRTOS kernel
- Task scheduler
keil/FreeRTOS/src/tasks.c - ARM Cortex-M0 port
keil/FreeRTOS/portable/TI_ARM_CLANG/ARM_CM0/port.c - Heap allocation
keil/FreeRTOS/portable/MemMang/heap_4.c - Kernel lists
keil/FreeRTOS/src/list.c
Kernel communication
- Queues and semaphores
keil/FreeRTOS/src/queue.c - Event groups
keil/FreeRTOS/src/event_groups.c - Stream buffers
keil/FreeRTOS/src/stream_buffer.c - Software timers
keil/FreeRTOS/src/timers.c - Co-routines
keil/FreeRTOS/src/croutine.c
Hardware platform
- Board LED driver
keil/USER/Module/Board_Device/board_led.c - Debug UART driver
keil/USER/Module/Board_Driver/UART0_Debug.c - Timer delay driver
keil/USER/Module/Board_Driver/tim_delay.c - SysConfig initialization
ti_msp_dl_config.c
Other components
- Application user
- MSPM0 peripherals
Connections 13
- Application user → Startup and tasks: runs example
- Startup and tasks → SysConfig initialization: initializes
- Startup and tasks → Debug UART driver: initializes
- Startup and tasks → Task scheduler: creates tasks; starts scheduler
- Task scheduler → LED blink task: dispatches
- Task scheduler → Debug print task: dispatches
- LED blink task → Board LED driver: toggles LED
- LED blink task → Task scheduler: delays
- Debug print task → Debug UART driver: prints via printf
- Debug print task → Task scheduler: delays
- Board LED driver → MSPM0 peripherals: controls GPIO
- Debug UART driver → MSPM0 peripherals: uses UART
- ARM Cortex-M0 port → Task scheduler: increments tick