⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sys_support.s

📁 符合日本著名的ITRON规范的开源操作系统。 TOPPERS/JSP内核就是TOPPERS工程按μITRON4.0研发的第一个 软件
💻 S
字号:
/* *  TOPPERS/JSP Kernel *      Toyohashi Open Platform for Embedded Real-Time Systems/ *      Just Standard Profile Kernel *  *  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory *                              Toyohashi Univ. of Technology, JAPAN *  Copyright (C) 2000-2003 by Industrial Technology Institute, *                              Miyagi Prefectural Government, JAPAN *  *  惧淡螟侯涪荚は·笆布の (1)×(4) の掘凤か·Free Software Foundation  *  によって给山されている GNU General Public License の Version 2 に淡 *  揭されている掘凤を塔たす眷圭に嘎り·塑ソフトウェア∈塑ソフトウェア *  を猖恃したものを崔むˉ笆布票じ∷を蝗脱ˇ剩澜ˇ猖恃ˇ浩芹邵∈笆布· *  网脱と钙ぶ∷することを痰浸で钓满するˉ *  (1) 塑ソフトウェアをソ〖スコ〖ドの妨で网脱する眷圭には·惧淡の螟侯 *      涪山绩·この网脱掘凤および布淡の痰瘦沮惮年が·そのままの妨でソ〖 *      スコ〖ド面に崔まれていることˉ *  (2) 塑ソフトウェアを·ライブラリ妨及など·戮のソフトウェア倡券に蝗 *      脱できる妨で浩芹邵する眷圭には·浩芹邵に燃うドキュメント∈网脱 *      荚マニュアルなど∷に·惧淡の螟侯涪山绩·この网脱掘凤および布淡 *      の痰瘦沮惮年を非很することˉ *  (3) 塑ソフトウェアを·怠达に寥み哈むなど·戮のソフトウェア倡券に蝗 *      脱できない妨で浩芹邵する眷圭には·肌のいずれかの掘凤を塔たすこ *      とˉ *    (a) 浩芹邵に燃うドキュメント∈网脱荚マニュアルなど∷に·惧淡の螟 *        侯涪山绩·この网脱掘凤および布淡の痰瘦沮惮年を非很することˉ *    (b) 浩芹邵の妨轮を·侍に年める数恕によって·TOPPERSプロジェクトに *        鼠桂することˉ *  (4) 塑ソフトウェアの网脱により木儡弄または粗儡弄に栏じるいかなる禄 *      巢からも·惧淡螟侯涪荚およびTOPPERSプロジェクトを倘勒することˉ *  *  塑ソフトウェアは·痰瘦沮で捏丁されているものであるˉ惧淡螟侯涪荚お *  よびTOPPERSプロジェクトは·塑ソフトウェアに簇して·その努脱材墙拉も *  崔めて·いかなる瘦沮も乖わないˉまた·塑ソフトウェアの网脱により木 *  儡弄または粗儡弄に栏じたいかなる禄巢に簇しても·その勒扦を砷わないˉ */#define _MACRO_ONLY#include "jsp_kernel.h"	.set noreorder	.align 2/* *  タ〖ゲットハ〖ドウェア巴赂する介袋步借妄 (reset.S から钙び叫される) */#ifndef GDB_STUB	.section .reset	.global	hardware_init_hookhardware_init_hook:	/*	 *  バスコントロ〖ルユニット(BCU)簇犯の介袋肋年	 */	li	t0, ASM_SIL( ROMSIZEREG )	lh	t1, (t0)	ori	t1, t1, (SIZE3_4 | SIZE2_4 | SIZE1_4 | SIZE0_4)	sh	t1, (t0)	li	t0, ASM_SIL( ROMSPEEDREG )	lh	t1, (t0)	ori	t1, t1, (ROM4_WAIT_5VTClock | ROM2_WAIT_8VTClock)	sh	t1, (t0)	li	t0, ASM_SIL( BCUCNTREG3 )	lh	t1, (t0)	ori	t1, t1, (EXT_ROMCS_3ROM_2ROM | IO32 | LCDSEL1_BUFFER | LCDSEL0_BUFFER)	sh	t1, (t0)	/*	 * SDRAMコントロ〖ルユニット(SDRAMU)簇犯の介袋肋年	 */	li	t0, ASM_SIL( SDRAMMODEREG )	lh	t1, (t0)	ori	t1, t1, (SCLK | LTMODE_2)	sh	t1, (t0)	li	t0, ASM_SIL( SDRAMCNTREG )	lh	t1, (t0)	ori	t1, t1, (TRC_3VTClock | TDAL_2VTClock | TRCD_2VTClock)	sh	t1, (t0)	li	t0, ASM_SIL( BCURFCNTREG )	lh	t1, (t0)	ori	t1, t1, 0x3ec	sh	t1, (t0)	li	t0, ASM_SIL( BCURFCNTREG )	lh	t1, (t0)	ori	t1, t1, 0x3ec	sh	t1, (t0)	li	t0, ASM_SIL( RAMSIZEREG )	lh	t1, (t0)	ori	t1, t1, (SIZE3_64 | SIZE2_64 | SIZE1_64 | SIZE0_64)	sh	t1, (t0)	/*	 *  バスコントロ〖ルユニット(BCU)簇犯の介袋肋年	 */	li	t0, ASM_SIL( IO0SPEEDREG )	lh	t1, (t0)	ori	t1, t1, IO0_1_WAIT_4	sh	t1, (t0)	li	t0, ASM_SIL( IO1SPEEDREG )	lh	t1, (t0)	ori	t1, t1, IO1_3_WAIT_11	sh	t1, (t0)	/*	 *  HALTimerシャットダウンのクリア	 *  CPU弹瓢稿、4擅笆柒に乖わなければならない	 *  PMUコントロ〖ルレジスタのHALTimerリセットビットに1を今き哈む	 */	li	t0, ASM_SIL( PMUCNTREG )	lh	t1, (t0)	ori	t1, t1, HALTIMERRST	sh	t1, (t0)	/*	 *  HALTimerリセットのクリア	 *  PMU充哈み】ステ〖タスレジスタのTIMOUTRSTビットに1を今き哈む	 */	li	t0, ASM_SIL( PMUINTREG )	lh	t1, (t0)	ori	t1, t1, TIMOUTRST	sh	t1, (t0)	/*	 * TLBの介袋步	 */tlb_initialize:	mtc0	zero, PageMask	mtc0	zero, EntryLo0	mtc0	zero, EntryLo1	li	t0, TMAX_TLB	li	t1, 0xA0000000		/* kseg1 の面のDRAMの疥を蝗脱 */loop_TLB_clear:	mtc0	t0, Index	mtc0	t1, EntryHi	addiu	t0, t0, -1	addiu	t1, t1, TLB_VPN2	/* 1ペ〖ジが4kバイトで、2ペ〖ジ尸をマッピ					   ングするため */	tlbwi	bgez	t0, loop_TLB_clear	nop	/*	 * キャッシュの介袋步	 */cache_initialize:	mtc0	zero, TagLo	mtc0	zero, TagHi	li	t0, 0x80001ff0	/* 512 line 尸 (1 line = 16 byte) */	li	t1, 0x80000000loop_I_cache_clear:	cache	Index_Invalidate_I, 0x0000(t0)	cache	Index_Invalidate_I, 0x2000(t0)	bne	t0, t1, loop_I_cache_clear	addiu	t0, t0, -I_CACHE_LINE_SIZE	li	t0, 0x80001ff0	/* 512 line 尸 (1 line = 16 byte) */	li	t1, 0x80000000loop_D_cache_clear:	cache	Index_Store_Tag_D, 0x0000(t0)	cache	Index_Store_Tag_D, 0x2000(t0)	bne	t0, t1, loop_D_cache_clear	addiu	t0, t0, -D_CACHE_LINE_SIZE	/*	 * 钙び叫し傅へリタ〖ン	 */return_to_common:	j	ra	nop#endif /* GDB_STUB */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -