Sign in Join
Wiki copytemporary

Ultibo core: what changed

Revision 0 to 1. Removed lines have a minus sign; added lines have a plus sign.

Title: Ultibo core

OldNewLine
1+Ultibo core is an [[Embedded|embedded]] run-time platform and development environment written specifically for creating applications with small single board computers. It is built around the [[FPC|Free Pascal compiler]] and the [[Lazarus]] [[IDE|integrated development environment]]. Ultibo core is an RTL written entirely in Free Pascal and designed to make embedded or bare metal development accessible to all.
2+
3+## Installation
4+
5+### Windows
6+
7+A Windows installer is available and full [[Source code|source]] plus a large collection of examples is included.
8+
9+### macOS
10+
11+- Use FPC 3.1.1 the trunk version (so you have the source)
12+- Download arm-none-eabi toolchain from <https://launchpad.net/gcc-arm-embedded/5.0/5-2015-q4-major/+download/gcc-arm-none-eabi-5_2-2015q4-20151219-mac.tar.bz2>
13+- Extract the files in ~/Documents/gcc-arm-none-eabi
14+- git clone from <https://github.com/ultibohub> at least Core, FPC, and Lazarus
15+- You have 3 folders now, Core, FPC and Lazarus. Copy ultibo folder from Core/source/rtl/ultibo/ to FPC/source/rtl/
16+- type cd FPC/source
17+- type and wait until it finishes without errors:
18+
19+` make distclean OS_TARGET=ultibo CPU_TARGET=arm SUBARCH=armv7a CROSSBINDIR=~/Documents/gcc-arm-none-eabi/arm-none-eabi/bin/`\
20+` CROSSOPT="-CpARMV7A -CfVFPV3 -CIARM -OoFASTMATH"`
21+
22+- type and wait:
23+
24+` make all OS_TARGET=ultibo CPU_TARGET=arm SUBARCH=armv7a CROSSBINDIR=~/Documents/gcc-arm-none-eabi/arm-none-eabi/bin/ CROSSOPT="-CpARMV7A -CfVFPV3 -CIARM -OoFASTMATH"`
25+
26+- type and wait, assuming your FPC 3.1.1 is in the folder /usr/local/lib/fpc/3.1.1/ so option INSTALL_BASEDIR becomes INSTALL_BASEDIR=/usr/local/lib/fpc/3.1.1/
27+
28+` sudo make crossinstall CROSSBINDIR=~/Documents/gcc-arm-none-eabi/arm-none-eabi/bin/ CROSSOPT="-CpARMV7A -CfVFPV3 -CIARM -OoFASTMATH" OS_TARGET=ultibo CPU_TARGET=arm SUBARCH=armv7a INSTALL_BASEDIR=/usr/local/lib/fpc/3.1.1/`
29+
30+### Linux
31+
32+An installation script is available for [[Linux]], full [[Source code|source]] plus a large collection of examples is included.
33+
34+## Supported Devices
35+
36+- Raspberry Pi A, B, A+, B+
37+- Raspberry Pi Zero, ZeroW and Zero2W
38+- Raspberry Pi 2 model B
39+- Raspberry Pi 3 model B
40+- Raspberry Pi 3 model A+, B+
41+- Raspberry Pi 4 model B
42+- Raspberry Pi 400
43+- QEMU emulator
44+
45+## Features
46+
47+Features include:
48+
49+- Support for all models of Raspberry Pi (except Pico)
50+- Pre-emptive threading
51+- Full range of locking and synchronization primitives
52+- Multicore support on Raspberry Pi 2, 3 and 4 with all cores sharing workload
53+- Thread priority, affinity and migration support
54+- Complete IPv4 stack including TCP, UCP, ICMP and raw sockets as well as DNS and DHCP protocols
55+- USB support with drivers for Hub, Keyboard, Mouse, Storage, Network, HID, Touch, Gamepad and Joystick
56+- MMC/SD/SDIO device support including eMMC devices on Raspberry Pi Compute Modules
57+- Full support for FAT12/16/32, NTFS and CDFS filesystems
58+- Interrupt handling
59+- Hardware exception handling (catch an exception in code not a crash)
60+- Complete RTL with strings, code pages, Unicode, classes, objects and exceptions
61+- Clock and Timezone support
62+- Console and framebuffer support including Fonts
63+- Basic Shell (Console or Telnet) with file system commands and many others
64+- HTTP/SMTP/POP3/NTP/Syslog client and server modules included
65+- Support for Raspberry Pi devices like Timer, Watchdog and Random
66+- Full Winsock 1.1 and Winsock 2 implementation
67+- Packaged with a full compiler and IDE for quick start to development
68+- Includes example projects plus a full demo image
69+- HTTP image update module included (No SD card dance!)
70+
71+Drivers added for:
72+
73+- DMA
74+- GPIO
75+- UART and Serial
76+- I2C
77+- SPI
78+- PWM
79+- PL2303 and FTDI USB to Serial devices
80+- USB support for the LAN7515 (LAN78XX) chip
81+
82+New and enhanced features:
83+
84+- Raspberry Pi 3 and 4 support (32 bit only)
85+- Additional code page support
86+- Common cipher and hash algorithms for the beginning of crypto support
87+- Real time clock (RTC) support (with driver for DS1307 and similar chips)
88+- Static IP support with command line configuration
89+- Updated Lazarus IDE with modern docked layout
90+- Extra fonts plus new font creation tools
91+- Support for common LCD displays like the Adafruit 16x2
92+- QEMU ARM emulation support
93+- Port of the Asphyre/PXL graphics library
94+- Support for the FreeVision windowing package
95+- Standard C library support including POSIX threads
96+- Fast interrupt (FIQ) support
97+- Hardware accelerated OpenGL ES and OpenVG graphics and support for the official Pi camera
98+
99+## Videos
100+
101+- [Ultibo Demo 1.0.0](https://www.youtube.com/watch?v=GF9Xbf3mbf4)
102+
103+### Discovering Ultibo
104+
105+- [Episode 1 Getting Started](https://www.youtube.com/watch?v=TCfpb8M0WeQ)
106+- [Episode 2 Exploring USB](https://www.youtube.com/watch?v=qPK4NTIKEO4)
107+- [Episode 3 Building the RTL](https://www.youtube.com/watch?v=2A7Faeaq72c)
108+- [Episode 4 GPIO Events](https://www.youtube.com/watch?v=yfsuwbfyjgM)
109+- [Episode 5 LCD 16x2](https://www.youtube.com/watch?v=M7_dz71Z4xE)
110+- [Episode 6 Remote LED](https://www.youtube.com/watch?v=jS2YThZWhA4)
111+
112+## Links
113+
114+- [ultibo.org](https://ultibo.org/)
115+- [github](https://github.com/ultibohub/Core)
116+- [[Ultibo Quick Start]]
117+
118+---
119+*From the Free Pascal wiki, page "Ultibo core", as it stood on 2023-01-23 after a change by Ultbo, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's [[Licensing]] page. If you have concerns about this material, [message the admin](/wiki-contact).*

Back to history