私が書いた C コードの問題をデバッグするために、IAR AVR コンパイラによって生成されたアセンブリ コードを調べています。.s90 ファイルの先頭には、いくつかの関数が宣言されています。各関数宣言の形式は次のとおりです。
PUBLIC FunctionName1
FUNCTION FunctionName1,021201H
ARGFRAME CSTACK, 0, STACK
LOCFRAME RSTACK, 2, STACK
ARGFRAME および LOCFRAME ディレクティブが何をするか知っている人はいますか? これらは、IAR EWAVR Assembler Reference で簡単に言及されているだけです。CSTACK の代わりに RSTACK を ARGFRAME のパラメーターとして使用して宣言された関数を時々見かけます。
PUBLIC FunctionName2
FUNCTION FunctionName2,021201H
ARGFRAME RSTACK, 0, STACK
LOCFRAME RSTACK, 2, STACK
ARGFRAME で RSTACK と CSTACK を使用する理由を知っている人はいますか?