CMSISと IAR Embedded Workbench for ARM 6.20

テクニカル・ノート 75890

アーキテクチャ:

ARM

コンポーネント:

compiler

更新日:

2020/04/08 6:42

はじめに

古いバージョンのCMSISとIAR Embedded Workbench for ARMバージョン6.20.1以降は、相性がよくありません。そのため、それらを組み合わせて使用するとCMSISのプロジェクトでビルドエラーが発生します。

例えば、"Error[Pe147]"や"Error[Pe337]"などのエラーが発生します。
このエラーは、ほとんどの場合、CMSISのcore_cm3.hという名前のヘッダファイル(または同様の名前のヘッダファイル)に起因します。

解決方法

解決方法1

最新版のCMSISベースのプロジェクトをコピーし、アプリケーションを追加したいプロジェクトのベースとしてそのプロジェクトを使用してください。


解決方法2

IAR C/C++コンパイラバージョン6.20.1のリリースノートを参照してください。 

「A special note on CMSIS integration」の章を参照してください。特に、「However, ...」で始まる部分をよくお読みください。

なお、サンプルプロジェクトからCMSISファイルを除外すると、サンプルで必要とされるいくつかの関数が見えなくなります。この場合、単にインクルードパスを変更し、一部のソースファイルを除外するだけでは、問題は解決しません。そのため、ビルドしたいプロジェクトに含まれるソースに、除外したファイル(system_stm32f10x.cなど)から関数を移動する必要があります。

背景

IAR Embedded Workbench for ARM 6.20.1以降に付属のコンパイラについては、それまでのバージョンと比べてより多くの組込み関数がサポートされています。そのため、プロジェクトにCMSISのソースコードが含まれている場合、互換性の問題が発生します。

リリースノートで提案されている修正方法の要点は、プロジェクトに含まれているCMSISのソースコードを「削除」し、IAR Embedded Workbench for ARMでインストールされたCMSISのソースコード(arm\CMSISディレクトリにあるソースコード)を使用するというものです。プロジェクト(Project) > オプション(Options...) > 一般オプション(General Options) > ライブラリ設定(Library Configuration) > CMSISを使用する(Use CMSIS)を選択し、CMSISの使用を有効にしてください。

上記の問題によって、IAR Embedded Workbench for ARM 6.20.1に付属している一部のCMSISサンプルプロジェクトが影響を受けます。この問題は、新しいバージョンでは修正されています。


全ての製品名は、それぞれの所有者の商標または登録商標です。

申し訳ございませんが、弊社サイトではInternet Explorerをサポートしていません。サイトをより快適にご利用いただくために、Chrome、Edge、Firefoxなどの最新ブラウザをお使いいただきますようお願いいたします。