October 25, 2017

ulitbo: ultibo core以外に利用可能なネットワーク系ライブラリ

Ultiboの場合、ベアメタルと言ってもUltibo Coreのライブラリに加え、FPCなどで使用されてるライブラリなどを使用することによって、高度なネットワークプログラミング環境が利用できます。(残念なのは、まだWiFiドライバができてないことですが…)

Ultibo Coreのライブラリのネットワーク関連機能では、現時点ではFTPなど対応してないものもあります。

https://ultibo.org/wiki/Current_Status

ネットワーク関連ライブラリとして、FPC/Lazarusでよく使われるものにSynapse/Synaserがあります。現在UltiboでもSynapse/Synaserが使用できるようになっています(ただし、まだ一部機能は動かないようです)

Synaser/Synapseは以下からダウンロードができます。
https://github.com/ultibohub/AraratSynapse

Synapse/Synaserについてのサンプルも徐々に公開されています。
https://github.com/ultibohub/Examples/tree/master/Synapse

Echoデーモン、FTPサーバ、HTTPサーバ、SNMPサーバ、Sendmail、
TFTPサーバなどに加えて、シリアルエコーのサンプルもあります。

October 24, 2017

Ultibo: Raspberry Pi ベアメタルでSqlite3を使うには

Ultibo CoreではSqlite3がサポートされています。

Ultibo Coreをインストールすると、SQLite3がインストールされます。
~/ultibo/core/fpc/units/armv7-ultibo/lib/libsqlite3.a

使用方法は簡単なので、説明が見当たりません。

これもFPC, Lazarusを使ってる人ならなんとなく分かるかもしれませんがUltiboで初めてFPC, Lazarusを使用する人にとっては、戸惑うと思います。

FPCでは多くのDBをサポートしており、LazrusではビジュアルなDBコントロールも豊富にあります。
Ultiboでsqlite3を使用するには、FPCのサンプルが参考になります。

~/ultibo/core/fpc/share/doc/fpc-3.1.1/sqlite/examples/test.pas

このサンプルをUltiboで動かすには、LazarusでRaspbery Pi用のプロジェクトを
新規作成し、usesに以下のユニットを追加します。

  Console, FileSystem, FATFS,
 sqlite3,sqlite3db, strings;

新規作成したプロジェクトそのままではファイルの読み書きは出来ませんので、
FileSystemと、FATFSまたはNTFSなどのファイルシステム用のunitを指定します。
sqlite3はSQLite3をPascalでアクセスするためのものです。 sqlite3dbは素のsqlite3よりも、簡単に使用できるためのユニットです。FPCにはsqldbというさらに高度なDBアクセスをするためのライブラリを使用することが出来ます。(ultiboでsqldbがうまく動くかどうか未確認ですが…)

ファイルを扱うアプリの場合は、ファイルアクセスする前に以下の処理を追加します。

  while not DirectoryExists('C:\') do
   begin
    {Sleep for a second}
    Sleep(1000);
   end;

UltiboはOSではありませんので、ファイルシステムが立ち上がってからユーザアプリが
起動されるわけではないので、ファイルシステムが起動しアクセスできるまで待機する
必要があるのです。

October 22, 2017

Ultibo C言語と組み合わせて使用するには

Ultiboではlibc, libm, libgcc,それにlibsqlite3など幾つかのC言語ライブラリが用意されています。
新規でプログラムを作成するなら、態々C言語で記述する必要もないのですが、過去に作ったソースを流用したいときなどはそのままCの関数を呼び出せると便利です。

FPCではC言語のライブラリを使用する機能がありますから、Ultiboだからといって特別なことはありません。
詳細についてはFPCの関連Wikiに解説があります。
言い換えれば、Ultiboのサイトでは最低限の説明しか見つからないので、FPCが初めての人にとっては、どうしたらいいのか迷うかと思います。

以下に標準的な手順を示します。

① Cのソースとヘッダファイルを作成する。
② ライブラリを生成および、ヘッダーファイルの変換をする、makefileを作成する。
③ 呼び出し元となるユニットの中にリンクするライブラリ指定の$linklibを記述する。
④ 呼び出し元となるユニットの中に,C言語のヘッダーに相当するファイルを取り込む$includeを記述する。
⑤ Lazarusのプロジェクトオプションダイアログにて、ビルドする前にmakeを実行するように設定する。

以上です。
後はLazarusのコンパイルボタンをクリックすれば、kernel7.imgなどが生成されます。
(ファイル名は対象により異なる)

以下に、セミナーテキストの追加部分を載せておきます。

http://tensei.cocolog-nifty.com/ultibo/link_with_C_program.pdf

September 20, 2017

Ultibo BeetRootがリリース(Raspberry Pi ベアメタルでVC4が使用可能)

Ultiboの最新版がリリースされました。

V2.0.029 BeetRootです。

特筆すべきことは、VideoCore IV GPUがフルサポートされたことでしょうか。

pthreadのサポートも追加され、C言語のライブラリや、アプリを動かす環境がだいぶ整ってきたようです。(C言語ライブラリの場合静的リンクするとライセンスがネックになるかもしれません。 静的リンクが認められているFPCのModified LGPLの方が便利そうです)

Raspberry Pi以外の移植は当面期待できないようです。

Aarch64については、まだ起動部分のアセンブラソースが空のようでした。

セミナーのテキストを更新しないと…

http://www3.jeed.or.jp/shizuoka/college//company/h29semi/E41_1.html

May 27, 2017

Lazarus 1.8RC1からIndustrialパッケージが無くなってる

先日、Lazarus1.8RC1がリリースされました。

とりあえずインストールしてみたところ、パッケージの再構築でIndustrialパッケージが
なくなっていました。

「Move Industrial package from Lazarus sources to CCR.」とのことです。

見た目の良さならBGRA関連のコントロールを使用したほうが良いようです。

以前のIndustrial関連コンポーネントを使用してるフォームを開きたい場合は、
Lazarus Code and Component Repositoryから入手できます。

https://sourceforge.net/projects/lazarus-ccr/?source=directory 

SVNからスナップショットをダウンロードしてパッケージをインストールしてください。

https://sourceforge.net/p/lazarus-ccr/svn/HEAD/tree/

componentsのindustrialstuffをインストールします。

May 09, 2017

Linuxでの、Ultibo用Lazarusのインストール方法

linuxのUltibo用Lazarusのインストール方法は、

https://ultibo.org/forum/viewtopic.php?f=13&t=573

を参考にしてください。

先日のセミナーでは、Windows版のインストールと、Linux版のインストールを行いました。

April 21, 2017

Ultibo core 1.3.245

Ultibo coreが1.3.245になりました。

https://ultibo.org/forum/viewtopic.php?f=4&t=559

色々と改善がされているようです。 温度に関しても改良がされてようです。

全開、紹介したUbuntu用にまとめられてるものは、Ultibo coreのバージョンが
古いようです。 どうやら、ソースからインストールしたほうが良いようです。

ソースから、インストールする場合FPCは3.0.0からスタートする必要があります。
また、インストール時の細かい手順が、説明が抜けてたりするので大変かもしれません。

April 04, 2017

Ultibo: Raspberry Piでベアメタル開発(3)

Ultiboのインストール

UlitboはFPC/Lazarusをベースにしているため、Windows/Linuxのクロス開発環境で開発します。

https://ultibo.org/download/
UltiboのダウンロードページにはWindows 用のUltibo coreが用意されていますので、それをダウンロードしてインストールします。

Linux、Macについての、開発環境の設定方法も以下のページにありますが
Macについては、まだ詳細情報はこれからのようです。

Debian

Raspbian

Mac

ところが、Debianのページを参考にUbuntuでセッティングしても上手くいかないことが多いようです。

以下のページを参考にインストールすると手軽にインストールができます。
https://ultibo.org/forum/viewtopic.php?f=10&t=365&sid=dd98daa0ae57ffa05abc23cfbb405f5d

ついでに、

Raspberry Pi Firmware もダウンロードしておきましょう。

Ultibo: Raspberry Piでベアメタル開発(2)

ベアメタルの最大のメリットとも言えるのが、起動時間が短いことです。
組込みLinuxですとアプリ起動までには早くても15秒程度かかります。
それが、ベアメタルでは5秒程度で立ち上がります。

今回は、開発環境の設定の前にそれを実感してもらいたいと思います。

まず、demoイメージをダウンロードして動かしてみましょう。

https://ultibo.org/download/

こちらからUltibo-demoをダウンロードします。

Youtubeで見ることもできます。 https://youtu.be/GF9Xbf3mbf4

 

April 02, 2017

Ultibo: Raspberry Piでベアメタル開発(1)

bear metal(bear machine)とはOS無しのコンピュータのことです。 似た用語としてベアメタルサーバがありますが、それはクラウドサーバなどで使われるもので此処で言うベアメタルとは別のものです。

組込み開発ではOS無しのコンピュータは別に珍しいものではなく、敢えてベアメタルなどと呼んでいませんでした。逆にLinuxを使用するほうが少ないため、組込みLinuxと呼んでいます。

それに対してRaspberry Piや、BeagleBone Blackは、標準がLinux OSであるため、OS無しで動かすことを、ベアメタルと言うことが多いようです。

BeagleBoneにはStarter Wareというベアメタル開発用のSDKがありますが、Raspberry Piには標準のSDKは無いようです。 その代わり、ベアメタル用のフォーラムは賑わっているようです。

Bare metal

C言語でLチカする程度から…サウンドプレーヤのような実用的なレベルのシステムまで、色々な話題が上がっています。 此処では一年前に公開されたUltiboについて、何回かにわたって説明していきたいと思います。

Ultiboはオーストラリア発の、ベアメタル用のコアライブラリ(Ultibo core)を使用した開発環境で、開発言語はFPC、IDEはLazarusを使用しています。 最近では、C言語のライブラリを使用することもできるようになったため、SQLiteを使用することもできるようです。

Ultiboの特徴は、ベアメタルでLチカしたりGPIOを制御してコンピュータの働きを学習するだけでなく、本格的なベアメタルのアプリケーションシステムを構築することもできることです。 言い換えれば、組込みLinuxで稼働している、小規模なアプリケーションシステムをベアメタルで稼働できるのです。 Ultibo coreライブラリでは、各種デバイス、ファイルアクセス、スレッド、割り込み、ネットワークをサポートしており、多くのFPCのライブラリを使用することができます。 Linux/Windowのアプリケーション開発経験でベアメタルの開発ができるということです。


Ultiboが発表されて一年足らずでいくつかのベアメタルシステムが公開されています。 今後Ultiboで開発されたシステムが増えていくものと思われます。 以下に、Ultibo Coreを使用した例を上げておきます。 

● Z80 CP/Mエミュレータ

EMUZ80 RPI - Z80 / CP/M - Emulator on Rapberry PI/PI2/PI3 (CP/M on RaspberryPI)

● サウンドプレーヤ(.sid, .dmp, .wav, .mp3, .mp2 ans .s48)

The SID player in Ultibo environment

注意:何故か、SIDプレーヤが動作しませんでした、それにCPUは結構熱い。調査中です。

«LazarusでFirebirdのSEQUENCEを使うには

November 2017
Sun Mon Tue Wed Thu Fri Sat
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30    

大規模災害に備える

他のアカウント

無料ブログはココログ

Recent Trackbacks