Circle OS 3.7
Update your CircleOS version to 3.7 !

Code size:22k Author:matloub
Source files included:yes Version:3.7
Use circleOS:no Creation date:2008-07-28 19:17:45
Hardware modification:no Modification date:2009-09-09 17:18:05
Based on the STM32 Primer:All
Downloads:2335 Views:27949
Average ratings:2.96/5 (835 rates)

Download: (962 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
Moreover, a work document describes the evolution from version 2.x to version 3.x .


 What's new ? 


Version V3.7

  • Full audio files support with 8, 16, 22 or 44 KHz, 8 or 16 bits, mono or stereo samples (with DMA tranfer),
  • Added FS_SetPathFilter() (path filter function when navigate into SDCard with the explorer),
  • Init SDIO IT in FS_Mount() SDCard function,
  • Add possibility of manage a popup menu into an application,
  • Fixed several minor bugs

Version V3.6 

  • Added SDCard command menu to navigate and download files from a PC explorer (mass storage mode),
  • Added DRAW_Putc and DRAW_Puts functions that implement "C" putc and puts functions,
  • Added functions to change the current font and ascii table extended up to character 255 ,
  • Added UTIL_GetAppAddress function, in order to get the address of an application.

Thanks to the contributor (Simon Markham)  for his character set extension !

Note: this version requires to update the program "Circle_Mgr.exe" : get the file at the root directory of the zip, and copy it to the "~/Ride/bin" directory of your PC.

Version V3.5

  • Include File System API,
  • Added SDCard command menu to navigate into the SDCard folders.

Thanks to the contributor (Sjoerd)  for his file system sources !

Version V3.4

  • Added some audio API functions for I2C registers access.

Version V3.3

  • Changed home page and toolbar icons with more fun pictures,
  • Added scroll application list,
  • Changed menu colors, and added touchscreen functionalities.

 Version V3.1

  • Now supports Primer2 (and Primer1 as well),
  • New functions for new features: audio, touchscreen, joystick, etc...
  • Improved power management for Primer2,
  • Add hardware tests for Primer2.

 Version V2.0

  • Compiled with the gcc/codesourcery version 4.2.3 to be compatible with RKit-ARM release of the 24.07.2008
  • Synchronize with the new version of the STM32 library from STMicroelectronics v2.0.1
  • Fix bugs reported in the forum

 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.