TOPPERS/ATK2-SC3 <RH850プロセッサ依存部マニュアル(CCRH版)> このドキュメントはRH850プロセッサ依存部のCCRH版の情報を記述したものである. ---------------------------------------------------------------------- TOPPERS ATK2 Toyohashi Open Platform for Embedded Real-Time Systems Automotive Kernel Version 2 Copyright (C) 2014-2015 by Center for Embedded Computing Systems Graduate School of Information Science, Nagoya Univ., JAPAN 上記著作権者は,以下の (1)〜(3)の条件を満たす場合に限り,本ドキュメ ント(本ドキュメントを改変したものを含む.以下同じ)を使用・複製・改 変・再配布(以下,利用と呼ぶ)することを無償で許諾する. (1) 本ドキュメントを利用する場合には,上記の著作権表示,この利用条件 および下記の無保証規定が,そのままの形でドキュメント中に含まれて いること. (2) 本ドキュメントを改変する場合には,ドキュメントを改変した旨の記述 を,改変後のドキュメント中に含めること.ただし,改変後のドキュメ ントが,TOPPERSプロジェクト指定の開発成果物である場合には,この限 りではない. (3) 本ドキュメントの利用により直接的または間接的に生じるいかなる損害 からも,上記著作権者およびTOPPERSプロジェクトを免責すること.また, 本ドキュメントのユーザまたはエンドユーザからのいかなる理由に基づ く請求からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 本ドキュメントは,AUTOSAR(AUTomotive Open System ARchitecture)仕様 に基づいている.上記の許諾は,AUTOSARの知的財産権を許諾するものではな い.AUTOSARは,AUTOSAR仕様に基づいたソフトウェアを商用目的で利用する 者に対して,AUTOSARパートナーになることを求めている. 本ドキュメントは,無保証で提供されているものである.上記著作権者およ びTOPPERSプロジェクトは,本ドキュメントに関して,特定の使用目的に対す る適合性も含めて,いかなる保証も行わない.また,本ドキュメントの利用 により直接的または間接的に生じたいかなる損害に関しても,その責任を負 わない. $Id: prc_user.txt 182 2015-06-24 07:14:37Z t_ishikawa $ ---------------------------------------------------------------------- ○概要 RH850プロセッサ依存部(以下,RH850依存部)は,ルネサスエレクトロニクス のRH850(V850E3v5)を用いたLSIをサポートしている. 現状サポートしているLSIは,次の通りである.RH850プロセッサ依存部では, プロセッサと割り込みコントローラのみを使用するため,他のG3M/G3Kコアを 用いたLSIへのポーティングは容易である. ・RH850/F1L ・RH850/F1H ○開発環境 カーネルのコンパイルは,CS+ 付属の CCRH を用いている.動作確認を行なっ たバージョンは,以下のものである. ・CCRH V1.01.00 デバッガは,CS+を使用して動作確認をしている.動作確認をしたバージョン は次の通りである. ・V3.00.00 ビルドのためのプロジェクトは,CubeSuite+に含まれているPytonスクリプト によって作成する.詳細に関しては,以下のファイルを参照のこと. ./ccrh/configure/README.txt ○周辺回路 ATK2のSC1カーネルのサンプルを動作させるためには,周辺回路として,UART とタイマが必要となる.RH850依存部では,UARTとしては,RLIN3xを,タイマ としては,タイマアレイユニット(TAUJn)をサポートしている.使用するチ ャネルはターゲット毎に異なる. ○割込み優先度 CFG_INTに指定可能な割込み優先度としては,以下の値を設定可能である. G3M : -1 〜 -15 G3K : -1 〜 -7 ○割込み属性 CFG_INTでサポートしている割込み属性はない. ○未登録の割込み 未登録の割込みが発生した場合は,prc_config.c で定義されている, default_int_handler() を呼び出す.default_int_handler() は,発生した割 り込みの割込み番号をコンソールに出力した後,target_exit() を呼び出す. ○C1ISRの扱い ・C1ISRにはユーザによって以下の処理が記述されるべきである. ・C1ISRで使用するレジスタの内容を退避 ・C1ISRが実行中であることを判別するための情報を保存する ・現在の実装ではiipm ・退避したレジスタの復帰 ・eret命令でC1ISRを終了する ○CPU例外要因情報取得 ・CPU例外発生した場合,ユーザは,プロテクションからCPU例外情報を取得で き,取得できるのは,CPU例外発生時の以下の情報がある. ・CPU例外要因番号(変数:v850_cpu_exp_no) ・プログラムカウンタ(変数:v850_cpu_exp_pc) ・スタックポインタ(変数:v850_cpu_exp_sp) ・更に,CPU例外発生時に各レジスタはスタックに保存しているので, v850_cpu_exp_spを使って保存してあるレジスタの値を取得するこ とができる.保存してあるレジスタとアドレスの情報はアセンブリ コードを参照する. ・しかし,プロテクションフック無効の場合,上記のCPU例外要因保持用変数が 定義されないため,使用しないでください(使用した場合,コンパイルエラー となる). ○制限事項 ep相対でアクセスするtinyデータセクションはサポートしない. ○GCC版との関係 RH版は,C言語のファイルは,基本的にはGCC版のものを用いている. prc_support.asmにに関しては,論理的には同じだが記法が異なるため,ツー ルによりGCC版のprc_support.Sを変換する.変換のためのスクリプトが, ../ccrh/gcc2ccrh.rb にある.使用方法は次の通りである. ../ccrh/gcc2ccrh.rb xxx.S ○変更履歴 2015/06/26 ・SC3対応 以上.