私は stm によって STM32l151rct6a に取り組んでいます。これらの MACRO 定義に出くわしました。
__CC_ARM, __ICCARM__, __GNUC__, __TASKING__
誰かが彼らが何を意味するのか知っていますか?
私は stm によって STM32l151rct6a に取り組んでいます。これらの MACRO 定義に出くわしました。
__CC_ARM, __ICCARM__, __GNUC__, __TASKING__
誰かが彼らが何を意味するのか知っていますか?
これらは ARM プロセッサ用の異なるコンパイラです。おそらくこれらのマクロは、複数のコンパイラでコンパイル可能なコード内のコンパイラ依存のものを隠すために使用されます。
ICCARM
--> IAR__IAR_SYSTEMS_ICC__
(コンパイラ プラットフォームのバージョンに設定されるマクロもあります)__IMAGECRAFT__
--> Imagecraft C (以下の Clifford のコメントも参照してください。マクロもあります。pdfドキュメント__ICC_VERSION__
を参照してください)TASKING
-->タスキング__CC_ARM
--> ARM の (RealView) コンパイラ__GNUC__
--> gccこれらは、コードのビルドに使用されているコンパイラを識別するためのマクロです。
そのようなマクロのリスト、およびアーキテクチャや OS などを識別するためのその他のリストは、http://sourceforge.net/p/predef/wiki/Home/にあります。ただし、小規模な組み込みシステム ベンダー (Tasking や Imagecraft など) の多くのコンパイラを包括的にカバーしているわけではありません。
これらはコンパイラ固有のマクロであり、コンパイラ コードで定義されます。たとえば、__ICC は IAR 用で、__GNU は GNU コンパイラ用です。コンパイラに依存する STM プラットフォームの BSP 部分に指定されたコードがいくつかあります。