インラインアセンブラの [Og005] および [Og006] エラー
テクニカル・ノート 31237
アーキテクチャ:
ARM, AVR, AVR32
コンポーネント:
compiler
更新日:
2018/08/13 0:54
はじめに
プロジェクトをコンパイルすると、以下のメッセージが表示される場合があります。
Error[Og005]: Unknown symbol in inline assembly:
Error[Og006]: Syntax error in inline assembly: "Error[54]: Expression can not be forward"
解決方法
ラベルは、それが宣言されているのと同じアセンブラステートメントで参照する必要があります。この問題を解決するには、(改行\nを使用して)インラインアセンブラのコードを複数に分けて記述します。
例:
asm("st -Y, R20\n \n"
"spmloop: \n"
"lN R20, 0x37 \n"
"SBRC R20, 0 \n"
"RJMP spmloop \n"
"OUT 0x37,R25 \n"
"SPM \n"
"LD R20,Y+ \n");
古いバージョンのコンパイラプラットフォームの動作は、正しくありませんでした。新しいリリースでは、少し制約を強めた内部コンパイラプラットフォームが使用されています。
全ての製品名は、それぞれの所有者の商標または登録商標です。