CircleOS 1.7
Update your CircleOS version to 1.7! Raisonance proposes a mini Operating System dedicated for the STM32-Primer. It provides services that will help you develop your STM32-Primer applications.

Code size:22 KB Author:Remy
Source files included:yes Version:1.7
Use circleOS:no Creation date:2007-08-02 09:21:18
Hardware modification:no Modification date:2008-03-19 11:06:31
Based on the STM32 Primer:Primer1
Downloads:2334 Views:29719
Average ratings:3.04/5 (1420 rates)

Download: (184 KB)



The STM32-Primer embeds the CircleOS operating system. It provides services that will help you develop your STM32-Primer applications:

  • Application management,
  • LCD graphic functions,
  • Mems functions,
  • LED,
  • Buzzer and Push Button functions,
  • Menu functions,
  • Scheduler task,
  • ...

The small footprint of CircleOS (only 22KB) allows you to keep up to 104 KB for the applications. The list of the available applications is stored in a table (FAT) at the top of the memory used by CircleOS. 

Each application is run by CircleOS when selected, has the full availability of the CPU and can use the entire RAM which is not used by CircleOS (i.e. 16KB in the memory address range from 2000000h to 20003FFFh). It will be scheduled by the CircleOS with full privileges on the device, until it explicitly quits.


Unzip in the directory "[Ride7_INSTALL_DIR]\Lib\ARM"


The CircleOS documentation is available online or as a download in this ZIP file

 What's new ?

 Version V1.7

  • Vectorize the handlers in the scheduler (allow to disable/modify one of the handlers)
  • Added functions to Get/Set Scheduler Handlers
  • Add UTIL_GetTemp() function (Get temperature) and UTIL_SetTempMode(mode) to select Celcius(0) or Fahrenheit(1)
  • Add DRAW_Line() function (draw a line using the Bresenham algorithm)
  • Detect the doubleclick (in fact a "double-shock"),  store it in MEMS_Info that has been extended and use it in the menu selection to launch a command. The "double-shock"  can be done smoothly with one finger. 
  • Various fixes in Circle_Api.h

Thanks to the contributors (Dale Wheat, Bob Seabrook, Thomas Scherrer,...) for their sources and their suggestions !

Version V1.6

  • Place the vector table in RAM for per-user customization of IRQ Handlers
  • Added functions to Get/Set IRQ Handlers

Version V1.5

  • Fix various bugs in mems.c and pointer.c (reported by Ron Miller and suggested in CircleOS-1.4rm)
  • Pointer stabilization again (jittery ok)
  • Better filtering of the MEMS information
  • Compiled with GCC version 4.2.1 (overall size is reduced) 

    WARNING: to fix a bug, the contents of the MEMS_INfo structure has been modified (some s16 types have been extended to s32). Therefore, the application projects must be recompiled. 
    All the projects available on the site have been recompiled and updated to comply with the release V1.5.

Version V1.4

  • Shutting down can be done by holding down the button.
  • Pointer stabilization.
  • Corrected time display.
  • MENU_Quit()  restores full context.

Version V1.3a

  • Removed the WFI mode in the main loop (causing locks when debugging).

Version V1.3

  • Optimized time display.
  • The MEMS handler is now launched from the TIMER2 interrupt handler instead of the systick interrupt,
  • The TIMER2 interrupt priority is higher than the systick interrupt priority (in order to guarantee a fixed frequency for the MEMS acquisition),
  • The frequency of the MEMS acquisition is increased (to read as many samples as possible),
  • Menu management is smoother and more stable,
  • A hardware reset is now performed when initializing the LCD monitor.
  • The source files are provided with the complete project.

Version V1.2

  • Typing error in Circle_api.h in LCD_SetBackLight define,
  • LCD_ReadRect changed in LCD_RectRead in CircleOS sources Circle_api.h definition.

Version V1.1

  • Quit option in menu Configuration,
  • Bug fixed in LCD_SetScreenOrientation,
  • POINTER_Save and POINTER_Restore accept now an height,
  • DRAW_SetLogo doesn't smash text color anymore,
  • LCD_SetBackLightOff and LCD_SetBackLightOff added.

Version V1.0

  •  First release.