source: anotherchoice/tags/jsp-1.4.4-full-UTF8/config/m32c-renesas/start.a30@ 26

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

initial

File size: 6.0 KB
RevLine 
[26]1;*
2;* TOPPERS/JSP Kernel
3;* Toyohashi Open Platform for Embedded Real-Time Systems/
4;* Just Standard Profile Kernel
5;*
6;* Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
7;* Toyohashi Univ. of Technology, JAPAN
8;* Copyright (C) 2001 by OAKS16KIT support
9;* Copyright (C) 2003-2004 by Naoki Saito
10;* Nagoya Municipal Industrial Research Institute, JAPAN
11;* Copyright (C) 2003-2004 by Ryosuke Takeuchi
12;* Platform Development Center RICOH COMPANY,LTD. JAPAN
13;*
14;* 上記著作権者
15は,Free Software Foundation によってå…
16¬è¡¨ã•ã‚Œã¦ã„ã‚‹
17;* GNU General Public License の Version 2 に記述されている条件か,以
18;* 下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェア(本ソフトウェ
19;* アを改変したものを含む.以下同じ)を使用・複製・改変・再é…
20å¸ƒï¼ˆä»¥ä¸‹ï¼Œ
21;* 利用と呼ぶ)することを無償で許諾する.
22;* (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
23;* 権表示,この利用条件および下記の無保証規定が,そのままの形でソー
24;* スコード中に含まれていること.
25;* (2) 本ソフトウェアを再利用可能なバイナリコード(リロケータブルオブ
26;* ジェクトファイルやライブラリなど)の形で利用する場合には,利用
27;* に伴うドキュメント(利用者
28マニュアルなど)に,上記の著作権表示,
29;* この利用条件および下記の無保証規定を掲載すること.
30;* (3) 本ソフトウェアを再利用不可能なバイナリコードの形または機器に組
31;* み込んだ形で利用する場合には,次のいずれかの条件を満たすこと.
32;* (a) 利用に伴うドキュメント(利用者
33マニュアルなど)に,上記の著作
34;* 権表示,この利用条件および下記の無保証規定を掲載すること.
35;* (b) 利用の形æ…
36‹ã‚’,別に定める方法によって,上記著作権者
37に報告する
38;* こと.
39;* (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
40;* 害からも,上記著作権者
41をå…
42è²¬ã™ã‚‹ã“と.
43;*
44;* 本ソフトウェアは,無保証で提供されているものである.上記著作権者
45は,
46;* 本ソフトウェアに関して,その適用可能性も含めて,いかなる保証も行わ
47;* ない.また,本ソフトウェアの利用により直接的または間接的に生じたい
48;* かなる損害に関しても,その責任を負わない.
49;*
50;* @(#) $Id: start.a30,v 1.3 2005/11/24 12:41:23 honda Exp $
51
52PRCR .EQU 000AH ; プロテクトレジスタ
53PRC0 .BTEQU 0,PRCR ; システムクロックレジスタビット
54PRC1 .BTEQU 1,PRCR ; プロセッサモードレジスタビット
55;
56PM0 .EQU 0004H ; プロセッサモードレジスタ0
57PM1 .EQU 0005H ; プロセッサモードレジスタ1
58;
59CM0 .EQU 0006H ; クロックモードレジスタ0
60CM1 .EQU 0007H ; クロックモードレジスタ1
61MCD .EQU 000CH
62CM2 .EQU 000DH
63C_CM0 .EQU 00000000B ; CM0(Xcin-HIGH)
64C_CM1 .EQU 00100000B ; CM1(Xin-HIGH)
65C_CM2 .EQU 00000000B ; メインクロック分周なし
66C_MCD .EQU 00010010B ; 発振停止検出機能無効
67
68
69;/* 定数定義(初期化)*/
70;
71VECTOR_ADR .EQU 0FFBD00h ; ベクタアドレス
72
73 .include m16cvec.inc
74
75 .section bss_NE,DATA,ALIGN
76 .section data_NE,DATA,ALIGN
77 .section data_NEI,ROMDATA,ALIGN
78 .section bss_NO,DATA,ALIGN
79 .section data_NO,DATA,ALIGN
80 .section data_NOI,ROMDATA,ALIGN
81
82;
83;************************************************
84;* 初期化ルーチン *
85;************************************************
86 .section program, code, align
87 .glb _hardware_start
88 .glb _kernel_start
89 .glb _software_init_hook
90;
91_hardware_start:
92 ldc #RAMEND,ISP ; 割り込みスタックポインタセット
93
94; ----- set Processor mode -----
95 bset PRC1 ; プロセッサモードレジスタ書き込みイネーブル
96 mov.b #00000000b,PM0 ; シングルチップモード、BCLK出力しない
97 mov.b #00000000b,PM1 ; メモリ非拡張、ノーウェイト
98 ; CAN 関連レジスタを使用する場合は次のようにする.
99 ; mov.b #00001000b, PM1 ; メモリ非拡張, 0wait,SFR 1wait(CAN使用時)
100 bclr PRC1 ; プロセッサモードレジスタ書き込みディゼーブル
101; ----- set System clock -----
102 bset PRC0 ; クロックコントロールレジスタ書き込みイネーブル
103 mov.b #C_CM0,CM0 ; 発信
104 mov.b #C_CM1,CM1 ;
105 mov.b #C_CM2,CM2 ; 発振停止検出機能無効
106 mov.b #C_MCD,MCD ; メインクロック分周なし
107 bclr PRC0 ; レジスタ書き込みディゼーブル
108;
109; ldc #0000h, flg ; bank#0,割り込み禁止,ISP
110 ldc #VECTOR_ADR, intb ; ベクタテーブルの設定
111
112;------ DATA領域の初期化 ------
113init_data_NE:
114 mov.w #(sizeof data_NE), r3
115 jz init_data_NO ; サイズ0なら初期化必
116要なし
117 mov.l #(topof data_NEI), a0
118 mov.l #(topof data_NE), a1
119 smovf.b
120
121init_data_NO:
122 mov.w #(sizeof data_NO), r3
123 jz clear_bss ; サイズ0なら初期化必
124要なし
125 mov.l #(topof data_NOI), a0
126 mov.l #(topof data_NO), a1
127 smovf.b
128
129;------ BSS領域の初期化 ------
130clear_bss:
131 mov.b #0, r0l
132 mov.w #(topof bss_NE & 0ffffh), a1
133 mov.w #(sizeof bss_NE) , r3
134 sstr.b
135
136 mov.w #(topof bss_NO & 0ffffh), a1
137 mov.w #(sizeof bss_NO) , r3
138 sstr.b
139
140;* software_init_hook を呼出し(0 でない場合)
141;*
142;* ソフトウェア環境(特にライブラリ)に依存して必
143要な初期化処
144;* 理がある場合は,software_init_hook という関数を用意すれば
145;* よい.M32Cの場合、コンパイル時EXTERN_SOFT_HOOKをデファインする
146 mov.l #_software_init_hook, a0
147 mov.l [a0], a1
148 cmp.l #0, a1
149 jz kernel_link
150 jsri.a a1
151
152;;
153;***** カーネルスタートへ *****
154kernel_link:
155 jmp _kernel_start ; --> kernel_start()
156;
157 .end
Note: See TracBrowser for help on using the repository browser.