カスタマーサポートセンター

FAQ~よくある質問~ | FAQマスタ詳細表示

FAQ詳細情報

ID 10810621
FAQカテゴリ(大) 互換性・移植など
最終更新日 2014-01-27

質問内容

TN75890: EWARM 6.20でCMSISのビルドがうまくいかない

回答内容

TN75890: EWARM 6.20でCMSISのビルドがうまくいかない
対象となるEW: ARM
EWのコンポーネント :  C/C++ compiler
キーワード : C compiler, CMSIS, プロジェクト
更新日 : June 22, 2011

 

問題
古いバージョンの CMSISと、EWARM バージョン 6.20.1 とそれ以降のバージョンで問題があります。これは、CMSISプロジェクトのビルドエラーになるかも知れません。

エラーは、例えば、Error[Pe147] と Error[Pe337] です。ほとんどのエラーは CMSIS の core_cm3.h という名前のヘッダファイルから発生しています。

 

解決策

解決策1
CMSISベースのプロジェクトを現在のバージョンからコピーし、そのプロジェクトをアプリケーションを追加して使用するベースとしてします。

解決策2
C/C++コンパイラのリリースノートを参照してください。

このページの A special note on CMSIS integration の特に How ever, ... 以下の部分を参照してください。CMSIS ファイルをサンプルプロジェクトから取り除くと、必要な関数が無くなってしまうことに注意してくださいり。この場合、インクルードパスを変更し、いくつかソースファイルを除外するだけでは不十分です。その場合、ビルドを成功させるために、関数を除外したファイル (例えば、system_stm32f10x.c) からソースファイルに移動する必要があります。

 

背景
EWARM 6.20.1 とそれ以降のバージョンのコンパイラは、以前のバージョンに比べて、より多くの intrinsic 関数をサポートしているので、プロジェクトに含まれる CMSIS ソースコードとの互換性問題が発生します。

リリースノートにある「調整」とは、プロジェクトに含まれる CMSIS のソースコードを取り除き EWARM の arm\cmsis フォルダにあるソースコードを使用することです。CMSISを使用するため、
プロジェクトメニュー > オプション > 一般オプション > ライブラリ設定タブ
□CMSISを使用する
にチェックを入れます。

EWARM 6.20.1 に付属するサンプルプロジェクトで、この問題の影響を受けるものがあります。これは、以降のバージョンで修正されます。

 

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

参考資料URL