TOPPERS/ASP3 Kernel written in Zig Programming Language
このレポジトリには,asp3_in_zigをビルドするために必要なファイルの中で,TECSジェネレータは含んでいません。ビルドするためには,TECSジェネレータを,tecsgenディレクトリに置くか,リンクを貼ってください。
ビルド&実行方法(例)
% mkdir OBJ-ARM
% cd OBJ-ARM
% ../configure.rb -T ct11mpcore_gcc -O "-DTOPPERS_USE_QEMU"
% make
% qemu-system-arm -M realview-eb-mpcore -semihosting -m 128M -nographic -kernel asp
Zigのコンパイラは,Release 0.8.0を利用してください。古い版では動作しません。最新版で動作するとは限りません。
その他の依存しているソフトウェアの動作確認バージョンは,次の通りです。
arm-none-eabi-gcc 9.3.1 20200408
arm-none-eabi-objcopy 2.34.0.20200428
tecsgen 1.8.RC2
ruby 2.6.3p62
make GNU Make 3.81
qemu-system-arm version 5.0.0
以下はtoppers/asp3_in_zigをforkしたykominamiが追加した記述です。
最初のmasterが最新版です。毎日(あるいはコミット毎?)更新されます。
Ruby2.0以上で動作することを目指して開発しています。 しかし2020年4月5日にRuby 2.4の公式サポートが終了しました。
現在公式サポートがあるのは、Ruby 2.5, 2.6, 2.7系列です。
また、Rubyはオープンソースですが、昔のソースが現在の一般的な開発環境でそのままコンパイルできない場合もあります。
入手しやすさからも、公式サポートされているバージョンをお勧めします。
tecsgenはCヘッダファイルを解析するために、クロスコンパイラに対応するCPPを利用します。
asp3_in_zigのMakefileではarm-none-eabi-gccを-Eオプションを指定してCPPとして利用しています。
公開されているTECS個別パッケージの最新版は1.7に同梱されているtecsgenは1.7です。TECS個別パッケージにはtecsgen以外の各種ユーティリティも含まれています。
公開されているASP3簡易パッケージに同梱されているtecsgenは、1.6以上です。公開時期により異なります。
asp3_in_zigでは、1.6以上であれば利用できます。
tar xf tecsgen-1.7.0.tgz
cd tecsgen-1.7.0
ディレクトリtecsgenをリポジトリasp_in_zigに作成したOBJ-ARMディレクトリと同じ階層にコピーする
このASP3簡易パッケージ(最新版)のターゲットは、asp3_in_zigが対象とするターゲットを同じです。
asp3_in_zigはこの簡易パッケージのソースを利用しませんが、簡易パッケージをコンパイル、実行ができる開発環境を構築できれば、後はzigをインストールすれば、asp3_in_zigで開発できます。
tar xf asp3_arm_gcc-20191006.tar.gz
cd asp3
ディレクトリtecsgenをリポジトリasp_in_zigに作成したOBJ-ARMディレクトリと同じ階層にコピーする
Documentation - The Zig Programming Language
zig-windows(master) hangs when compile sampel/sample1_cfg.zig
Apple Menu -> システム環境設定 -> セキュリティとプライバシー -> 一般 -> 左下の鍵のアイコンをクリック -> パスワード入力
zigを実行しようとしてOSに実行を止められたら、セキュリティーとプライバシーのダイアログで実行を許可します。
このレポジトリに含まれるプログラムの利用条件は,TOPPERSライセンスです。
-
小南さんが,以下のページに,関連するソフトウェアに関する情報を詳細に記述くださっています。
/~https://github.com/ykominami/asp3_in_zig/blob/master/README.md