Sign in Join
Wiki copytemporary

Ultibo core: what changed

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

OldNewLine
11Ultibo 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.
22
33## Installation
44
55### Windows
66
77A Windows installer is available and full [[Source code|source]] plus a large collection of examples is included.
88
99### macOS
1010
1111- Use FPC 3.1.1 the trunk version (so you have the source)
1212- 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>
1313- Extract the files in ~/Documents/gcc-arm-none-eabi
1414- git clone from <https://github.com/ultibohub> at least Core, FPC, and Lazarus
1515- You have 3 folders now, Core, FPC and Lazarus. Copy ultibo folder from Core/source/rtl/ultibo/ to FPC/source/rtl/
1616- type cd FPC/source
1717- type and wait until it finishes without errors:
1818
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"`
19+```text
20+ make distclean OS_TARGET=ultibo CPU_TARGET=arm SUBARCH=armv7a CROSSBINDIR=~/Documents/gcc-arm-none-eabi/arm-none-eabi/bin/
21+ CROSSOPT="-CpARMV7A -CfVFPV3 -CIARM -OoFASTMATH"
22+```
2123
2224- type and wait:
2325
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"`
26+```text
27+ 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"
28+```
2529
2630- 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/
2731
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/`
32+```text
33+ 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/
34+```
2935
3036### Linux
3137
3238An installation script is available for [[Linux]], full [[Source code|source]] plus a large collection of examples is included.
3339
3440## Supported Devices
3541
3642- Raspberry Pi A, B, A+, B+
3743- Raspberry Pi Zero, ZeroW and Zero2W
3844- Raspberry Pi 2 model B
3945- Raspberry Pi 3 model B
4046- Raspberry Pi 3 model A+, B+
4147- Raspberry Pi 4 model B
4248- Raspberry Pi 400
4349- QEMU emulator
4450
4551## Features
4652
4753Features include:
4854
4955- Support for all models of Raspberry Pi (except Pico)
5056- Pre-emptive threading
5157- Full range of locking and synchronization primitives
5258- Multicore support on Raspberry Pi 2, 3 and 4 with all cores sharing workload
5359- Thread priority, affinity and migration support
5460- Complete IPv4 stack including TCP, UCP, ICMP and raw sockets as well as DNS and DHCP protocols
5561- USB support with drivers for Hub, Keyboard, Mouse, Storage, Network, HID, Touch, Gamepad and Joystick
5662- MMC/SD/SDIO device support including eMMC devices on Raspberry Pi Compute Modules
5763- Full support for FAT12/16/32, NTFS and CDFS filesystems
5864- Interrupt handling
5965- Hardware exception handling (catch an exception in code not a crash)
6066- Complete RTL with strings, code pages, Unicode, classes, objects and exceptions
6167- Clock and Timezone support
6268- Console and framebuffer support including Fonts
6369- Basic Shell (Console or Telnet) with file system commands and many others
6470- HTTP/SMTP/POP3/NTP/Syslog client and server modules included
6571- Support for Raspberry Pi devices like Timer, Watchdog and Random
6672- Full Winsock 1.1 and Winsock 2 implementation
6773- Packaged with a full compiler and IDE for quick start to development
6874- Includes example projects plus a full demo image
6975- HTTP image update module included (No SD card dance!)
7076
7177Drivers added for:
7278
7379- DMA
7480- GPIO
7581- UART and Serial
7682- I2C
7783- SPI
7884- PWM
7985- PL2303 and FTDI USB to Serial devices
8086- USB support for the LAN7515 (LAN78XX) chip
8187
8288New and enhanced features:
8389
8490- Raspberry Pi 3 and 4 support (32 bit only)
8591- Additional code page support
8692- Common cipher and hash algorithms for the beginning of crypto support
8793- Real time clock (RTC) support (with driver for DS1307 and similar chips)
8894- Static IP support with command line configuration
8995- Updated Lazarus IDE with modern docked layout
9096- Extra fonts plus new font creation tools
9197- Support for common LCD displays like the Adafruit 16x2
9298- QEMU ARM emulation support
9399- Port of the Asphyre/PXL graphics library
94100- Support for the FreeVision windowing package
95101- Standard C library support including POSIX threads
96102- Fast interrupt (FIQ) support
97103- Hardware accelerated OpenGL ES and OpenVG graphics and support for the official Pi camera
98104
99105## Videos
100106
101107- [Ultibo Demo 1.0.0](https://www.youtube.com/watch?v=GF9Xbf3mbf4)
102108
103109### Discovering Ultibo
104110
105111- [Episode 1 Getting Started](https://www.youtube.com/watch?v=TCfpb8M0WeQ)
106112- [Episode 2 Exploring USB](https://www.youtube.com/watch?v=qPK4NTIKEO4)
107113- [Episode 3 Building the RTL](https://www.youtube.com/watch?v=2A7Faeaq72c)
108114- [Episode 4 GPIO Events](https://www.youtube.com/watch?v=yfsuwbfyjgM)
109115- [Episode 5 LCD 16x2](https://www.youtube.com/watch?v=M7_dz71Z4xE)
110116- [Episode 6 Remote LED](https://www.youtube.com/watch?v=jS2YThZWhA4)
111117
112118## Links
113119
114120- [ultibo.org](https://ultibo.org/)
115121- [github](https://github.com/ultibohub/Core)
116122- [[Ultibo Quick Start]]
117123
118124---
119125*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