19.5	 system.contextの注意事項
 ここでは,system.contextに関する注意事項を説明します。
 
 system.contextに設定すべき値は,FPU,DSPをどのように扱うかによって異なります。
 
 以降では,以下の各ケースについて,system.contextの推奨値を示します。推奨以外の設定にした場合は,推奨設定に比べてわずかにRI600V4の性能が悪化します。
 
 備考	 コンパイラが浮動小数点演算命令を出力するのは,オプション“-fpu”指定時のみです。
アセンブラでオプション“-chkfpu”を指定すると,浮動小数点演算命令の記述をWarningとして検出します。
また,コンパイラがDSP機能命令を出力することはありません。
アセンブラでオプション“-chkdsp”を指定すると,DSP機能命令の記述をWarningとして検出します。
 
 1 )	 FPUおよびDSP(アキュムレータ)を搭載したMCUを使用する場合
 
 表19-3  FPUおよびDSP(アキュムレータ)を搭載したMCUを使用する場合
 
 
  
  
    | 
 | 
    
 | 
  
  
    | 
 | 
    
 | 
  
  
    | 
 | 
    
 | 
    
 | 
  
  
    | 
 | 
    
 “FPSW”を含む設定が必須で,かつ“ACC”を含まない設定を推奨
  
 | 
  
  
    | 
 | 
    
 | 
    
 “ACC”を含む設定が必須で,かつ“FPSW”を含まない設定を推奨
  
 | 
  
  
    | 
 | 
    
 | 
  
 
 2 )	 FPUを搭載せず,かつDSP(アキュムレータ)を搭載するMCUを使用する場合
 
 表19-4  FPUを搭載せず,かつDSP(アキュムレータ)を搭載するMCUを使用する場合
 
 
  
  
    | 
 | 
    
 | 
  
  
    | 
 | 
    
 | 
  
  
    | 
 | 
    
 | 
    
 (FPUを搭載しないMCUのため,浮動小数点演算命令は使用できません)
  
 | 
  
  
    | 
 | 
  
  
    | 
 | 
    
 | 
    
 “FPSW”を含まず,かつ“ACC”を含む設定が必須
  
 | 
  
  
    | 
 | 
    
 “FPSW”を含まない設定が必須で,かつ“ACC”を含まない設定を推奨
  
 | 
  
 
 3 )	 FPUを搭載し,かつDSP(アキュムレータ)を搭載しないMCUを使用する場合
 
 表19-5  FPUを搭載し,かつDSP(アキュムレータ)を搭載しないMCUを使用する場合
 
 
  
  
    | 
 | 
    
 | 
  
  
    | 
 | 
    
 | 
  
  
    | 
 | 
    
 | 
    
 (DSPを搭載しないMCUのため,DSP機能命令は使用できません)
  
 | 
  
  
    | 
 | 
    
 “FPSW”を含み,かつ“ACC”を含まない設定が必須
  
 | 
  
  
    | 
 | 
    
 | 
    
 (DSPを搭載しないMCUのため,DSP機能命令は使用できません)
  
 | 
  
  
    | 
 | 
    
 “ACC”を含まない設定が必須で,かつ“FPSW”を含まない設定を推奨
  
 | 
  
 
 4 )	 FPUもDSP(アキュムレータ)も搭載しないMCUを使用する場合
 
 表19-6  FPUもDSP(アキュムレータ)も搭載しないMCUを使用する場合
 
 
  
  
    | 
 | 
    
 | 
  
  
    | 
 | 
    
 | 
  
  
    | 
 | 
    
 | 
    
 (FPUおよびDSPを搭載しないMCUのため,浮動小数点演算命令およびDSP機能命令は使用できません)
  
 | 
  
  
    | 
 | 
  
  
    | 
 | 
    
 | 
  
  
    | 
 | 
    
 | 
  
 
 19.5.2	 コンパイラ・オプションメ-fint_registerモ,メ-baseモ,およびメ-pidモとの関係
 
 system.contextに,“MIN”を含む指定を行うことで,RI600V4はR8~R13をタスク・コンテキストとして保存しないようになり,高速化が図れるようになっています。
 
 system.contextにこれらの設定をしても良いケースは,コンパイラ・オプション“-fint_register”,“-base”,および“-pid”でR8~R13をすべて使用する指定をした場合のみです。
 
 その他の場合でsystem.contextに前述の設定をした場合,RI600V4は正常に動作しません。
 
      例1:-fint_register=4 -base=rom=R8 -base=ram=R9
      例2:-fint_register=3 -base=rom=R8 -base=ram=R9 -base=0x80000=R10
      例3:“-fint_register”, “-base”, “-pid”の指定なし
      例4:-fint_register=4
      例5:-base=rom=R8 -base=ram=R9
      例6:-fint_register=3 -base=rom=R8 -base=ram=R9