注: 私は GCC ツールチェーンについてほとんど知らないので、この質問はあまり意味がないかもしれません。
GCC には Ada フロント エンドが含まれており、ARM を発行でき、devKitPro は GCC に基づいているため、DS でコードを記述するために C/C++ の代わりに Ada を使用することは可能ですか?
編集: devKitARM が使用するターゲットは arm-eabi のようです。
注: 私は GCC ツールチェーンについてほとんど知らないので、この質問はあまり意味がないかもしれません。
GCC には Ada フロント エンドが含まれており、ARM を発行でき、devKitPro は GCC に基づいているため、DS でコードを記述するために C/C++ の代わりに Ada を使用することは可能ですか?
編集: devKitARM が使用するターゲットは arm-eabi のようです。
はい、可能です。私のプロジェクトhttps://github.com/Lucretia/tampを参照し、スクリプトに従ってクロスコンパイラをビルドしてください。その後、Adaを使用してNDSをターゲットにすることができます。ローカルの例外処理を提供する基本的なRTSも作成しました。
そして@MartinBeckett、なぜAdaは国防総省のものに真っ向から向けられていると思いますか?彼らは何年も前に委任を取り下げ、Adaはどのプロジェクトでも簡単に使用できます。Adaが汎用プログラミング言語であることをご存知ですか?
devkitPro は、ツールチェーン、コンパイラ、または実際のソフトウェア パッケージではありません。DS をターゲットにするために使用されるツールチェーンは、devkitPro によって提供されるツールチェーンの 1 つである devkitARM です。
ada コンパイラをビルドすることは可能かもしれませんが、DS 自体で何か有用なものを実行できるかどうかは非常に疑わしいです。devkitPro は、私たちが作成するパッケージの一部として ada コンパイラを提供することは決してありません。
ニンテンドーDSに言語を移植する際に考慮すべきことの1つは、スタックが比較的小さいことです(16KB)。スタックがいっぱいになったときにSRAMスタックの内容をDRAM(4MB)にスワップしたり、スタック全体をDRAMに入れたりするなどの回避策が考えられます(非常に遅いと想定されます)。
そして、使用したいAdaライブラリ関数とDS上の既存のライブラリ(ハードウェアのほとんどをカバーしていることを願っています)の間に接着剤を用意する必要があるという事実について、私は2番目にDreを紹介します。
(免責事項: 私は Ada を知りません)
おそらく。
Ada を使用するように devKitPro をビルドできる場合がありますが、事前に提供されているバイナリ (少なくとも OS X 用) には Ada サポートがコンパイルされていません。
しかし、おそらく、さまざまなハードウェア レジスタなどとのインターフェイスとして大量の C の「接着剤」コードを作成していることに気付くでしょう。