=====================================================================
                         APSH2Aターゲット依存部（asp-1.3.1対応）
                                  Last Modified: '08/05/20 
=====================================================================

○概要

APSH2Aターゲット依存部は，プロセッサにSH2A（SH7211）を搭載した，（株）
アルファプロジェクト製のAP-SH2A-0Aをサポートしている．


○カーネルの使用リソース

カーネルは以下のリソースを使用する．

  ・ROM
     ROM化の場合にコードを配置する．
     使用量は使用するAPIの数に依存する．

  ・RAM
     JTAGデバッグ時はコードとデータを，ROM化の場合はデータを配置する．
  	 使用量はオブジェクト数に依存する．
  
  ・CMT0
     カーネル内部のティックの生成に用いる．
     
  ・SCIFチャネル1
     コンソールの出力に使用．


○他のターゲットへの移植

APSH2Aターゲット依存部で使用するタイマやシリアルは，SH7211の内蔵機能の
みを使用するため，SH7211や近い構成のSH2Aを用いた環境には容易にポーティ
ングが可能である．ポーティングに関しては，以下の初期化ルーチンにターゲ
ット毎の初期化を追加すればよい．

  ・target_initialize() : target_config.c
    ターゲット依存部の初期化（C言語）
  ・_hardware_init_hook : target_support.src
    低レベルのターゲット依存の初期化
    スタートアップモジュールの中で，メモリの初期化の前に呼び出される


○デバッグ環境

デバッグ環境としては，JTAGデバッガの使用を前提とする．動作確認したデバ
ッガは，（株）アルファプロジェクト製の Xross Finder である．なお，JTAG
デバッグ時は，RAM上にカーネルのコードを置くため，ダウンロード前にRAMの
初期化が必要となる．RAMの初期化に関しては，AP-SH2A-0Aに付属している 
Xross Finder のスクリプトファイル（XrossFinder_sh2a_0a.xfc）を用いた．


○コンパイラ

以下の開発環境を用いて動作確認を行った。

処理系
　ルネサステクノロジ製
　SuperH. RISC engine C/C++コンパイラ、アセンブラ、最適化リンケージエディタ
　コンパイラパッケージV.9.1.1.0（shc）

統合開発環境
　ルネサステクノロジ製
　High-performance Embedded Workshop V.4.04.01.001

○ボードの設定

本カーネル動作時の AP-SH2A-0A のディップスイッチの設定は以下の通りであ
る．

   SW1-1    : ON
   SW1-2    : OFF
   SW1-(3,4): MODE2
   SW1-5    : FlashROM書込み禁止
   SW1-6    : デバッグモードは実行環境により切り替える

注意事項：
　デバッグ時に「FlashROM書込み許可かつデバッグモード」（SW1-5：OFFかつ
SW1-6：ON）にすると,FRQCRが固定値となり、本来の動作クロックで動作しな
いので注意。
（SH7211自体の制限事項）


○コンソール出力

コンソール出力には，SCIFのチャネル1を用いる．AP-SH2A-0A 上ではSCIFのチ
ャネル1は，CN5に接続されている．通信フォーマットは以下の通りである．

  ・38400bps, Data 8bit, Parity none, Stop 1bit, Flow control none

○カーネル終了時の処理

ext_ker が呼び出されカーネル終了時には，apsh2a.h にある apsh2a_exit() 
が実行される．ディフォルトでは，無限ループが書かれている．独自の処理処
理を追加したい場合は，apsh2a_exit() の内容を書き換えること．


○アドレスマッピング

(1) ROM化時
　0x0000,0000 - 0x0007,0000 内蔵FlashROM 512KB
　　　　　　　　　　　　　　　・Vセクション
　　　　　　　　　　　　　　　・startupセクション
　　　　　　　　　　　　　　　・Pセクション
　　　　　　　　　　　　　　　・Cセクション
　　　　　　　　　　　　　　　・vector_entryセクション
　　　　　　　　　　　　　　　・Dセクション
　0x0c00,0000 - 0x0cff,ffff SRAM 16MB
　　　　　　　　　　　　　　　・Bセクション
　　　　　　　　　　　　　　　・Rセクション
　0xfff8,0000 - 0xfff8,7fff 内蔵RAM 32KB
　　　　　　　　　　　　　　　・非タスクコンテスト用スタック

(2) デバッグ時
　0x0c00,0000 - 0x0cff,ffff SRAM 16MB
　　　　　　　　　　　　　　　・Vセクション
　　　　　　　　　　　　　　　・startupセクション
　　　　　　　　　　　　　　　・Pセクション
　　　　　　　　　　　　　　　・Cセクション
　　　　　　　　　　　　　　　・vector_entryセクション
　　　　　　　　　　　　　　　・Dセクション
　　　　　　　　　　　　　　　・Bセクション
　　　　　　　　　　　　　　　・Rセクション
　0xfff8,0000 - 0xfff8,7fff 内蔵RAM 32KB
　　　　　　　　　　　　　　　・非タスクコンテスト用スタック

○実行環境の切り替え

　・ROM化の場合　　　 ：Releaseモードでビルドする。
　・JTAGデバッグの場合：Debugモードでビルドする。


○各種設定の変更

幾つかのパラメータは変更可能になっている．設定ファイル毎に設定可能項目
は次のようになっている．


●target_config.h の設定項目

・DEFAULT_STK_TOP
  ディフォルトの非タスクコンテキスト用のスタックの終了番地

・DEFAULT_ISTKSZ
  ディフォルトの非タスクコンテキスト用のスタックサイズ

・SIL_DLY_TIM1/2
  微少時間待ちのための定義


●target_syssvc.h の設定項目

・BPS_SETTING
  コンソールに使用するポート（SCIFのポート1）のボーレート

●CPUロックで用いる割込み優先度TMIN_INTPRIの定義

・C言語用の定義：
　　デフォルトの定義：prc_kernel.h
　　ターゲット依存の定義：target_config.h（現状では未定義）
・アセンブラ言語用
　　デフォルトの定義：prc_support.inc
　　ターゲット依存の定義：user_config_asm.inc　


○変更履歴

'08/05/20 
　・prc_initialize, prc_terminateのシンボルリネームを
　　アーキテクチャ依存部で行うよう変更
　・「浮動小数点型に関する定義」を追加
　　　　・arch/shc/tool_stddef.h
　　　　・target/apsh2a_hew/target_stddef.h
　　　　　　#define TOPPERS_STDFLOAT_TYPE1を追加
　・2_cfg_pass2プロジェクトで、ビルドオプションから「モジュール間最適化」を解除
　  　　→hew_workspace/2_cfg_pass2/Debug/1stディレクトリが不要になった。
　・最適化対策に無限ループにvolatile変数を用いていたのを元に戻した。
　　（while(i)をwhile(1)に変更）
　　　　・target_config.cのtarget_exit(void)
　　　　・apsh2a.hのapsh2a_exit(void)

'08/05/13 Release1.3.1
　・シリアルポートの割込み番号のマクロ名をsh3,sh4と合わせた
　　　SCIFx_RXI_INTNO, SCIFx_TXI_INTNO (x=0, 1, 2, 3)
　・サンプルプログラムから機種依存の記述を削除
　　　asp/sample/sample1.cfg,c,hをそのまま使うようにした。

'08/05/12 Release1.3.0
　・ディレクトリ名の変更
　　　target/apsh2a_renesas → apsh2a_hew

'08/02/29 Release1.1.2　最初のリリース（早期リリース）

