forked from prattmic/F4OS
A small RTOS for ARM Cortex-M4F microcontrollers.
License
DuinoPilot/F4OS
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
A small, real time OS for ARM Cortex-M4F microcontrollers. Originally developed for the STM32F4DISCOVERY, but should work just fine on any STM32F40x microcontroller. Other STM32F4s should be very easy to port to. Initial support has also been added for TI LM4F120H5 microcontrollers (TI Stellaris Launchpad). Fewer peripherals have been developed, but the core OS works well. It should be possible to port to additional Cortex M4F cores simply by using the two board/ folders as an example. The core of what is needed is a clock initialization function, and drivers for desired peripherals. Building requires arm-none-eabi-toolchain. For hardfloat support, see https://github.com/prattmic/arm-cortex-m4-hardfloat-toolchain or https://launchpad.net/gcc-arm-embedded. Specify the device you are building for using the BOARD environmental variable. For example, to build for the LM4F120H5, run 'BOARD=lm4f120h5 make'. By default, make builds with BOARD=stm32f40x. For flashing and debugging on the STM32F40x, texane's stlink is recommended: https://github.com/texane/stlink With stlink in your path, "make burn" will flash your device. For the LM4F120H5, I have used the JLink JTAG debugger, which 'make burn' will attempt to use. The Stellaris Launchpad also has an integrated debugger, which you should be able to use with lm4tools: https://github.com/utzig/lm4tools 'make burn' calls flash.sh in the board folder, so modify it to your heart's content. By default, the shell program in usr/shell/ is built and run at boot. The main() function in main.c is called by the scheduler before task switching begins and should be used to create tasks that run at boot. On the STM32F40x, resource 0 (stdin/out) is the USB device, which should appear as a USB CDC ACM (Virtual Terminal) device on the host. Resource 1 (stderr) is the UART on PB6 (TX) and PB7 (RX). The default resources can be changed in the board.c file for each board. On the LM4F120H5, resources 0 and 1 are defaulted to UART0 on PA0 and PA1. Michael Pratt
About
A small RTOS for ARM Cortex-M4F microcontrollers.
Resources
License
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published