Changeset 429 for EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/rza1
- Timestamp:
- Jul 3, 2020, 7:19:17 PM (4 years ago)
- Location:
- EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/rza1
- Files:
-
- 17 edited
Legend:
- Unmodified
- Added
- Removed
-
EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/rza1/Makefile.chip
r321 r429 2 2 # Makefile のチップ依存部(RZ/A1用) 3 3 # 4 # $Id $4 # $Id: Makefile.chip 720 2016-04-01 22:16:17Z ertl-hiro $ 5 5 # 6 6 … … 22 22 # 23 23 KERNEL_DIRS := $(KERNEL_DIRS) $(CHIPDIR) 24 KERNEL_COBJS := $(KERNEL_COBJS) chip_kernel_impl.o mpcore_kernel_impl.o \ 25 gic_kernel_impl.o pl310.o chip_timer.o 24 26 KERNEL_ASMOBJS := $(KERNEL_ASMOBJS) gic_support.o 25 KERNEL_COBJS := $(KERNEL_COBJS) chip_kernel_impl.o gic_kernel_impl.o \ 26 chip_timer.o 27 28 # 29 # システムサービスに関する定義 30 # 31 SYSSVC_DIRS := $(SYSSVC_DIRS) $(CHIPDIR) 27 32 28 33 # -
EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/rza1/chip_kernel.h
r321 r429 3 3 * Toyohashi Open Platform for Embedded Real-Time Systems/ 4 4 * Advanced Standard Profile Kernel 5 * 6 * Copyright (C) 2006-201 6by Embedded and Real-Time Systems Laboratory5 * 6 * Copyright (C) 2006-2018 by Embedded and Real-Time Systems Laboratory 7 7 * Graduate School of Information Science, Nagoya Univ., JAPAN 8 * 8 * 9 9 * 上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ 10 10 * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改 … … 29 29 * 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを 30 30 * 免責すること. 31 * 31 * 32 32 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 33 33 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 … … 35 35 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 36 36 * の責任を負わない. 37 * 37 * 38 38 * $Id$ 39 39 */ … … 42 42 * kernel.hのターゲット依存部(RZ/A1用) 43 43 * 44 * このヘッダファイルは, kernel.hからインクルードされる.他のファイル45 * から直接インクルードすることはない.このファイルをインクルードする46 * 前に,t_stddef.hがインクルードされるので,それに依存してもよい.44 * このヘッダファイルは,target_kernel.h(または,そこからインクルー 45 * ドされるファイル)のみからインクルードされる.他のファイルから直接 46 * インクルードしてはならない. 47 47 */ 48 48 … … 66 66 * サポートできる機能の定義 67 67 * 68 * ena_int/dis_intとオーバランハンドラをサポートすることができる. 68 * ena_int/dis_int/clr_int/ras_int/prb_intとオーバランハンドラを 69 * サポートすることができる. 69 70 */ 70 71 #define TOPPERS_TARGET_SUPPORT_ENA_INT /* ena_int */ 71 72 #define TOPPERS_TARGET_SUPPORT_DIS_INT /* dis_int */ 73 #define TOPPERS_TARGET_SUPPORT_CLR_INT /* clr_int */ 74 #define TOPPERS_TARGET_SUPPORT_RAS_INT /* ras_int */ 75 #define TOPPERS_TARGET_SUPPORT_PRB_INT /* prb_int */ 72 76 #define TOPPERS_TARGET_SUPPORT_OVRHDR 73 74 /*75 * 高分解能タイマのタイマ周期76 *77 * 2^32 / 33.33…を丸めた値とする.78 */79 #define TCYC_HRTCNT 128849019U80 81 /*82 * 高分解能タイマのカウント値の進み幅83 */84 #define TSTEP_HRTCNT 1U85 86 /*87 * オーバランハンドラの残りプロセッサ時間に指定できる最大値88 *89 * この値をOSタイマへの設定値に変換してタイマに設定した後,タイマの現90 * 在値を読み出してμ秒単位に変換できる値としている.タイマの現在値を91 * μ秒単位に変換する時に34を加えるため,以下の条件を満たす最大の値と92 * する.93 * (TMAX_OVRTIM * 33 + TMAX_OVRTIM / 3 + 1) + 34 < 2^3294 */95 #define TMAX_OVRTIM 128849017U96 77 97 78 /* -
EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/rza1/chip_kernel.trb
r321 r429 27 27 # 割込み要求ライン属性に関するターゲット依存のエラーチェック 28 28 # 29 $cfgData[:CFG_INT].each do | key, params|30 if $INTNO_IRQ0 <= key && key<= $INTNO_IRQ729 $cfgData[:CFG_INT].each do |_, params| 30 if $INTNO_IRQ0 <= params[:intno] && params[:intno] <= $INTNO_IRQ7 31 31 # IRQ割込みの場合 32 32 #(TA_EDGEがセットされている場合) -
EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/rza1/chip_kernel_impl.c
r321 r429 3 3 * Toyohashi Open Platform for Embedded Real-Time Systems/ 4 4 * Advanced Standard Profile Kernel 5 * 5 * 6 6 * Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory 7 7 * Toyohashi Univ. of Technology, JAPAN 8 * Copyright (C) 2006-201 6by Embedded and Real-Time Systems Laboratory8 * Copyright (C) 2006-2018 by Embedded and Real-Time Systems Laboratory 9 9 * Graduate School of Information Science, Nagoya Univ., JAPAN 10 * 10 * 11 11 * 上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ 12 12 * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改 … … 31 31 * 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを 32 32 * 免責すること. 33 * 33 * 34 34 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 35 35 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 … … 37 37 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 38 38 * の責任を負わない. 39 * 39 * 40 40 * $Id$ 41 41 */ … … 46 46 47 47 #include "kernel_impl.h" 48 #include <sil.h> 48 49 #include "interrupt.h" 50 #include "pl310.h" 49 51 50 52 /* … … 55 57 { 56 58 /* 57 * キャッシュをディスエーブル59 * MPCore依存の初期化 58 60 */ 59 arm_disable_cache();61 mpcore_initialize(); 60 62 61 63 /* 62 * コア依存の初期化64 * L2キャッシュコントローラ(PL310)の初期化 63 65 */ 64 core_initialize(); 65 66 /* 67 * キャッシュをイネーブル 68 */ 69 arm_enable_cache(); 70 71 /* 72 * GICのディストリビュータの初期化 73 */ 74 gicd_initialize(); 75 76 /* 77 * GICのCPUインタフェースの初期化 78 */ 79 gicc_initialize(); 80 81 /* 82 * 分岐予測の無効化とイネーブル 83 */ 84 arm_invalidate_bp(); 85 arm_enable_bp(); 66 pl310_initialize(0x0U, ~0x0U); 86 67 } 87 68 88 69 /* 89 * チップ依存 部の終了処理70 * チップ依存の終了処理 90 71 */ 91 72 void 92 73 chip_terminate(void) 93 74 { 94 extern void software_term_hook(void);95 void (*volatile fp)(void) = software_term_hook;96 97 75 /* 98 * software_term_hookへのポインタを,一旦volatile指定のあるfpに代 99 * 入してから使うのは,0との比較が最適化で削除されないようにするた 100 * めである. 76 * MPCore依存の終了処理 101 77 */ 102 if (fp != 0) { 103 (*fp)(); 104 } 105 106 /* 107 * GICのCPUインタフェースの終了処理 108 */ 109 gicc_terminate(); 110 111 /* 112 * GICのディストリビュータの終了処理 113 */ 114 gicd_terminate(); 115 116 /* 117 * コア依存の終了処理 118 */ 119 core_terminate(); 78 mpcore_terminate(); 120 79 } 121 80 … … 177 136 */ 178 137 gicd_set_priority(intno, INT_IPM(intpri)); 179 gicd_set_target(intno, 1U << arm_prc_index());138 gicd_set_target(intno, 1U << get_my_prcidx()); 180 139 181 140 /* -
EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/rza1/chip_kernel_impl.h
r321 r429 3 3 * Toyohashi Open Platform for Embedded Real-Time Systems/ 4 4 * Advanced Standard Profile Kernel 5 * 5 * 6 6 * Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory 7 7 * Toyohashi Univ. of Technology, JAPAN 8 * Copyright (C) 2006-201 6by Embedded and Real-Time Systems Laboratory8 * Copyright (C) 2006-2018 by Embedded and Real-Time Systems Laboratory 9 9 * Graduate School of Information Science, Nagoya Univ., JAPAN 10 * 10 * 11 11 * 上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ 12 12 * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改 … … 31 31 * 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを 32 32 * 免責すること. 33 * 33 * 34 34 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 35 35 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 … … 37 37 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 38 38 * の責任を負わない. 39 * 39 * 40 40 * $Id$ 41 41 */ … … 58 58 59 59 /* 60 * MMUの使用に関する設定60 * デフォルトの非タスクコンテキスト用のスタック領域の定義 61 61 */ 62 #define USE_ARM_MMU 63 #define USE_ARM_SSECTION 62 #ifndef DEFAULT_ISTKSZ 63 #define DEFAULT_ISTKSZ 0x2000U /* 8KB */ 64 #endif /* DEFAULT_ISTKSZ */ 64 65 65 66 /* … … 70 71 71 72 /* 72 * GIC依存部の割込み管理機能の初期化は使用しない. 73 * GIC 390 Errataへの対策を実施 74 */ 75 #define GIC_PL390_ERRATA 76 77 /* 78 * GIC依存部の割込み管理機能の初期化は使用しない 73 79 */ 74 80 #define OMIT_GIC_INITIALIZE_INTERRUPT 75 81 76 82 /* 77 * GICに関する定義,コアで共通な定義 78 * 79 * core_kernel_impl.hは,gic_kernel_impl.hからインクルードされる. 83 * MPCoreで共通な定義 80 84 */ 81 #include " gic_kernel_impl.h"85 #include "mpcore_kernel_impl.h" 82 86 83 87 #ifndef TOPPERS_MACRO_ONLY -
EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/rza1/chip_rename.def
r331 r429 6 6 target_hrt_initialize 7 7 target_hrt_terminate 8 target_hrt_set_event9 target_hrt_raise_event10 8 target_hrt_handler 11 9 target_ovrtimer_initialize 12 10 target_ovrtimer_terminate 13 target_ovrtimer_stop14 target_ovrtimer_get_current15 11 target_ovrtimer_handler 16 12 -
EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/rza1/chip_rename.h
r321 r429 15 15 #define target_hrt_initialize _kernel_target_hrt_initialize 16 16 #define target_hrt_terminate _kernel_target_hrt_terminate 17 #define target_hrt_set_event _kernel_target_hrt_set_event18 #define target_hrt_raise_event _kernel_target_hrt_raise_event19 17 #define target_hrt_handler _kernel_target_hrt_handler 20 18 #define target_ovrtimer_initialize _kernel_target_ovrtimer_initialize 21 19 #define target_ovrtimer_terminate _kernel_target_ovrtimer_terminate 22 #define target_ovrtimer_stop _kernel_target_ovrtimer_stop23 #define target_ovrtimer_get_current _kernel_target_ovrtimer_get_current24 20 #define target_ovrtimer_handler _kernel_target_ovrtimer_handler 25 21 -
EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/rza1/chip_stddef.h
r321 r429 1 /*2 * TOPPERS Software3 * Toyohashi Open Platform for Embedded Real-Time Systems4 *5 * Copyright (C) 2007 by Embedded and Real-Time Systems Laboratory6 * Graduate School of Information Science, Nagoya Univ., JAPAN7 * Copyright (C) 2011-2016 by Embedded and Real-Time Systems Laboratory8 * Graduate School of Information Science, Nagoya Univ., JAPAN9 *10 * 上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ11 * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改12 * 変・再配布(以下,利用と呼ぶ)することを無償で許諾する.13 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作14 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー15 * スコード中に含まれていること.16 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使17 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用18 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記19 * の無保証規定を掲載すること.20 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使21 * 用できない形で再配布する場合には,次のいずれかの条件を満たすこ22 * と.23 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著24 * 作権表示,この利用条件および下記の無保証規定を掲載すること.25 * (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに26 * 報告すること.27 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損28 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.29 * また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理30 * 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを31 * 免責すること.32 *33 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お34 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的35 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ36 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ37 * の責任を負わない.38 *39 * $Id$40 */41 42 1 /* 43 2 * t_stddef.hのチップ依存部(RZ/A1用) … … 46 5 * されるファイル)のみからインクルードされる.他のファイルから直接イ 47 6 * ンクルードしてはならない. 7 * 8 * $Id$ 48 9 */ 49 10 … … 64 25 65 26 /* 27 * 開発環境で共通な定義 28 */ 29 #ifndef TOPPERS_MACRO_ONLY 30 #include <stdint.h> 31 #endif /* TOPPERS_MACRO_ONLY */ 32 33 #define TOPPERS_STDFLOAT_TYPE1 34 #include "tool_stddef.h" 35 36 /* 66 37 * コアで共通な定義 67 38 */ -
EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/rza1/chip_sym.def
r331 r429 1 TARGET_RZA1H,true,bool,defined(TARGET_RZA1H) 2 TARGET_RZA1L,true,bool,defined(TARGET_RZA1L) 1 TARGET_RZA1H,true,bool,defined(TARGET_RZA1H),false 2 TARGET_RZA1L,true,bool,defined(TARGET_RZA1L),false 3 3 TA_NEGEDGE 4 4 TA_POSEDGE -
EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/rza1/chip_timer.c
r321 r429 4 4 * Advanced Standard Profile Kernel 5 5 * 6 * Copyright (C) 2006-201 7by Embedded and Real-Time Systems Laboratory6 * Copyright (C) 2006-2018 by Embedded and Real-Time Systems Laboratory 7 7 * Graduate School of Information Science, Nagoya Univ., JAPAN 8 8 * … … 100 100 101 101 /* 102 * 高分解能タイマへの割込みタイミングの設定103 */104 void105 target_hrt_set_event(HRTCNT hrtcnt)106 {107 uint32_t cnt = hrtcnt * 33 + hrtcnt / 3 + 1;108 uint32_t current;109 110 /*111 * 現在のカウント値を読み,hrtcnt後に割込みが発生するように設定する.112 */113 current = sil_rew_mem(OSTM_CNT(OSTM0_BASE));114 sil_wrw_mem(OSTM_CMP(OSTM0_BASE), current + cnt);115 116 /*117 * 上で現在のカウント値を読んで以降に,cnt以上カウントアップしてい118 * た場合には,割込みを発生させる.119 */120 if (sil_rew_mem(OSTM_CNT(OSTM0_BASE)) - current >= cnt) {121 raise_int(INTNO_OSTM0);122 }123 }124 125 /*126 * 高分解能タイマ割込みの要求127 */128 void129 target_hrt_raise_event(void)130 {131 raise_int(INTNO_OSTM0);132 }133 134 /*135 102 * タイマ割込みハンドラ 136 103 */ … … 143 110 signal_time(); 144 111 } 112 145 113 /* 146 114 * オーバランタイマドライバ … … 183 151 184 152 /* 185 * オーバランタイマの停止186 */187 PRCTIM188 target_ovrtimer_stop(void)189 {190 uint32_t cnt;191 192 /*193 * OSタイマを停止する.194 */195 sil_wrb_mem(OSTM_TT(OSTM1_BASE), OSTM_TT_STOP);196 197 if (probe_int(INTNO_OSTM1)) {198 /*199 * 割込み要求が発生している場合200 */201 clear_int(INTNO_OSTM1);202 return(0U);203 }204 else {205 cnt = sil_rew_mem(OSTM_CNT(OSTM1_BASE));206 return((PRCTIM)((cnt + 34) / 5 * 3 / 20));207 }208 }209 210 /*211 * オーバランタイマの現在値の読出し212 */213 PRCTIM214 target_ovrtimer_get_current(void)215 {216 uint32_t cnt;217 218 if (probe_int(INTNO_OSTM1)) {219 /*220 * 割込み要求が発生している場合221 */222 return(0U);223 }224 else {225 cnt = sil_rew_mem(OSTM_CNT(OSTM1_BASE));226 return((PRCTIM)((cnt + 34) / 5 * 3 / 20));227 }228 }229 230 /*231 153 * オーバランタイマ割込みハンドラ 232 154 * -
EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/rza1/chip_timer.cfg
r321 r429 1 1 /* 2 * タイマドライバのコンフィギュレーションファイル 2 * タイマドライバのコンフィギュレーションファイル(RZ/A1 OSタイマ用) 3 3 * 4 4 * $Id$ … … 10 10 ATT_INI({ TA_NULL, 0, _kernel_target_hrt_initialize }); 11 11 ATT_TER({ TA_NULL, 0, _kernel_target_hrt_terminate }); 12 12 13 CFG_INT(INTNO_TIMER, { TA_ENAINT|INTATR_TIMER, INTPRI_TIMER }); 13 14 DEF_INH(INHNO_TIMER, { TA_NULL, _kernel_target_hrt_handler }); … … 17 18 */ 18 19 #ifdef TOPPERS_SUPPORT_OVRHDR 20 19 21 ATT_INI({ TA_NULL, 0, _kernel_target_ovrtimer_initialize }); 20 22 ATT_TER({ TA_NULL, 0, _kernel_target_ovrtimer_terminate }); 23 21 24 CFG_INT(INTNO_OVRTIMER, { TA_ENAINT|INTATR_OVRTIMER, INTPRI_OVRTIMER }); 22 25 DEF_INH(INHNO_OVRTIMER, { TA_NULL, _kernel_target_ovrtimer_handler }); 26 23 27 #endif /* TOPPERS_SUPPORT_OVRHDR */ -
EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/rza1/chip_timer.h
r321 r429 6 6 * Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory 7 7 * Toyohashi Univ. of Technology, JAPAN 8 * Copyright (C) 2005-201 6by Embedded and Real-Time Systems Laboratory8 * Copyright (C) 2005-2018 by Embedded and Real-Time Systems Laboratory 9 9 * Graduate School of Information Science, Nagoya Univ., JAPAN 10 10 * … … 51 51 #define TOPPERS_CHIP_TIMER_H 52 52 53 #include "kernel/kernel_impl.h" 53 54 #include <sil.h> 54 55 #include "rza1.h" … … 140 141 * 生させるように設定する. 141 142 */ 142 extern void target_hrt_set_event(HRTCNT hrtcnt); 143 Inline void 144 target_hrt_set_event(HRTCNT hrtcnt) 145 { 146 uint32_t cnt = hrtcnt * 33 + hrtcnt / 3 + 1; 147 uint32_t current; 148 149 /* 150 * 現在のカウント値を読み,hrtcnt後に割込みが発生するように設定する. 151 */ 152 current = sil_rew_mem(OSTM_CNT(OSTM0_BASE)); 153 sil_wrw_mem(OSTM_CMP(OSTM0_BASE), current + cnt); 154 155 /* 156 * 上で現在のカウント値を読んで以降に,cnt以上カウントアップしてい 157 * た場合には,割込みを発生させる. 158 */ 159 if (sil_rew_mem(OSTM_CNT(OSTM0_BASE)) - current >= cnt) { 160 raise_int(INTNO_OSTM0); 161 } 162 } 143 163 144 164 /* 145 165 * 高分解能タイマ割込みの要求 146 166 */ 147 extern void target_hrt_raise_event(void); 167 Inline void 168 target_hrt_raise_event(void) 169 { 170 raise_int(INTNO_OSTM0); 171 } 148 172 149 173 /* … … 184 208 * オーバランタイマの停止 185 209 */ 186 extern PRCTIM target_ovrtimer_stop(void); 210 Inline PRCTIM 211 target_ovrtimer_stop(void) 212 { 213 uint32_t cnt; 214 215 /* 216 * OSタイマを停止する. 217 */ 218 sil_wrb_mem(OSTM_TT(OSTM1_BASE), OSTM_TT_STOP); 219 220 if (probe_int(INTNO_OSTM1)) { 221 /* 222 * 割込み要求が発生している場合 223 */ 224 clear_int(INTNO_OSTM1); 225 return(0U); 226 } 227 else { 228 cnt = sil_rew_mem(OSTM_CNT(OSTM1_BASE)); 229 return((PRCTIM)((cnt + 34) / 5 * 3 / 20)); 230 } 231 } 187 232 188 233 /* 189 234 * オーバランタイマの現在値の読出し 190 235 */ 191 extern PRCTIM target_ovrtimer_get_current(void); 236 Inline PRCTIM 237 target_ovrtimer_get_current(void) 238 { 239 uint32_t cnt; 240 241 if (probe_int(INTNO_OSTM1)) { 242 /* 243 * 割込み要求が発生している場合 244 */ 245 return(0U); 246 } 247 else { 248 cnt = sil_rew_mem(OSTM_CNT(OSTM1_BASE)); 249 return((PRCTIM)((cnt + 34) / 5 * 3 / 20)); 250 } 251 } 192 252 193 253 /* -
EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/rza1/chip_unrename.h
r321 r429 16 16 #undef target_hrt_initialize 17 17 #undef target_hrt_terminate 18 #undef target_hrt_set_event19 #undef target_hrt_raise_event20 18 #undef target_hrt_handler 21 19 #undef target_ovrtimer_initialize 22 20 #undef target_ovrtimer_terminate 23 #undef target_ovrtimer_stop24 #undef target_ovrtimer_get_current25 21 #undef target_ovrtimer_handler 26 22 -
EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/rza1/rza1.h
r321 r429 2 2 * TOPPERS Software 3 3 * Toyohashi Open Platform for Embedded Real-Time Systems 4 * 5 * Copyright (C) 2006-201 6by Embedded and Real-Time Systems Laboratory4 * 5 * Copyright (C) 2006-2018 by Embedded and Real-Time Systems Laboratory 6 6 * Graduate School of Information Science, Nagoya Univ., JAPAN 7 * 7 * 8 8 * 上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ 9 9 * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改 … … 28 28 * 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを 29 29 * 免責すること. 30 * 30 * 31 31 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 32 32 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 … … 34 34 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 35 35 * の責任を負わない. 36 * 36 * 37 37 * $Id$ 38 38 */ … … 45 45 #define TOPPERS_RZA1_H 46 46 47 #include <kernel.h> 47 48 #include <sil.h> 49 #include "arm.h" 48 50 49 51 /* … … 84 86 85 87 /* 88 * CP15の補助制御レジスタ(ACTLR)の設定値 89 */ 90 #define CP15_ACTLR_SMP UINT_C(0x00000040) 91 92 /* 86 93 * GIC依存部を使用するための定義 87 94 */ … … 92 99 #define GIC_TNUM_INTNO UINT_C(538) 93 100 #endif /* TOPPERS_RZA1H */ 94 #endif /* GIC_TNUM_INT */101 #endif /* GIC_TNUM_INTNO */ 95 102 96 103 /* … … 256 263 reg = sil_reh_mem(RZA1_IRQRR); 257 264 reg &= ~(0x01U << (intno - INTNO_IRQ0)); 258 sil_ wrh_mem(RZA1_IRQRR, reg);265 sil_swrh_mem(RZA1_IRQRR, reg); 259 266 } 260 267 -
EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/rza1/scif.h
r321 r429 1 1 /* 2 * TOPPERS/ASP Kernel 3 * Toyohashi Open Platform for Embedded Real-Time Systems/ 4 * Advanced Standard Profile Kernel 5 * 2 * TOPPERS Software 3 * Toyohashi Open Platform for Embedded Real-Time Systems 4 * 6 5 * Copyright (C) 2001-2011 by Industrial Technology Institute, 7 6 * Miyagi Prefectural Government, JAPAN 8 7 * Copyright (C) 2007-2016 by Embedded and Real-Time Systems Laboratory 9 8 * Graduate School of Information Science, Nagoya Univ., JAPAN 10 * 9 * 11 10 * 上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ 12 11 * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改 … … 31 30 * 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを 32 31 * 免責すること. 33 * 32 * 34 33 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 35 34 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 … … 37 36 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 38 37 * の責任を負わない. 39 * 38 * 40 39 * $Id$ 41 40 */ … … 66 65 * シリアルモードレジスタ(SCIF_SCSMR)の設定値 67 66 */ 67 #define SCIF_SCSMR_ASYNC 0x0000U /* 調歩同期式モード */ 68 68 #define SCIF_SCSMR_SYNC 0x0080U /* クロック同期式モード */ 69 #define SCIF_SCSMR_8BIT 0x0000U /* 8ビットデータ */ 69 70 #define SCIF_SCSMR_7BIT 0x0040U /* 7ビットデータ */ 70 #define SCIF_SCSMR_PARITY 0x0020U /* パリティビットの付加 */ 71 #define SCIF_SCSMR_NOPARITY 0x0000U /* パリティビットなし */ 72 #define SCIF_SCSMR_PARITY 0x0020U /* パリティビット付加 */ 73 #define SCIF_SCSMR_EVEN 0x0000U /* 偶数パリティ */ 71 74 #define SCIF_SCSMR_ODD 0x0010U /* 奇数パリティ */ 75 #define SCIF_SCSMR_1STOP 0x0000U /* 1ストッピビット */ 72 76 #define SCIF_SCSMR_2STOP 0x0008U /* 2ストッピビット */ 73 77 #define SCIF_SCSMR_CKS1 0x0000U /* P1φクロック1 */ -
EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/rza1/tSCIF.c
r321 r429 1 1 /* 2 * TOPPERS/ASP Kernel 3 * Toyohashi Open Platform for Embedded Real-Time Systems/ 4 * Advanced Standard Profile Kernel 2 * TOPPERS Software 3 * Toyohashi Open Platform for Embedded Real-Time Systems 5 4 * 6 * Copyright (C) 2006-201 6by Embedded and Real-Time Systems Laboratory5 * Copyright (C) 2006-2019 by Embedded and Real-Time Systems Laboratory 7 6 * Graduate School of Information Science, Nagoya Univ., JAPAN 8 7 * … … 133 132 uint_t brr; 134 133 135 if (VAR_initialized) { 136 /* 137 * 既に初期化している場合は、二重に初期化しない. 138 */ 139 return; 140 } 141 142 brr = SCIF_CLK / (32 * ATTR_baudRate) - 1; 143 assert(brr <= 255); 144 145 sil_wrh_mem(SCIF_SCSCR(ATTR_baseAddress), 0U); 146 sil_wrh_mem(SCIF_SCFCR(ATTR_baseAddress), 134 if (!VAR_opened) { 135 /* 136 * 既にオープンしている場合は、二重にオープンしない. 137 */ 138 brr = SCIF_CLK / (32 * ATTR_baudRate) - 1; 139 assert(brr <= 255); 140 141 sil_wrh_mem(SCIF_SCSCR(ATTR_baseAddress), 0U); 142 sil_wrh_mem(SCIF_SCFCR(ATTR_baseAddress), 147 143 SCIF_SCFCR_TFRST|SCIF_SCFCR_RFRST); 148 (void) sil_reh_mem(SCIF_SCFSR(ATTR_baseAddress)); 149 (void) sil_reh_mem(SCIF_SCLSR(ATTR_baseAddress)); 150 sil_wrh_mem(SCIF_SCFSR(ATTR_baseAddress), 0U); 151 sil_wrh_mem(SCIF_SCLSR(ATTR_baseAddress), 0U); 152 sil_wrh_mem(SCIF_SCSCR(ATTR_baseAddress), SCIF_SCSCR_INTCLK); 153 sil_wrh_mem(SCIF_SCSMR(ATTR_baseAddress), SCIF_SCSMR_CKS1); 154 sil_wrh_mem(SCIF_SCEMR(ATTR_baseAddress), 0U); 155 sil_wrb_mem(SCIF_SCBRR(ATTR_baseAddress), (uint8_t) brr); 156 sil_wrh_mem(SCIF_SCFCR(ATTR_baseAddress), 144 (void) sil_reh_mem(SCIF_SCFSR(ATTR_baseAddress)); 145 (void) sil_reh_mem(SCIF_SCLSR(ATTR_baseAddress)); 146 sil_wrh_mem(SCIF_SCFSR(ATTR_baseAddress), 0U); 147 sil_wrh_mem(SCIF_SCLSR(ATTR_baseAddress), 0U); 148 sil_wrh_mem(SCIF_SCSCR(ATTR_baseAddress), SCIF_SCSCR_INTCLK); 149 sil_wrh_mem(SCIF_SCSMR(ATTR_baseAddress), 150 SCIF_SCSMR_ASYNC|ATTR_mode|SCIF_SCSMR_CKS1); 151 sil_wrh_mem(SCIF_SCEMR(ATTR_baseAddress), 0U); 152 sil_wrb_mem(SCIF_SCBRR(ATTR_baseAddress), (uint8_t) brr); 153 sil_wrh_mem(SCIF_SCFCR(ATTR_baseAddress), 157 154 SCIF_SCFCR_RSTRG_15|SCIF_SCFCR_RTRG_1|SCIF_SCFCR_TTRG_8); 158 sil_wrh_mem(SCIF_SCSCR(ATTR_baseAddress),155 sil_wrh_mem(SCIF_SCSCR(ATTR_baseAddress), 159 156 SCIF_SCSCR_TE|SCIF_SCSCR_RE|SCIF_SCSCR_INTCLK); 160 157 161 while ((sil_reh_mem(SCIF_SCFSR(ATTR_baseAddress)) & SCIF_SCFSR_RDF) != 0U) { 162 (void) sil_reb_mem(SCIF_SCFRDR(ATTR_baseAddress)); 163 sil_wrh_mem(SCIF_SCFSR(ATTR_baseAddress), (uint16_t) ~(SCIF_SCFSR_RDF)); 164 } 165 sil_wrh_mem(SCIF_SCFSR(ATTR_baseAddress), 0U); 166 167 VAR_initialized = true; 158 while ((sil_reh_mem(SCIF_SCFSR(ATTR_baseAddress)) & SCIF_SCFSR_RDF) 159 != 0U) { 160 (void) sil_reb_mem(SCIF_SCFRDR(ATTR_baseAddress)); 161 sil_wrh_mem(SCIF_SCFSR(ATTR_baseAddress), 162 (uint16_t) ~(SCIF_SCFSR_RDF)); 163 } 164 sil_wrh_mem(SCIF_SCFSR(ATTR_baseAddress), 0U); 165 166 VAR_opened = true; 167 } 168 168 } 169 169 … … 176 176 CELLCB *p_cellcb = GET_CELLCB(idx); 177 177 178 sil_wrh_mem(SCIF_SCSCR(ATTR_baseAddress), 0U); 178 if (VAR_opened) { 179 sil_wrh_mem(SCIF_SCSCR(ATTR_baseAddress), 0U); 180 181 VAR_opened = false; 182 } 179 183 } 180 184 … … 284 288 } 285 289 } 290 291 /* 292 * SIOドライバの終了処理 293 */ 294 void 295 eTerminate_main(CELLIDX idx) 296 { 297 CELLCB *p_cellcb = GET_CELLCB(idx); 298 299 if (VAR_opened) { 300 /* 301 * 送信FIFOが空になるまで待つ 302 */ 303 while ((sil_reh_mem(SCIF_SCFSR(ATTR_baseAddress)) 304 & SCIF_SCFSR_TEND) == 0U) ; 305 /* 306 * ポートのクローズ 307 */ 308 eSIOPort_close(idx); 309 } 310 } -
EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/rza1/tSCIF.cdl
r321 r429 5 5 * Copyright (C) 2015 by Ushio Laboratory 6 6 * Graduate School of Engineering Science, Osaka Univ., JAPAN 7 * Copyright (C) 2015 ,2016by Embedded and Real-Time Systems Laboratory7 * Copyright (C) 2015-2018 by Embedded and Real-Time Systems Laboratory 8 8 * Graduate School of Information Science, Nagoya Univ., JAPAN 9 9 * … … 61 61 entry siHandlerBody eiRxISR; 62 62 entry siHandlerBody eiTxISR; 63 entry sRoutineBody eTerminate; 63 64 64 65 attr { 65 66 uintptr_t baseAddress; /* SCIFレジスタのベースアドレス */ 66 uint32_t baudRate; /* ボーレートの設定値 */ 67 uint16_t mode; /* モードレジスタの設定値 */ 68 uint32_t baudRate; /* ボーレート */ 67 69 }; 68 70 var { 69 bool_t initialized = false; /* 初期化済み */71 bool_t opened = false; /* オープン済み */ 70 72 }; 71 73 };
Note:
See TracChangeset
for help on using the changeset viewer.