Coder Social home page Coder Social logo

fluxguardian / pic16zos Goto Github PK

View Code? Open in Web Editor NEW

This project forked from daudzoss/pic16zos

0.0 0.0 0.0 1.89 MB

PIC16 zOS is a lightweight, small-footprint, preemptively multitasking RTOS for Microchip Technology's entire enhanced midrange 8-bit PIC microcontroller family (not to be confused with a variation on the same name that requires 1e9 to 1e12 the system resources)

License: GNU General Public License v3.0

C++ 48.31% C 2.63% Tcl 0.14% Assembly 26.29% Makefile 0.16% NASL 22.47%

pic16zos's Introduction

pic16zos

zOS is a lightweight, small-footprint, preemptively multitasking RTOS for Microchip Technology's entire enhanced midrange 8-bit microcontroller family (14-bit core with part numbers beginning "PIC12" or "PIC16")

zOS supports up to 5 re-entrant jobs with a 2-byte IPC mailbox each and up to 80 bytes of local memory each, which may be created/killed/restarted/slept/paused/forked/replaced in any suitably privileged context as well as searched by handle

A library of macros for instantiating potentially useful jobs eventually will include:

  • zOS_ADR/zOS_INT/zOS_LAU, for launching new jobs with a certain start address "handle" and interrupt lines in just a few lines of assembly source

  • zOS_MUL, a multitasking-aware re-entrant 16x16bit signed multiply (for the PIC16F1616 family equipped with the MathACC core-independent peripheral) that will yield the core to other jobs during the calcuation and spin waits for exclusive access

  • zOS_HEA, a set of heap management routines to allow malloc() and free() via SWI since jobs are otherwise limited to their local memory of 80 bytes in their bank

  • zOS_CON, an interrupt-driven console outputting to any EUSART

  • zOS_MON, like zOS_CON but with a command-line interface for monitoring of the PIC memory space

  • zOS_MAN, built on top of zOS_CON with additional commands for job management (forking, sleeping, killing, etc.)

  • zOS_RUN, for setting up the timer0 peripheral used for the system tick and context-switching quantum...this is the "main loop" that starts everything going after the part and initial job(s) have been set up

Bank switching in the application should not be used or needed outside of the interrupt-handler context, as there is a per-job hardware ISR interface. User-space communication with the kernel and with other jobs is accomplished with either software interrupts or the mailbox interface. No job priority or starvation prevention is supported at this time due to the lightweight nature of the round-robin scheduler in zOS.

Minimum system requirements: enhanced 14-bit PIC core device with 512 words flash and 128 bytes SRAM

pic16zos's People

Contributors

daudzoss avatar dz0618 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.