インラインアセンブラの [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");

古いバージョンのコンパイラプラットフォームの動作は、正しくありませんでした。新しいリリースでは、少し制約を強めた内部コンパイラプラットフォームが使用されています。


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

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