|
|
| | ---- | | ---- |
| | | | |
| − | Ultibo core is a full featured environment for embedded or bare metal (without an operating system) development on Raspberry Pi (all models). 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, 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. | | 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. |
|
|
| | ---- | | ---- |
| | | | |
| − | 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. |
| | | | |
| | : [[Getting_Started|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. | + | : [[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 === |
|
|
| | ---- | | ---- |
| | | | |
| − | 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. |
| | | | |
| | : [[Unit_Reference|Unit Reference]] - Complete API reference for all Ultibo core units. | | : [[Unit_Reference|Unit Reference]] - Complete API reference for all Ultibo core units. |
| | : [[Environment_Variables|Environment Variables]] - Details of all environment variables that can be passed on the command line. | | : [[Environment_Variables|Environment Variables]] - Details of all environment variables that can be passed on the command line. |
| | | | |
| − | Even though the installer download provides everything needed to get started, some may want to build the Ultibo RTL, or even FPC and Lazarus from sources in order to customize the way things work. If you're a Linux user, we don't currently provide a package that includes our modifications to FPC or Lazarus however you should be able to build your own using our Windows build instructions as a starting point. | + | Even though the installer download provides everything needed to get started, some may want to build the Ultibo RTL, or even FPC and Lazarus from sources in order to customize the way things work. If you're a Linux or Mac user, we don't currently provide a package that includes our modifications to FPC or Lazarus however you should be able to build your own using our build instructions as a starting point. |
| | | | |
| − | : [[Building_from_Source|Building from Source]] - How to rebuild the RTL, FPC or Lazarus from source. | + | : [[Building_from_Source|Building from Source]] - How to rebuild the RTL, FPC or Lazarus from source on Windows. |
| | + | : [[Building_for_Debian|Building for Debian]] - Building FPC and the RTL for Debian Linux. |
| | + | : [[Building_for_Raspbian|Building for Raspbian]] - Building FPC and the RTL for Raspbian Linux. |
| | + | : [[Building_for_Mac|Building for Mac]] - Building FPC and the RTL for Mac OSX. |
| | + | |
| | + | === Supporting the Ultibo Project === |
| | + | ---- |
| | + | |
| | + | Like any open source project there are many ways you can help and support, it could be as simple as telling others about it, sharing your projects, contributing some code or writing some documentation. You can even choose to directly sponsor a feature if you prefer. Whatever you might decide to do, the goal is always to create an environment where everyone can experience the excitement of creating something from their own imagination. For more details see [https://ultibo.org/supporting-ultibo Supporting Ultibo]. |
| | | | |
| | === Current Status === | | === Current Status === |
|
|
| | Ultibo core is a work in progress (all software is) so not every feature is supported or fully implemented yet. The support for both features and hardware will continue to grow with each release with new support added based on need. Priority is always given to developing those things that have the most benefit and on ensuring that both performance and stability are continually improved. | | Ultibo core is a work in progress (all software is) so not every feature is supported or fully implemented yet. The support for both features and hardware will continue to grow with each release with new support added based on need. Priority is always given to developing those things that have the most benefit and on ensuring that both performance and stability are continually improved. |
| | | | |
Exception encountered, of type "Error"