Страница 1 из 1

Ultibo

СообщениеДобавлено: 20.07.2016 15:59:38
MiniQ
Ultibo core - полнофункциональная среда для разработки встроенных (embedded) решений без операционной системы.
Ultibo core представляет такие услуги, как управление памятью, потоки, сеть, файловые системы.
Используя API Ultibo core вы можете получить доступ к различным аппаратным устройствам, например USB, использовать стандартные протоколы, таким как IP, TCP, UDP, упралялать переферийными устройствами через GPIO.
Ultibo core не разрабатывалось как операционная система и предлагает неограниченный доступ к аппаратным средствам.
Ultibo core лицензируется под GNU GPL v2.1 и полностью доступна для использования, модификации и распространения согласно условиям лицензии.
В настоящее время поддерживает все модели RaspberryPi.
Код полностью написан на FreePascal.
Официальный сайт https://ultibo.org (требуется поддержка TLS 1.1/1.2 в браузере)
Обзоры на Youtube https://www.youtube.com/channel/UCFSAYWD8k15nhdmX6CgyhvA

Re: Ultibo

СообщениеДобавлено: 22.07.2016 14:43:08
wavebvg
Снимаю шляпу :idea:
И читаю исходники

Re: Ultibo

СообщениеДобавлено: 25.08.2016 14:38:17
Nick Khatkov
Да, всего то полгода этой программе и нацеленность на обслуживание микропроцессорной техники с опосредованным добавлением еще и ардуино. Заманчивая связка да еще и на паскале.

Re: Ultibo

СообщениеДобавлено: 27.09.2016 20:09:30
Nick Khatkov
Решил попробовать установить Ultibo на Raspberry Pi3. Вообще сначала было трудно понять с чего начинать. На ихнем сайте представлены видео и не более того. Остальное мне не дало практически ничего. Начал со скачивания основного пакета. Там оказался лазарус - Lazarus IDE (Ultibo Edition). У меня до этого уже стоял лазарус, думал будут конфликтовать, но нет, обошлось - он встал на диск с:\Ultibo Самое простое, это начать с примера и вывести слово "Привет Вася!". Поискал среди примеров - есть, нашел. Загнал в компилятор и откомпилировал, но запустить - нет возможности для проверки или я чего еще может быть не доизучил. Исходный текст ихнего примера из пакета:
program HelloWorld;

{$mode objfpc}{$H+}

{ Example 01 Hello World }
{ }
{ This example provides the classic first example but takes a couple of extra }
{ lines to achieve the result using Ultibo. }
{ }
{ To compile the example select Run, Compile (or Run, Build) from the menu. }
{ }
{ Once compiled copy the kernel7.img file to an SD card along with the }
{ firmware files and use it to boot your Raspberry Pi. }
{ }
{ Raspberry Pi 3B version }
{ What's the difference? See Project, Project Options, Config and Target. }


{ A couple of introductions first, notice the program keyword above? That tells}
{ Free Pascal that this is a program and not just a unit. When we compile this }
{ program we want Free Pascal to compile all of the required units and then }
{ link them into a completed executable ready for us to run. }

{We need to declare some units that are used for this example.}
uses
GlobalConst,
GlobalTypes,
Threads,
Console,
Framebuffer,
BCM2837,
BCM2710;

{We also need to declare a variable to hold a console window handle.}
var
WindowHandle:TWindowHandle;

{Our code goes between the begin and end of the program file or in other units
we create that can be called from this unit (File, New Unit from the menu).

Whatever is the first line after begin below will be the first thing executed
by Ultibo after the started process has completed.}

begin
{First we create a console window to write our text on, we make it the full
size of the screen by specifying CONSOLE_POSITION_FULL and allow it to be the
default window by passing True as the last parameter.}
WindowHandle:=ConsoleWindowCreate(ConsoleDeviceGetDefault,CONSOLE_POSITION_FULL,True);

{Next write some text on our newly created console window, we pass the handle
of the console window created above to tell it where to write the text since
there can be multiple console windows on screen at once.

This will appear in the top left corner of the screen in the default color
and font.}
ConsoleWindowWriteLn(WindowHandle,'Hello Ultibo!');

{There are multiple ways to achieve the same thing, because we allowed our console
window to be the default and we know there are no other windows present, we could
simply call ConsoleWriteLn() or even WriteLn() instead and the text would appear
on the default console window. Try them out if you want to experiment.}

{Because Ultibo is always multi threaded, we should never allow the code to exit
from the begin..end block of the program. See the Wiki for more information on
why but unless you are sure of what will happen it is best to simply halt this
thread here.}
ThreadHalt(0);
end.

Что интересно там три примера везде на каждый пример - для всех трех малинок. Это пример для третьей.
После того как компильнул - пошел искать результат. Дело оказалось не простым, поэтому прописал пути к этому проекту. Тогда оно яснее стало проект *.elf попал в указанный адрес. Остальное добавилось по адресу к исходникам.
Тут пришлось внимательно изучать видео с их сайта - причем оно не совсем качественным оказалось с точки разбора буковок. Оказалось, что надо взять три файла из ядра C:\Ultibo\Core\firmware\RPi3 (bootcode.bin fixup.dat start.elf)в соответствии со своей малиной и откомпелированный, только он получается имеет одно и тоже название во всех проектах - kernel7.img Кто бы знал! Я не знал. Он и появляется тоже после компиляции проекта. Все эти четыре файла просто копируются на микро sd и все. Я думал еще может надо что форматировать - нет не надо, прочсто копируются на чистую sd и все. Потом я ее вставил в малину включил и... сразу все на удивление получилось с первого раза. Желтая рамка и все такое и на экране этот самый привет. Это все как начать. Грузится за долю секунды - очень быстро и на карте места полно. Попробовал проект с клавиатурой, чтоб проверить usb порты. У меня стояла маленькая фишка для беспроводной клавиатуры в гнезде. С ней и запустил новый пример. Получилось все сразу и конечно быстрее - клавиатурный ввод работает, только выдает только английский текст, не русифицируется. Пример, не корректировал - делал как есть. Подозреваю, что блютуф и wifi долго еще не будут подключены для третьей малины, но порты usb добавлены.
В результате маленький вывод. Все это выглядит, как работа в старом добром досе и скорее всего это дело будет иметь сначала успех в малине zero. Так и хочется вспомнить TurboVizion, а может и сделать ее аналог для данного случая. Общий вид запушенного лазаруса в виндоусе - полное отсутствие компонент. Присутствует сложность работы с новыми классами и библиотеками - не все сразу смогут это дело использовать, хотя может и ошибаюсь.