All Projects → picoos → picoos

picoos / picoos

Licence: other
pico]OS realtime operating system

Programming Languages

c
50402 projects - #5 most used programming language
assembly
5116 projects
Makefile
30231 projects
CMake
9771 projects
Batchfile
5799 projects

Labels

Projects that are alternatives of or similar to picoos

Drone
CLI utility for Drone, an Embedded Operating System.
Stars: ✭ 114 (+123.53%)
Mutual labels:  rtos
Nos
RTOS for microcontrollers
Stars: ✭ 160 (+213.73%)
Mutual labels:  rtos
Talks
schedule and materials about my presentations
Stars: ✭ 245 (+380.39%)
Mutual labels:  rtos
Uc Os2
µC/OS-II is a preemptive, highly portable, and scalable real-time kernels. Designed for ease of use on a huge number of CPU architectures.
Stars: ✭ 120 (+135.29%)
Mutual labels:  rtos
M5p01 muprokaron
A tiny real-time kernel focusing on formal reliability and simplicity.
Stars: ✭ 132 (+158.82%)
Mutual labels:  rtos
Lwgsm
Lightweight AT commands parser for SimCOM GSM modules
Stars: ✭ 201 (+294.12%)
Mutual labels:  rtos
Libmemory
Embedded systems memory management library. Implementations for malloc(), free(), and other useful memory management functions
Stars: ✭ 102 (+100%)
Mutual labels:  rtos
mtkernel 3
micro T-Kernel 3.0
Stars: ✭ 105 (+105.88%)
Mutual labels:  rtos
Crect
A C++, compile-time, reactive RTOS for the Stack Resource Policy based Real-Time For the Masses kernel
Stars: ✭ 160 (+213.73%)
Mutual labels:  rtos
Mqttclient
A high-performance, high-stability, cross-platform MQTT client, developed based on the socket API, can be used on embedded devices (FreeRTOS / LiteOS / RT-Thread / TencentOS tiny), Linux, Windows, Mac, with a very concise The API interface realizes the quality of service of QOS2 with very few resources, and seamlessly connects the mbedtls encryption library.
Stars: ✭ 234 (+358.82%)
Mutual labels:  rtos
Luatos
合宙LuatOS -- Lua base RTOS, build for many embedded systems. LuatOS是运行在嵌入式硬件的实时操作系统
Stars: ✭ 124 (+143.14%)
Mutual labels:  rtos
Zephyr Doc
《Zephyr OS 文档 - 中文版》
Stars: ✭ 127 (+149.02%)
Mutual labels:  rtos
Lwesp
Lightweight Espressif AT parser library for ESP8266 and ESP32 devices.
Stars: ✭ 212 (+315.69%)
Mutual labels:  rtos
Zephyr Inside
揭秘 Zephyr OS
Stars: ✭ 119 (+133.33%)
Mutual labels:  rtos
IntrOS
Free cooperative operating system (OS) for microcontrollers
Stars: ✭ 38 (-25.49%)
Mutual labels:  rtos
Qpn
QP-nano real-time embedded framework/RTOS for embedded systems based on active objects (actors) and hierarchical state machines
Stars: ✭ 107 (+109.8%)
Mutual labels:  rtos
Polymcu
An open framework for micro-controller software
Stars: ✭ 173 (+239.22%)
Mutual labels:  rtos
adbd
Android Debug Bridge daemon implementation in RT-Thread
Stars: ✭ 37 (-27.45%)
Mutual labels:  rtos
FPGAmp
720p FPGA Media Player (RISC-V + Motion JPEG + SD + HDMI on an Artix 7)
Stars: ✭ 190 (+272.55%)
Mutual labels:  rtos
Helios
The free embedded operating system.
Stars: ✭ 223 (+337.25%)
Mutual labels:  rtos

pico]OS

This is the latest version of pico]OS, a highly configurable and very fast real time operating system. It targets a wide range of architectures, from the small 8 bit processors with very low memory till huge architectures like 32 bit processors with lots of memory. Please see the documentation for further information.

pico]OS was originally created by Dennis Kuschel and Swen Moczarski, see original site at sourceforge for details. They have given up on development of it. But as pico]OS is great software, I decided to pick up the maintenance and developent of it.

Compared to latest sf.net release (1.0.4) it has following updates:

  • Power management API to provide framework for MCU power saving / sleeping features
  • Suppression of timer interrupts during idle mode (tickless idle). Implementations are available for cortex-m/stm32 and MSP430 ports.
  • stdarg support for nano layer printf-functions
  • Makefile system uses GNU make pattern rules for source directory handling (otherwise projects that had many directories run into troubles)
  • Pico & nano layers are augmented by micro-layer, which contains support for filesystems (and some other things)
  • Support for using CMake as build system instead of GNU Make

I'm also actively maintaining hardware support for some environments:

  • Arm cortex-m0/m3/m4
  • Texas Instruments MSP430
  • Microchip PIC32
  • NPX LPC2xxx (Arm7tdmi)
  • Generic Unix (using ucontext(3))

There is some additional information in my blogs. Additional libraries for networking, 1-wire access etc. can be found in my github account.

Getting started

There are two methods to work with pico]OS. The first is to build the pico]OS library and link it to your project that you may develop with some kind of integrated compiler/debugger IDE. The second method is to use the Makefile system that is provided with pico]OS to build all you need - the pico]OS RTOS library, application libararies and your main program.

pico]OS makefiles need working GNU make for your host machine. For unix systems it is usually easily installable from source code or prebuilt package. For MS Windows, use of MSYS2 package is recommended.

Building example programs

When you have a working GNU make installed, you are now ready to build the example programs that are shipped with pico]OS. Assuming your host is a MS Windows machine and you have MS Visual Studio or the MinGW GCC package installed, you can compile the RTOS for MS Windows. Simply change into the examples/app directory and enter "make PORT=x86w32". If you have trouble building the examples, please read the readme file in the appropriated port directory (eg. ports/x86w32/readme.txt). You will find the generated executables in the directory bin/x86w32-deb/out.

Building pico]OS as library

Library version of pico]OS might be useful when using an IDE for development (other alternative is to include pico]OS source files in IDE project in it's native way). To build the library, execute make at pico]OS root directory.

The makefile takes two parameters:

  • PORT = name of the port to build (= the subdirectory name)
  • BUILD = version to build, possible values are DEBUG and RELEASE

Example: make PORT=avr BUILD=DEBUG

Builds the Atmel AVR port and includes debug informations. The generated library can be found in the directory lib/avr/deb/

The makefile knows the targets 'all', 'clean' and 'docu', and 'all' is the default. 'all' compiles the operating system. 'clean' removes all generated binaries. 'docu' generates the html help with use of the doxygen tool.

Makefile searches for the configuration file 'config.mak' in the pico]OS root directory. You can put in there your build parameters.

#--- start of file ---
 PORT  = avr
 BUILD = DEBUG
#---- end of file ----

Contributing to pico]OS development

Development takes place at github. To submit code, please follow these guidelines:

  • fork the project before making changes
  • create a git branch in forked project
  • code must be under same license as rest of pico]OS (modified BSD license)
  • format code in pico]OS style
    • indent with 2 spaces, no tabs
    • try to follow style of existing source files
  • before submitting pull request consider squashing of your commits
  • submit pull request
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].