A.5.1 スタック領域を確保する

スタートアップ・ルーチンのresetprg.cファイルのPowerON_Reset_PC関数を"#pragma entry"宣言している事により、下記の設定によりコンパイラとリンカが自動的にユーザスタックUSP/割り込みスタックISP初期化コードを関数先頭に生成します。

(1)

ユーザスタックの設定

stacksct.hファイルの#pragma stacksize su=0xXXXでスタック領域のサイズ、最適化リンカの-startオプションでSUセクションの配置を指定します。

(2)

割り込みスタックの設定

stacksct.hファイルの#pragma stacksize si=0xXXXでスタック領域のサイズ、最適化リンカの-startオプションでSIセクションの配置を指定します。

【記述例】

<resetprg.c>
 ・・・
 #pragma section ResetPRG
 #pragma entry PowerON_Reset_PC
 void PowerON_Reset_PC(void)
 { 
 ・・・
<stacksct.h>
 #pragma stacksize su=0x300
 #pragma stacksize si=0x100

【生成コード例】

 // -start=SU,SI/01000と指定した場合
_PowerON_Reset_PC	          MVTC        #00001300H,USP
                           MVTC        #00001400H,ISP
                           ・・・