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

📄 start.s

📁 toppers操作系统源码
💻 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"		/* INIT_SR *//* *   MIPS3脱スタ〖トアップモジュ〖ル *     リセットベクタ  0xbfc00000戎孟に芹弥 *    *   カ〖ネルはアプリケ〖ションとリンクして蝗脱するだけなので *   JSPカ〖ネルのみ蝗脱する。 */	.section ".reset","xa"	.set noreorder	.align 2	.global	resetreset:	/*	 *  CPUレジスタの介袋步	 */	/* HI, LO (捐近换レジスタ) */	mthi	zero	mtlo	zero	/* sp (スタックポインタ〃润タスクコンテキスト脱)	     _stack_top は、システム巴赂婶(リンカスクリプト夸京)年盗 */	la	sp, _stack_top	/* gp (グロ〖バルポインタ)	     _gp は、システム巴赂婶(リンカスクリプト夸京)年盗 */	la	gp, _gp	/* k0 (充哈み/CPU毋嘲ネストカウンタ脱) */	li	k0, 0x1		/* タスク弹瓢までは、润タスクコンテキストでの				   悸乖とみなす。 */	/* k1は、贷に绕脱として网脱しているので介袋步しない。 */	/*	 *  CP0レジスタの介袋步	 */	/* SR (ステ〖タスレジスタ)	     (ここでコアの充哈みマスクも肋年する。これは、悸剂弄な充哈み扩告は、	     嘲婶充哈みコントロ〖ラで乖うため。)	     INIT_SR は、sys_config.h で年盗 */	li	t0, INIT_SR	mtc0	t0, Status	/* Config (コンフィグレジスタ)	     INIT_CONFIG_MASK は、sys_config.h で年盗 */	mfc0	t0, Config	li	t1, INIT_CONFIG_MASK	or	t0, t0, t1	mtc0	t0, Config	/* WatchLo (ウォッチLoレジスタ) */	mtc0	zero, WatchLo	/* Compare (孺秤レジスタ) */	li	t0, 0xffffffff	mtc0	t0, Compare	/*	 *  hardware_init_hook を钙び叫す。(0でない眷圭)	 *	 *  ˇタ〖ゲットハ〖ドウェアに巴赂する介袋步借妄がある眷圭は·	 *    hardware_init_hook という簇眶を脱罢するˉ	 *      毋∷ROM步の狠、RAMを蝗脱材墙にするためのバスコントロ〖ラの介袋步	 *    海搀は、sys_support.S 柒で hardware_init_hook を年盗しているˉ	 */hardware_init:	la	t0, hardware_init_hook	beq	t0, zero, bss_clear	nop	jalr	ra, t0	nop	/*         * bssセクションをクリア	 */bss_clear:	la	t1, __bss_start	la	t2, __bss_end	beq	t1, t2, data_sec_copy	nop        sw	zero, (t1)loop_bss_clear:        addi	t1, t1, 4        sub	t3, t2, t1        bgez 	t3, loop_bss_clear        sw	zero, (t1)	/*	 *  dataセクションを介袋步する (ROM步滦炳)	 *	 *  __idata_start から __idata_end までを·__data_start 笆惯にコピ〖する	 */data_sec_copy:	la	t1, __idata_start	la	t2, __idata_end	beq	t1, t2, software_init	nop	la	t3, __data_startloop_data_sec_copy:	lw	t5, (t1)        sw	t5, (t3)        addi	t1, t1, 4        addi	t3, t3, 4        sub	t4, t2, t1        bgtz 	t4, loop_data_sec_copy	nop	/*	 *  software_init_hook を钙び叫す∈0 でない眷圭∷	 *	 *  ソフトウェア茨董∈泼にライブラリ∷に巴赂して涩妥な介袋步借妄がある	 *  眷圭は·software_init_hook という簇眶を脱罢するˉ	 */software_init:	la	t0, software_init_hook	beq	t0, zero, start_kernel	nop	jalr	ra, t0	nop	/*         *  カ〖ネルを弹瓢する	 */start_kernel:	la	t0, kernel_start	j	t0	nop

⌨️ 快捷键说明

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