2016-03-23 7 views
0

ドキュメントboost :: contextによると、GNU/Linux OSを搭載したARMシステムをサポートしています。ちょうど不思議です - それはベアメタル(OSなし)のCortex-Mマイクロコントローラでも使用できますか?これは追加のポートです。ARM Cortex-MのBoost :: context?

+3

最も簡単な方法は、それをコンパイルするだろう - があれば、あなたのツールチェーンはすぐに教えてくれます依存関係はありませんが、提供される機能はOSに依存せず、標準のsetjmp/longjmpで実装できます。しかし、警告の言葉では、同僚がCortex-Mベアメタルプロジェクトにライブラリ(ブーストライブラリ(具体的にはコンテキストではない))を組み込もうとしたとき、彼は結果としてARMコンパイラに責任を負うことになったことに驚いたブースト自体ではなく、私はあまり説得力がない。 – Clifford

+0

問題は、任意のツールチェーンを使ってブーストをクロスコンパイルするために、ブーストビルドシステムの内部を覚えなければならないということです。 –

+0

[ライブラリ要件](http://www.boost.org/doc/libs/1_60_0/libs/context/doc/html/context/requirements.html)を見ると、コンテキストにはアセンブラコードが含まれているようですARM Thumb-2命令セットを明示的にサポートしているため、いずれの場合でもすぐに使用することはできません。それは、@ xlrgのむしろ簡潔な答えが何を指しているのかと思います。 – Clifford

答えて

0

boost.contextは、Cortex-Mをサポートしていません - あなたが質問に答えるの唯一のCortex-A + ELF/MACH-O/PE

+0

具体的にアーキテクチャ制約がサポートされない原因は何ですか?この主張の参照を引用できますか?私はオブジェクトファイル形式の違いを見ることができませんし、ELFは組み込みシステムの一般的なオブジェクトファイル形式です。 – Clifford

+0

私は自分の質問に答えたと思います。 [library requirements](http://www.boost.org/doc/libs/1_60_0/libs/context/doc/html/context/requirements.html)には、ライブラリにアセンブラコードが含まれていると記載されています。それは移植性を真剣に制限します。 – Clifford