prikarna / NanoOS

Tiny OS for Cortex-M based chipset with multithread and fault handling features.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

NanoOS

Tiny OS for Cortex-M based chipset with multithread and fault handling features. For now only support for STM32F103XXX chipset only, STM32F103C8 chipset for specific.


Brief :

Memory :
- NanoOS divide flash and sram memory into two section each, one for the NanoOS itself 
  and other for the application that run on the top of it. From 64K bytes total flash, 
  32K bytes used by NanoOS, 31K reserved for the application and 1K reserved for 
  configuration. From 20K bytes total sram, 10K bytes used by NanoOS and another 10K 
  bytes reserved for application. So application can have 31K bytes flash and 10K bytes 
  sram. Note that this may change in the future.
  
Thread :
- For now only support for 4 active threads that can run concurrently and this is a 
  'stack based' thread (a classic method for multithread mechanism). Each stack has 2K 
  bytes size but not all of it can be used effectively by application because NanoOS 
  need to compensate small amount of stack to do some stack protection. Note that this 
  kind of protection may not suitable for all situations. This stack is a just memory 
  (sram) and it is a fixed allocation, application can't change it.
- Use system tick exception, which is available on ARM Cortex-M processor, with specific 
  priority to drive thread operation.
  
Interfaces :
- NanoOS has two interfaces to communicate to the outside world. One use USART3 (which 
  available in STM32F103C8 chipset). This interface is used by NanoOS to interract with
  user via built-in console. This console is simple console to do some administation tasks 
  available on NanoOS. Note that this is simple console and don't provide a security. USART3
  also can be used by application to output a debug message while developing an application.
  The secound interfaec is USB. This interface can be used by application to communicate
  with the outside world like a PC (Personal Computer). This interface is a simple serial
  (COM) port to a PC point of view.
- These two interfaces can be accessed via a terminal program, e.g. Hyperterminal, Putty and
  NanoOS terminal.
  
NanoOS Terminal :
- A PC program running on Windows, (for now only tested on Windows XP SP 2), specifically for 
  NanoOS to control some aspect of NanoOS via built-in console. This program can be used to 
  install a NanoOS application too.
- This program has built-in virtual display to simulate a LCD touch screen. Can be usefull to
  build a user interface in NanoOS application. Note that this is just simulation and use USB
  interface to communicate with.
  
Nano OS API :
- A simple application programming interface or API. For now this only tested on C/C++ language.
  The main purpose of this API is actually not to 'serve' an application, but it rather for
  synchronization so that the application can access the NanoOS resource in multhreaded 
  environment safer. Note that an application can access NanoOS resource or function directly
  without this API if it wanted to.

About

Tiny OS for Cortex-M based chipset with multithread and fault handling features.

License:MIT License


Languages

Language:C++ 55.9%Language:C 40.9%Language:Makefile 3.0%Language:HTML 0.1%