=====================================================================
                         RSK-M16C-62Pターゲット依存部
                                  Last Modified: '08/11/26
=====================================================================


○概要

RSK-M16C-62Pターゲット依存部は，プロセッサにM16C/62Pを
搭載した，（株）ルネサステクノロジ製のRSK-M16C-62Pをサポートしている．

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

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

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

  ・RAM
     データを配置する．使用量はオブジェクト数に依存する．
  
  ・TA0
     カーネル内部のティックの生成に用いる．使用するチャンネルは
     RSK-M16C-62P.hのTIMER_CHマクロを変更することで変更できる．
     タイマドライバとして，pdic/m16c以下のドライバを使用する．
     
  ・UARTチャネル2
     コンソールの出力に使用．
     UARTドライバとして，pdic/m16c以下のドライバを使用する．

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

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

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


○デバッグ環境

デバッグ環境としては、シリアルモニタの使用を想定している．
動作確認を行ったデバッガは、Renesas社製のHigh-performance Embedded
 Workshop  V.4.01.01である．

○コンパイラ

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

処理系
　ルネサステクノロジ製
　NC30コンパイラ、アセンブラ、最適化リンケージエディタ
　コンパイラパッケージV5.42 Release00

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


○コンソール出力

コンソール出力には，UARTのチャネル2を用いる．RSK-M16C-62P上ではUARTの
チャネル2は，CN2に接続されている．通信フォーマットは以下の通りである．

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


○アドレスマッピング

　0x00400 - 0x07fff     内蔵RAM      31KB
                            data_NE
                            bss_NE
                            data_NO
                            bss_NO
  0x80000 - 0xfffff     内蔵FlashROM 512KB
                            rom_FE
                            rom_FO
                            data_NEI
                            data_NEO
                            data_NEI
                            data_NEO
  0xffedc - 0xfffdb
                            vvector
  0xfffdc - 0xfffff
                            fvector

○各種設定の変更

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


●target_config.h の設定項目

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

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

●target_support.a30.h の設定項目

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

●target_syssvc.h の設定項目

・UART_BAUDRATE
  コンソールに使用するポート（UARTのポート3）のボーレート
・UART_CLKSRC
　UARTで使用するベースクロック
・TIMER_CH
　システムタイマで使用するタイマID

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

・C言語用の定義：
　　デフォルトの定義：prc_kernel.h
　　ターゲット依存の定義：target_config.h（現状では未定義）

○サンプルプロジェクトのビルド手順
　1.makeoffsetプロジェクトをビルドする
　　kernelプロジェクトで使用するoffset.incファイルを生成し，
　　kernelプロジェクトディレクトリ下にコピーする．
　
　2.kernelプロジェクトをビルドする
　　ASPカーネル本体のライブラリが生成される．
　
　3.cfgプロジェクトをビルドする
　　コンフィギュレータを実行し，kernel_cfg.c，kernel_cfg.h，
　　kernel_cfg.a30を生成した後，sampleプロジェクト下にコピーする．
　　なお，nc30のシンボルテーブル形式がカーネルコンフィギュレータの
　　入力仕様を満たさないため、arch/nc308/gensyms.exeを用いて
　　cfg1_out.symsを生成している．
　
　4.sampleプロジェクトをビルドする
　　sample1アプリケーション，システムライブラリ，システムサービス，
　　及びアプリケーションがリンクされ，sample1アプリケーションが生成される．
　
　なお，DebugコンフィギュレーションではデフォルトでUSE_KD3083が
　定義されているため，コンソール出力は行われない．

　また，コンフィギュレータの実行ファイルをcfg/cfg/Release下に配置されている
　ことを前提にバッチファイルが作成されている．


○注意事項
　・RSK-M16C-62P依存部は文字コードをSJIS，改行コードをCR+LFに
　　設定して使用することを前提とする．
　　TOPPERSのSubversionサーバ内では文字コードをEUC，改行コードをLFとして
　　管理するため、使用の際に注意が必要である．
　　※簡易パッケージにおいてはターゲット非依存部についても
　　　文字コードをSJIS，改行コードをCR+LFとして配布する．


　・sample_workspaceをビルドする際には、パスに空白スペースを
　　含まないディレクトリに展開する必要がある．
　　（バッチファイルで使用しているHEWのプレースホルダが空白スペースに
　　　対応していないと思われる）


○変更履歴
2008/5/12  ・新規作成                            ヴィッツ
2008/5/22  ・カーネル非依存部1.3.1に対応         ヴィッツ
2008/6/6   ・INHNO_MAXをMCU依存部に移動          ヴィッツ
2008/8/25  ・gensyms.exeを移動                   ヴィッツ
2008/11/26 ・非依存部の文字コード修正ミスを修正  ヴィッツ
           ・プロジェクトのツールバージョンが
             V5.43になっていたため修正
