New open source RTOS for PICs

Discussion in 'Programmer's Corner' started by dappertgunn, Jan 15, 2014.

  1. dappertgunn

    Thread Starter New Member

    Jan 15, 2014
    Thought you guys may be interested, this RTOS (qkernel) went open source. It's pretty decent being tickless and such.

  2. nsaspook

    AAC Fanatic!

    Aug 27, 2009
    Yawn. Most tasks at the PIC level can be implement by the 'big loop' or a simple round robin task scheduler. If you really need complex locking and messaging to synchronize activities for your application then use a micro 'computer' with a real RTOS.
  3. takao21203

    AAC Fanatic!

    Apr 28, 2012
    What if you share a serial port for external FLASH and a TFT?

    From time to time, you may want to read some stuff from the FLASH, but it is not required immediately, and also you may want to update the display in slices.

    It is possible to program it with one timer interrupt and layered counters, to form a simple scheduler.

    But employing some RTOS code for that can't be wrong.
  4. ErnieM

    AAC Fanatic!

    Apr 24, 2011
    My thought is I'm always suspicious of someone who joins the forum so they can tout some marvelous new thing they just found.
  5. THE_RB

    AAC Fanatic!

    Feb 11, 2008
    Sure it could be a spam ad, but at least it's open source. :)

    The problem with RTOS type things on small micros like PICs is that they reduce code efficiency a lot compared to code written to perform a specific application in the best way. Automatic scheduling etc is better on larger processors that have a lot more speed and lot more resources.
  6. 3v0


    Mar 26, 2009
    The page the OP linked to says "Full support of the PIC24E and dsPIC33E". I wonder how its footprint compares to embedded linux.

    Cooperative multitasking is better suited for small processors but is a bit harder to write code for. Still it does not feel all that useful to me. For teaching I wrote a cooperative multitasking setup (task switcher) with blocking on resources etc. It is fun to play with but there always seems to be an easier solution then using it. I did hear from one developer in China who is using it.
  7. nsaspook

    AAC Fanatic!

    Aug 27, 2009
    I wrote one for the Atari ST (68000) long ago as learning experience for systems programming using Modula-2. I learned a lot about the 68000 architectures process switching methods but without a real virtual machine or true memory mapping and protection like a PIC32 it's a lot of extra complexity for little gain because most controller sized programs can use variable 'state' instead of message-passing or classic IPC type methods to control execution threads. If the controllers functions are closely-coupled in time and data, creating an abstraction of independent execution beyond ISR based tasking just seems clunky for simple programs.

    PS: The Internet never forgets, I did a search and found info about my old stuff MX2.
    Last edited: Jan 19, 2014