|
|
| | |}--> | | |}--> |
| | | | |
| − | Welcome to the Ultibo wiki, the place to find detailed information about Ultibo, what it can do and how to use it. | + | Welcome to the Ultibo wiki, the place to find detailed information about Ultibo, what it can do and how to use it. This content will be continually expanding as development of Ultibo core progresses, check back regularly to stay up to date with the latest information. |
| | | | |
| | | | |
|
|
| | ---- | | ---- |
| | | | |
| − | Ultibo core is a full featured environment for embedded or bare metal (without an operating system) development on Raspberry Pi. It is not an operating system itself but provides many of the same services as an OS such as memory management, threading, networking and file systems. Primarily intended to make development of embedded applications as similar as possible to development for other platforms by providing common features and services and eliminating the need to begin from scratch, Ultibo core can be used in many different ways. | + | Ultibo core is a full featured environment for embedded or bare metal (without an operating system) development on Raspberry Pi (all models except Pico). It is not an operating system itself but provides many of the same services as an OS such as memory management, threading, networking and file systems. Primarily intended to make development of embedded applications as similar as possible to development for other platforms by providing common features and services and eliminating the need to begin from scratch, Ultibo core can be used in many different ways. |
| | | | |
| − | You may want to use it simply to develop applications that take advantage of the extensive API to create connected devices which support common hardware such as USB and standard protocols like IP, TCP and UDP or physical computing via GPIO control. Alternatively you might use it to experiment with operating system design and embedded development, avoiding the need to create everything from scratch and allowing you to focus on trying out ideas and concepts in an environment where the basics are already taken care of. | + | You may want to use it simply to develop applications that take advantage of the extensive API to create connected devices, or Internet of Things (IoT), which support common hardware such as USB and standard protocols like IP, TCP and UDP or physical computing via GPIO control. Alternatively you might use it to experiment with operating system design and embedded development, avoiding the need to create everything from scratch and allowing you to focus on trying out ideas and concepts in an environment where the basics are already taken care of. |
| | | | |
| | More advanced users may opt to use Ultibo core as a base for exploring specific ARM technologies such as TrustZone and Hypervisor mode, because you have complete and unrestricted hardware access you can "take over" one or more CPUs for example to use as you require and still allow Ultibo core to provide basic services like network connectivity and logging. | | More advanced users may opt to use Ultibo core as a base for exploring specific ARM technologies such as TrustZone and Hypervisor mode, because you have complete and unrestricted hardware access you can "take over" one or more CPUs for example to use as you require and still allow Ultibo core to provide basic services like network connectivity and logging. |
|
|
| | ---- | | ---- |
| | | | |
| − | Based on the powerful open source Free Pascal compiler and the Lazarus integrated development environment (IDE), Ultibo core doesn't require you to gather together components to create a development environment or wrestle with linker script syntax. Everything you need to create and compile working applications is included in the installer [http://ultibo.org/download/ download] so you can create your first embedded application as easily as starting a new project, adding a few lines of code and compiling. | + | Based on the powerful open source Free Pascal compiler and the Lazarus integrated development environment (IDE), Ultibo core doesn't require you to gather together components to create a development environment or wrestle with linker script syntax. Everything you need to create and compile working applications is included in the installer [https://ultibo.org/download/ download] so you can create your first embedded application as easily as starting a new project, adding a few lines of code and compiling. |
| | | | |
| − | : [[GettingStarted|Getting Started]] - A simple guide to creating your first embedded application. | + | : [[Getting_Started|Getting Started]] - A simple guide to creating your first embedded application. |
| | + | : [[Demo_Image|Demo Image]] - See what Ultibo can do by installing and running the demo image, or if you don’t have a Raspberry Pi you can watch a video of the demo on [https://youtu.be/GF9Xbf3mbf4 YouTube]. |
| | | | |
| | === Architecture and Design === | | === Architecture and Design === |
|
|
| | Designed as a unikernel or kernel in a run time library (RTL), Ultibo core is much more than just a boot loader or helper library. When you compile even the simplest application the core functionality of threading, memory management, interrupt handling, clock, timers, strings, objects etc is automatically included in your program so before your code is executed a complete environment has been established to support your application. You don't need to know how it works to use Ultibo core but being open source everything is there for you to explore. | | Designed as a unikernel or kernel in a run time library (RTL), Ultibo core is much more than just a boot loader or helper library. When you compile even the simplest application the core functionality of threading, memory management, interrupt handling, clock, timers, strings, objects etc is automatically included in your program so before your code is executed a complete environment has been established to support your application. You don't need to know how it works to use Ultibo core but being open source everything is there for you to explore. |
| | | | |
| − | : [[Architecture|Architecture and Design]] - Detailed information about the internal workings of Ultibo core. | + | : [[Architecture|Architecture]] - Detailed information about the internal workings of Ultibo core. |
| | | | |
| | === Developing with Ultibo === | | === Developing with Ultibo === |
| | ---- | | ---- |
| | | | |
| − | With support for almost all of the Free Pascal RTL functionality including memory, strings, classes, objects, files, threads, sockets and unicode, most of the information and examples in the Free Pascal documentation can be used directly with little or no change. Ultibo core also includes additional APIs that allow direct access to core functionality and support for specific hardware and protocols. | + | With support for almost all of the Free Pascal RTL functionality including memory, strings, classes, objects, files, threads, sockets, exceptions and unicode, most of the information and examples in the Free Pascal documentation can be used directly with little or no change. Ultibo core also includes additional APIs that allow direct access to core functionality and support for specific hardware and protocols. |
| | | | |
Exception encountered, of type "Error"