binutilsとnewlibを使用してllvm + clangツールチェーンを構築する方法とその使い方についての情報がありますか?stm32のためにllvm + clangをコンパイルする方法
- ホスト:Linuxでは、AMD64
- 対象:皮質-M3、STM32
- C-LIB:newlibの
- アセンブラ:GNU
binutilsとnewlibを使用してllvm + clangツールチェーンを構築する方法とその使い方についての情報がありますか?stm32のためにllvm + clangをコンパイルする方法
は、残念ながら、今打ち鳴らすがサポートしていないとして、柔軟なクロスコンパイル設定。したがって、おそらく、必要なすべての引数を持つ必要なツールを呼び出す必要があります。
--target = thumbv7-eabi configure引数を使用してllvm + clangをビルドすることから始めます(これは昨日の時点でllvm + clangが必要です)。 --enable-targets = armも指定できます。これにより、clangはデフォルトで親指のコードを生成します。この後、clang -mcpu = cortex-m3を呼び出してコードを生成することができます。あなたは-I/-L経由の手によって、必要なすべてが含ま/ライブラリパスを提供する必要があります
など
あなたには、いくつかのC++がハッキングに満足している場合は、必要に応じて「のHostInfo」を書くので、それができ適切なツールを呼び出し、正しいパスを自動的に提供します。 githubの
https://github.com/dwelch67/mbed_samples/
そして、私はgithubのに持っている他のプロジェクトでmbed_samplesで
ルック(その使用LLVMは、ARMベースのMIPSベースとMSP430ベース)。シェルフのllvmツール(well clang)は、ARMなどのクロスコンパイルを正常に動作させます。
mbedはlpc cortex-mで、stm32はst cortex-mです。基本は同じ変更レジスタ設定です。私はstm32vldサンプルディレクトリを持っています。もしstm32の特定の例がllvm(64ビットAMD Linuxホストを使用しています)を使用していて、問題ではありません。
GMCとLLVMをサポートするCMakeをベースにしたファームウェアフレームワークPolyMCU https://github.com/labapart/polymcuを作成しました。これはCMakeに基づいているので、Linux/Windows/MacOSでファームウェアをビルドすることができます。 また、Newlibも使用しています。
私も、私はGCCやLLVMは、ARMのCortex-Mにサイズを構築比べてブログに書いた:/:http://labapart.com/blogs/3-the-importance-of-the-toolchain-version-in-embedded-space 興味深い結果を、クランは
httpsの...コードは、のCortex-Mにはるかに大きいGCC以外ではありません生成しました/github.com/dwelch67/stm32vld/tree/master/stm32f4dいくつかのstm32の例があります。gccとllvm/clang –
MIPSとMSP430 btwについて言及しています(と一貫した作業をしてくれてありがとう)。 – pfalcon