source: anotherchoice/tags/jsp-1.4.4-full-UTF8/config/h8s/start.S@ 26

Last change on this file since 26 was 26, checked in by ykominami, 12 years ago

initial

File size: 5.5 KB
Line 
1/*
2 * TOPPERS/JSP Kernel
3 * Toyohashi Open Platform for Embedded Real-Time Systems/
4 * Just Standard Profile Kernel
5 *
6 * Copyright (C) 2000-2004 by Embedded and Real-Time Systems Laboratory
7 * Toyohashi Univ. of Technology, JAPAN
8 * Copyright (C) 2001-2004 by Dep. of Computer Science and Engineering
9 * Tomakomai National College of Technology, JAPAN
10 * Copyright (C) 2001-2004 by Industrial Technology Institute,
11 * Miyagi Prefectural Government, JAPAN
12 *
13 * 上記著作権者
14は,以下の (1)〜(4) の条件か,Free Software Foundation
15 * によってå…
16¬è¡¨ã•ã‚Œã¦ã„ã‚‹ GNU General Public License の Version 2 に記
17 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア
18 * を改変したものを含む.以下同じ)を使用・複製・改変・再é…
19å¸ƒï¼ˆä»¥ä¸‹ï¼Œ
20 * 利用と呼ぶ)することを無償で許諾する.
21 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
22 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー
23 * スコード中に含まれていること.
24 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
25 * 用できる形で再é…
26å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é…
27å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
28 * 者
29マニュアルなど)に,上記の著作権表示,この利用条件および下記
30 * の無保証規定を掲載すること.
31 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
32 * 用できない形で再é…
33å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
34 * と.
35 * (a) 再é…
36å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€…
37マニュアルなど)に,上記の著
38 * 作権表示,この利用条件および下記の無保証規定を掲載すること.
39 * (b) 再é…
40å¸ƒã®å½¢æ…
41‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに
42 * 報告すること.
43 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
44 * 害からも,上記著作権者
45およびTOPPERSプロジェクトをå…
46è²¬ã™ã‚‹ã“と.
47 *
48 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者
49お
50 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も
51 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直
52 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない.
53 */
54
55#define _MACRO_ONLY
56
57#include <t_config.h> /* CCR_I, MAX_IPM */
58
59/*
60 * H8S用スタートアップモジュール
61 * カーネルはアプリケーションとリンクして使用する
62 * だけなのでJSPカーネルのみ使用する。
63 */
64 .h8300s
65
66 .text
67 .align 2
68
69 .global start
70 .global bss_clear /* hardware_init_hook からの戻りアドレス */
71
72start:
73
74 /*
75 * タスク独立のスタックをSTACKTOPに初期化する
76 * (STACKTOPは、sys_config.hで定義)
77 * ・ハードウェアマニュアル 「4.2.4 リセット直後の割込み」(P90)より
78 * プログラムのå…
79ˆé ­å‘½ä»¤ã¯ SP の初期化命令でなければならない。
80 */
81 mov.l #STACKTOP, sp
82
83 /*
84 * CCR の初期化
85 * ・割込み制御モード0 における割込み禁止 (I = 1 ; CCR)
86 * ( _hardware_init_hook 内
87で割込み制御モードを変更するまでは、
88 * 割込み制御モードは0である。)
89 */
90 ldc.b #CCR_I, ccr
91
92 /*
93 * EXR の初期化
94 * ・割込み制御モード2 における割込み禁止 (I2, I1, I0 = 1 ; CCR)
95 */
96 ldc.b #MAX_IPM, exr
97
98 /*
99 * hardware_init_hook を呼び出す。(0でない場合)
100 * ・ターゲットハードウェアに依存する初期化処理がある場合は,
101 * hardware_init_hook という関数を用意する.
102 * 例)ROM化の際、RAMを使用可能にするためのバスコントローラの初期化
103 * 今回は、sys_support.S 内
104で hardware_init_hook を定義している.
105 */
106hardware_init:
107 mov.l @_hardware_init_hook_k, er0
108 or.l er0, er0
109 beq bss_clear /* er0 = 0 なら bss_clear へ */
110 jmp @er0
111
112 /*
113 * bssセクションをクリア
114 */
115bss_clear:
116 mov.l #__bss_start, er0
117 mov.l #_end, er1
118 sub.l er2, er2
119loop_bss_clear:
120 mov.l er2, @er0
121 add.l #4, er0
122 cmp.l er1, er0
123 blo loop_bss_clear /* er1 > er0 までジャンプ */
124
125 /*
126 * dataセクションを初期化する(ROM化対応)
127 *
128 * __idata_start から __idata_end までを,__data_start 以降にコピーする
129 */
130data_sec_copy:
131 mov.l #__idata_start, er0
132 mov.l #__idata_end, er1
133 mov.l #__data_start, er2
134loop_data_sec_copy:
135 mov.l @er0+, er4 /* *er2++ = *er0 ++; */
136 mov.l er4, @er2
137 add.l #4, er2
138 cmp.l er1, er0
139 blo loop_data_sec_copy /* er1 > er0 までジャンプ */
140
141 /*
142 * software_init_hook を呼び出す(0 でない場合)
143 *
144 * ソフトウェア環境(特にライブラリ)に依存して必
145要な初期化処理がある
146 * 場合は,software_init_hook という関数を用意する.
147 */
148software_init:
149 mov.l @_software_init_hook_k, er0
150 or.l er0, er0
151 beq start_kernel
152 jsr @er0
153
154 /*
155 * カーネルを起動する
156 */
157start_kernel:
158 jmp @_kernel_start
159
160 .align 4
161_hardware_init_hook_k:
162 .long _hardware_init_hook
163_software_init_hook_k:
164 .long _software_init_hook
Note: See TracBrowser for help on using the repository browser.