Recent

Author Topic: Ultibo core a full featured embedded (no OS) environment for Raspberry Pi  (Read 47339 times)

Ultibo

  • New Member
  • *
  • Posts: 36
    • Ultibo.org
Announcing Ultibo core, an embedded (no OS) development environment for Raspberry Pi (all models).

Ultibo core is a unikernel or kernel in an RTL written entirely in Free Pascal and designed to make embedded or bare metal development accessible to all.

Features include:

  • Support for all models of Raspberry Pi (A/B/A+/B+/2B/Zero)
  • Pre-emptive threading
  • Full range of locking and synchronization primitives
  • Multicore support on Raspberry Pi 2B with all cores sharing workload
  • Thread priority, affinity and migration support
  • Complete IPv4 stack including TCP, UCP, ICMP and raw sockets as well as DNS and DHCP protocols
  • USB support with drivers for Hub, Keyboard, Mouse, Storage and Network
  • MMC/SD device support
  • Full support for FAT12/16/32, NTFS and CDFS filesystems
  • Interrupt handling
  • Hardware exception handling (catch an exception in code not a crash)
  • Complete RTL with strings, code pages, Unicode, classes, objects and exceptions
  • Clock and Timezone support
  • Console and framebuffer support including Fonts
  • Basic Shell (Console or Telnet) with file system commands and many others
  • HTTP/SMTP/POP3/NTP/Syslog client and server modules included
  • Support for Raspberry Pi devices like Timer, Watchdog and Random
  • Full Winsock 1.1 and Winsock 2 implementation
  • Packaged with a full compiler and IDE for quick start to development
  • Includes example projects plus a full demo image
  • HTTP image update module included (No SD card dance!)

100% Free Pascal code under the modified LGPL license.

Interested, sceptical, confused? Take a look at the website https://ultibo.org

Thanks,
« Last Edit: February 03, 2016, 01:16:38 pm by Ultibo »
Ultibo.org | Make something amazing
https://ultibo.org

Threads, multi-core, OpenGL, Camera, FAT, NTFS, TCP/IP, USB and more in 3MB with 2 second boot!

taazz

  • Hero Member
  • *****
  • Posts: 5368
Re: Ultibo core a full featured embedded (no OS) environment for Raspberry Pi
« Reply #1 on: February 03, 2016, 11:37:13 am »
Multiple questions but for now I'll only ask this.
1) Is there any virtual machine that one can download that simulates a raspberypi for testing?
2) what is the host os for this environment?

Very very excited.
Good judgement is the result of experience … Experience is the result of bad judgement.

OS : Windows 7 64 bit
Laz: Lazarus 1.4.4 FPC 2.6.4 i386-win32-win32/win64

Ultibo

  • New Member
  • *
  • Posts: 36
    • Ultibo.org
Re: Ultibo core a full featured embedded (no OS) environment for Raspberry Pi
« Reply #2 on: February 03, 2016, 11:53:17 am »
Multiple questions but for now I'll only ask this.
1) Is there any virtual machine that one can download that simulates a raspberypi for testing?
2) what is the host os for this environment?

Very very excited.

1. QEMU has emulation for Raspberry Pi although we haven't actually tried it and from what I read it is not quite complete.

2. Installer is for Windows but our wiki has command line build instructions which should be adaptable to Linux and others.

Ultibo.org | Make something amazing
https://ultibo.org

Threads, multi-core, OpenGL, Camera, FAT, NTFS, TCP/IP, USB and more in 3MB with 2 second boot!

Bostjan

  • New Member
  • *
  • Posts: 14
Re: Ultibo core a full featured embedded (no OS) environment for Raspberry Pi
« Reply #3 on: February 03, 2016, 01:05:24 pm »
Url for your web page is not working and google don't find anything relavant when searching for "utilbo".

Ultibo

  • New Member
  • *
  • Posts: 36
    • Ultibo.org
Re: Ultibo core a full featured embedded (no OS) environment for Raspberry Pi
« Reply #4 on: February 03, 2016, 01:18:12 pm »
Thanks for pointing out the incorrect URL. Now fixed in the original post.
Ultibo.org | Make something amazing
https://ultibo.org

Threads, multi-core, OpenGL, Camera, FAT, NTFS, TCP/IP, USB and more in 3MB with 2 second boot!

Laksen

  • Hero Member
  • *****
  • Posts: 743
    • J-Software
Re: Ultibo core a full featured embedded (no OS) environment for Raspberry Pi
« Reply #5 on: February 03, 2016, 01:24:51 pm »
Very impressive project :)

Didn't you forget to add the rtl/ultibo dir in the fpc source tree though?

Ultibo

  • New Member
  • *
  • Posts: 36
    • Ultibo.org
Re: Ultibo core a full featured embedded (no OS) environment for Raspberry Pi
« Reply #6 on: February 03, 2016, 01:34:20 pm »
Didn't you forget to add the rtl/ultibo dir in the fpc source tree though?

That's intentional, the rtl/ultibo dir is in the Core repository (as per the readme) so they can be committed separately.

Ultibo.org | Make something amazing
https://ultibo.org

Threads, multi-core, OpenGL, Camera, FAT, NTFS, TCP/IP, USB and more in 3MB with 2 second boot!

airpas

  • Full Member
  • ***
  • Posts: 179
Re: Ultibo core a full featured embedded (no OS) environment for Raspberry Pi
« Reply #7 on: February 03, 2016, 02:29:13 pm »
thats really interesting , going to check that ;)

Laksen

  • Hero Member
  • *****
  • Posts: 743
    • J-Software
Re: Ultibo core a full featured embedded (no OS) environment for Raspberry Pi
« Reply #8 on: February 03, 2016, 06:22:58 pm »
Didn't you forget to add the rtl/ultibo dir in the fpc source tree though?

That's intentional, the rtl/ultibo dir is in the Core repository (as per the readme) so they can be committed separately.

Ah I get  it now.. :)

Did you have to change anything else in the compiler than add the target info?

Leledumbo

  • Hero Member
  • *****
  • Posts: 8757
  • Programming + Glam Metal + Tae Kwon Do = Me
Re: Ultibo core a full featured embedded (no OS) environment for Raspberry Pi
« Reply #9 on: February 03, 2016, 08:20:13 pm »
:o *worship*
I still don't understand though, why you don't want to state it as an operating system. Looking at the features, it looks an OS to me.

taazz

  • Hero Member
  • *****
  • Posts: 5368
Re: Ultibo core a full featured embedded (no OS) environment for Raspberry Pi
« Reply #10 on: February 03, 2016, 10:12:38 pm »
Multiple questions but for now I'll only ask this.
1) Is there any virtual machine that one can download that simulates a raspberypi for testing?
2) what is the host os for this environment?

Very very excited.

1. QEMU has emulation for Raspberry Pi although we haven't actually tried it and from what I read it is not quite complete.
not looking for perfect just working, mostly to experience the how than the work it self. Thank you I'll search for it.

2. Installer is for Windows but our wiki has command line build instructions which should be adaptable to Linux and others.
Oh I'm a windows addict my self so no complains here. I steel fill that my suse13 is way to fragile for any real work although I bet that is my own habit talking (hence the addict) I could try to debug anything you like on it if no body else manages to get there faster ;).

Thank you. I'll be installing the qemu emulator for the next couple of days.
Good judgement is the result of experience … Experience is the result of bad judgement.

OS : Windows 7 64 bit
Laz: Lazarus 1.4.4 FPC 2.6.4 i386-win32-win32/win64

Ultibo

  • New Member
  • *
  • Posts: 36
    • Ultibo.org
Re: Ultibo core a full featured embedded (no OS) environment for Raspberry Pi
« Reply #11 on: February 04, 2016, 02:35:59 am »
Did you have to change anything else in the compiler than add the target info?

Not really, the handling of the linker behavior is part of the target module (t_ultibo) added to the compiler and the RTL required only a few additional IFDEFs in some of the include files, everything else is handled in /rtl/ultibo.

Ultibo.org | Make something amazing
https://ultibo.org

Threads, multi-core, OpenGL, Camera, FAT, NTFS, TCP/IP, USB and more in 3MB with 2 second boot!

Ultibo

  • New Member
  • *
  • Posts: 36
    • Ultibo.org
Re: Ultibo core a full featured embedded (no OS) environment for Raspberry Pi
« Reply #12 on: February 04, 2016, 02:42:56 am »
I still don't understand though, why you don't want to state it as an operating system. Looking at the features, it looks an OS to me.

The definition of an operating system for many is closely tied to things like Windows, Linux and OSX which try to be all things to all people.

Strictly speaking you could say Ultibo core is not a general purpose operating system but on most other criteria it fits the definition of an OS.
Ultibo.org | Make something amazing
https://ultibo.org

Threads, multi-core, OpenGL, Camera, FAT, NTFS, TCP/IP, USB and more in 3MB with 2 second boot!

herux

  • Full Member
  • ***
  • Posts: 102
Re: Ultibo core a full featured embedded (no OS) environment for Raspberry Pi
« Reply #13 on: February 04, 2016, 04:35:39 am »
this is very nice project, I am so impressed  :o
my 2 point of first questions  :D :
- is there any chance I build the source code, on my mac ? *https://ultibo.org/wiki/Building_from_Source
- what toolchain do i have to install or configure ? or not needed ?

Ultibo

  • New Member
  • *
  • Posts: 36
    • Ultibo.org
Re: Ultibo core a full featured embedded (no OS) environment for Raspberry Pi
« Reply #14 on: February 04, 2016, 05:00:07 am »
- is there any chance I build the source code, on my mac ? *https://ultibo.org/wiki/Building_from_Source

The build instructions on the wiki are for Windows but they are exactly what is used to build the released binaries. Someone with experience should be able to translate that into what is needed to build on the mac.

- what toolchain do i have to install or configure ? or not needed ?

I assume you will need a toolchain in order to get an assembler, linker etc (as/ld/objcopy) for cross compiling to ARM. We use the arm-none-eabi toolchain from https://launchpad.net/gcc-arm-embedded/+download to build and include the relevant Windows binaries (renamed to arm-ultibo-) in the download. There is a mac tarball listed on that page so it might be what you need.

I bet there is someone in these forums that could answer this much better than me.
Ultibo.org | Make something amazing
https://ultibo.org

Threads, multi-core, OpenGL, Camera, FAT, NTFS, TCP/IP, USB and more in 3MB with 2 second boot!

 

TinyPortal © 2005-2018