Xinu (simple Unix-like port for AVR)

Go To Last Post
3 posts / 0 new
Author
Message
#1
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

This popped up on Reddit earlier.

The xinu-avr project is a Xinu Operating System subset, modified to run on an AVR atmega328p microcontroller (e.g. Arduino boards).

http://se.fi.uncoma.edu.ar/xinu-...

https://github.com/zrafa/xinu-avr/

 

https://www.youtube.com/watch?v=...

 

I can't see it being anything other than a curiosity, i.e. no commercial purpose, but interesting and well-documented nonetheless.

 

Last Edited: Sun. Aug 30, 2020 - 01:08 PM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Hi, thanks for sharing here.

 

I'm the author of this Xinu version. I would like to add that after reading the Comer's book the code is like the book says: small and elegant.

 

For real use: if you do not add the Xinu shell and just use the microkernel, then the current Xinu binary for atmega328p will fit in 12KB of FLASH and 0.9KB of SRAM. So you have still space for the tasks code (your embedded RTOS app). The Xinu scheduler is RTOS, so it is useful for real products as well (similar to FreeRTOS if you do not use the Xinu shell and devices).

 

Also, the shell adds some useful tool for debug, because you could run your tasks inside the shell, and check each stack or how these behave concurrently. Also, to manage the tasks manually, if for example some tasks freeze and you want to check which ones, or if some task does not get CPU, etc. I mean, maybe the shell might be useful for some testing and debugging use cases as well.

Then, when you are done and your complete system (tasks) run well, you can disable/remove the shell, for making a release version (or alfa version for testing).

 

There is work to do yet (in both: microkernel and Xinu shell and tools). Contributions, comments and feedback are welcome.
(Example: I have a draft of a tiny block device and FS for the internal eeprom, or pipes for the shell, and so on)

Last Edited: Mon. Sep 7, 2020 - 09:35 PM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Thank you!

jornada660 wrote:
For real use: if you do not add the Xinu shell and just use the microkernel, then the current Xinu binary for atmega328p will fit in 12KB of FLASH and 0.9KB of SRAM. So you have still space for the tasks code (your embedded RTOS app). The Xinu scheduler is RTOS, so it is useful for real products as well (similar to FreeRTOS if you do not use the Xinu shell and devices).
Similar to some DEC PDP-11 and its RT-11 RTOS; these were popular for process control, test & measurement equipment (TME), ...

 


A Web Page Dedicated to the DEC PDP-11

...

Extended Memory: The PDP-11 could ONLY access a 64k 'window' into address space. 

...

 

"Dare to be naïve." - Buckminster Fuller