Board Support Package

From SEGGER Wiki
Revision as of 11:09, 2 June 2020 by Til (talk | contribs) (Created page with "embOS comes with board support packages for different device and evalboards. Further board support packages may easily be created on your own or can be requested by SEGGER. Us...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

embOS comes with board support packages for different device and evalboards. Further board support packages may easily be created on your own or can be requested by SEGGER. Usually we suggest to start with one of these board support packages and add your application code to it. This guidance covers the case you want to add embOS to an existing project.

Where can I get the embOS files?

If you evaluate embOS or your are working on a non commercial project you can download and use the embOS Free edition from [1]. Once you licensed embOS you will get a download link to our download portal. In either case please download the zip file. Extract the zip-file to any folder of your choice, preserving the directory structure of this file. Keep all files in their respective sub directories.

How can I add embOS to my existing project?

The following screenshots are taken from Embedded Studio but the description should work for other Compiler/IDEs as well.

This is a simple project for a SEGGER emPower board (NXP K66FN2M0) without embOS:

Active Simple project


As a first step please add the new folder "embOS" to your project and add the following files:

  1. One embOS library from Start/Lib.
  2. All files from the according embOS BSP Setup folder, e.g. Start/BoardSupport/Segger/K66FN2M0_emPower/Setup.
  3. In case of Cortex-M all files from the BSP SEGGER folder, e.g. Start/BoardSupport/Segger/K66FN2M0_emPower/SEGGER.
Active Simple project


Please add the following includes paths to your preprocessor settings and add the define "DEBUG=1:

Active Simple project
Active Simple project


You can now use embOS in your application. Every embOS application files needs to include "RTOS.h". You can also add the necessary code to create to your first task. Every task needs a separate task stack, a separate task control block and a task function. The task simply executes the code from the main() function.

Active Simple project
Active Simple project

The main() function needs to initialize the RTOS; the hardware, the task and to start embOS:

Active Simple project

You can run this embOS application in hardware.