2015-12-19 8 views
7

私は本当に私は、C++のためのより良い代替のように感じるよう組み込みプログラミングのための迅速を使用したい、私が使用しているプロセッサは、ARMのCortex-M4F(http://www.ti.com/tool/ek-tm4c123gxl)です。迅速なコンパイラpageを見ると、あなたは素早いソースからLLVM IRを生成することができると言います。そして、私はLLVMを使ってコンパイルすることを望んでいました。これは可能でしょうか?素早いコンパイラをベアメタルに使用していますか?

答えて

3

Swiftでマシンコードを生成することは間違いありません。実際、XcodeやswiftcコマンドラインコンパイラでSwiftプログラムをコンパイルすると、デフォルトで生成される実行可能ファイルはマシンコードで構成されます。

LLVMバイトコードは、ビルドプロセス中のある時点で発生するが、生成の最終的な実行可能ファイルは、マシンコードです。必要に応じてLLVMバイトコードのみを生成できるコンパイラオプションがありますが、通常はLLVMバイトコードは直接実行されません。たとえばJavaバイトコードはJavaランタイムによって実行されます。限りARM用のクロスコンパイル

は、私はそれがswiftcツールを使ってどのように動作するかわからないんだけど、あなたはXcodeのiOSのプロジェクトをビルドする場合、それは、ARMの実行可能ファイルを生成します。 swiftcコンパイラには、ARM実行ファイルを生成するのに必要なすべてのオプションがあると確信しています。

しかし、私は考えることができる1つのキャッチは、スウィフトの機能の多くは、Appleのフレームワークに依存していることです。しかし、スウィフトはオープンソース化されているので、徐々にすべての種類の素早いライブラリが存在します。

+1

リンゴのフレームワークとの依存関係のほとんどがなくなっている、財団は迅速に再実装されており、同様にオープンソース化されます。 –

+0

Swiftには、Objective-Cランタイムが必要です(これは、[この人物](http://xmaker.mx/archives/14)によると少なくとも600KBです)、Objective-CをSiLabs Cortex -M4)。あなたが外部メモリを持っている場合は、それは問題の少ないです。 –

+0

@TonyK www.swift.org、swiftはもはや目的に依存しない。それはオープンソースである –

0

私は(組み込みアプリケーションのためのスウィフトを使用して)この可能性を探りました。 Swiftは「Hello、World!」の静的コンパイル後にランタイムを必要とするため(Ubuntuでは最新のSwift 3.0.2を使用しているx86-64)結果のバイナリサイズは5メガバイトを超えていました。これはCortex-M0のような「小さな」ARMコントローラの問題かもしれません。

関連する問題