Username:     
Password:     
            Register  

Resources
The CircleOS Project

CircleOS is the multi-application operating system used in the different STM32 Primers. This 'Open source' project  was initiated by Raisonance with the objective of providing an API to access both the hardware peripherals and the user interface. CircleOS also manages the MEMS accelerometer, the melody generator, the LCD display, the menu utility and the application launcher.

The source files

All CircleOS sources are available below, or via the project list. It is planned to make them available though a CVS server to facilitate management of evolutions with in the Circle community. The source files are common to both the STM32 Primer and the STM32 Primer2. However, different compile/link options generate different binary files. The online documentation of the API is generated with Doxygen using the code comments from the source files. 

Compatibility

All proposed CircleOS evolutions must guarantee true ascending compatibility to be accepted.  For example, the binary codes of "Maze: and "Breakout" (the very first applications for Primer1 and CircleOS) must run without any need to recompile the applications, on all versions of CircleOS for both Primer1 and Primer2.

However, applications that use the hardware resources of the STM32 directly do not require this same guaranty. For example, the USB port is not managed by CircleOS and applications that use it will need to be adapted from Primer1 to Primer2.  

Evolution

CircleOS continues to evolve and improve thanks to the goodwill of our many users. Raisonance welcomes all suggestions and improvements that you may propose. From the needs currently expressed within the community, the following are priority projects that could benefit from your contributions:

  • "File system" manager for the SD card
  • Improved audio features (at the moment, the audio chip is used only at its minimal capabilities)
Circle OS 3.8
 
Update your CircleOS version to 3.8 !

Code size:155 Kb / 24 Kb Author:yrt
Source files included:yes Version:3.8
Use circleOS:no Creation date:2009-09-09 16:51:44
Hardware modification:no Modification date:2009-09-10 15:59:08
Based on the STM32 Primer:All
   
Downloads:2280 Views:11333
   
Vote:
Average ratings:0/5 (0 rates)

Download:    Circle-OS-v3.8-3.8.zip (1086 KB)

Description:

Description

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 22/128 KB) allows you to keep up to 104/384 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.

Installation

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

Upgrade

The CircleOS upgrade files are available as a download in Primer2_Upgrade  and Primer_Upgrade zip files

 

Documentation

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.8

  • ST library updated to v3.1.0,
  • CMSIS updated to V1.20,
  • Touchscreen upgraded (precision, use as only input, a new point added for calibration),
  • SDcard file update,
  • New settings to disable the Buzzer,
  • Joystick diagonals managed,
  • Audio I2C interruption moved,
  • Reorganization of the project structure,
  • shutdown.c was renamed to power.c,
  • Fix LCD initialization bug on Primer 1,
  • New applications within the PrimerUpgrade.zip : MP3 player, Chromatic Tuner, Sol8Air.

 Version V3.7 (always available on the site)

  • 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 www.STM32Circle.com

 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.

 



Project comments

Thanks                                                                                                             Please, log you to post a reply.
#1   2010-02-24 10:45:18
02.anand.m
New member

Offline

We got the schematics and made necessary changes, Now it is working.
Thanks alot.

 

Free RTO                                                                                                             Please, log you to post a reply.
#1   2009-10-13 18:05:31
02.anand.m
New member

Offline

Hello,
We are trying to port Free RTOS on PRIMER2.

The Demo Program For Primer 2 is not working,
Is there any H/W difference between Primer1 and Primer2 (Whether LCD is connected to the same Port.....?)
Please help me?

 
#2   2009-10-29 21:18:39
themanix
Member

Offline

LCD:
Primer 1 is on port C
Primer 2 is on port E

 
#3   2009-11-02 08:39:45
Francis
Administrator

Offline

Schematic is available in the Resource section.

 


To add comments, please register you.