1 | ;*
|
---|
2 | ;* TOPPERS/ASP Kernel
|
---|
3 | ;* Toyohashi Open Platform for Embedded Real-Time Systems/
|
---|
4 | ;* Advanced 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 | ;* Copyright (C) 2008-2010 by Witz Corporation, JAPAN
|
---|
14 | ;* Copyright (C) 2013 by Mitsuhiro Matsuura
|
---|
15 | ;*
|
---|
16 | ;* ãLì ÒÍCFree Software Foundation ÉæÁÄö\³êÄ¢é
|
---|
17 | ;* GNU General Public License Ì Version 2 ÉLq³êÄ¢éð©CÈ
|
---|
18 | ;* ºÌ(1)`(4)Ìðð½·êÉÀèC{\tgEFAi{\tgEF
|
---|
19 | ;* Aðüϵ½àÌðÜÞDȺ¯¶jðgpE¡»EüÏEÄzziȺC
|
---|
20 | ;* pÆÄÔj·é±Æð³Åø·éD
|
---|
21 | ;* (1) {\tgEFAð\[XR[hÌ`Åp·éêÉÍCãLÌì
|
---|
22 | ;* \¦C±Ìpð¨æѺL̳ÛØKèªC»ÌÜÜÌ`Å\[
|
---|
23 | ;* XR[hÉÜÜêÄ¢é±ÆD
|
---|
24 | ;* (2) {\tgEFAðÄpÂ\ÈoCiR[hiP[^uIu
|
---|
25 | ;* WFNgt@CâCuÈÇjÌ`Åp·éêÉÍCp
|
---|
26 | ;* ɺ¤hL
|
---|
27 | gipÒ}j
|
---|
28 | AÈÇjÉCãLÌì \¦C
|
---|
29 | ;* ±Ìpð¨æѺL̳ÛØKèðfÚ·é±ÆD
|
---|
30 | ;* (3) {\tgEFAðÄpsÂ\ÈoCiR[hÌ`ܽÍ@íÉg
|
---|
31 | ;* Ýñ¾`Åp·éêÉÍCÌ¢¸ê©Ìðð½·±ÆD
|
---|
32 | ;* (a) pɺ¤hL
|
---|
33 | gipÒ}j
|
---|
34 | AÈÇjÉCãLÌì
|
---|
35 | ;* \¦C±Ìpð¨æѺL̳ÛØKèðfÚ·é±ÆD
|
---|
36 | ;* (b) pÌ`ÔðCÊÉèßéû@ÉæÁÄCãLì ÒÉñ·é
|
---|
37 | ;* ±ÆD
|
---|
38 | ;* (4) {\tgEFAÌpÉæè¼ÚIܽÍÔÚIɶ¶é¢©Èé¹
|
---|
39 | ;* Q©çàCãLì ÒðÆÓ·é±ÆD
|
---|
40 | ;*
|
---|
41 | ;* {\tgEFAÍC³ÛØÅñ³êÄ¢éàÌÅ éDãLì ÒÍC
|
---|
42 | ;* {\tgEFAÉÖµÄC»ÌKpÂ\«àÜßÄC¢©ÈéÛØàsí
|
---|
43 | ;* È¢DܽC{\tgEFAÌpÉæè¼ÚIܽÍÔÚIɶ¶½¢
|
---|
44 | ;* ©Èé¹QÉÖµÄàC»ÌÓCðíÈ¢D
|
---|
45 |
|
---|
46 | .section P, CODE
|
---|
47 |
|
---|
48 |
|
---|
49 | .glb _hardware_init_hook
|
---|
50 | .glb _software_init_hook
|
---|
51 |
|
---|
52 |
|
---|
53 | _hardware_init_hook:
|
---|
54 | ;
|
---|
55 | ; ®ì[hÝè
|
---|
56 | ;
|
---|
57 | ; ®ì[hÍ{[hãÌ[qÉæÁÄè³êé½ß,
|
---|
58 | ; ±±ÅÍÁÊÝèµÈ¢.
|
---|
59 | ; ½¾µ, gGfBA/VO`bv[h
|
---|
60 | ; Å é±ÆðOñÆ·é.
|
---|
61 | ;
|
---|
62 | ; ܽZbgã, à ROMFLø, à RAMFLø, OoXF³ø
|
---|
63 | ; Å é.
|
---|
64 | ;
|
---|
65 |
|
---|
66 | ;
|
---|
67 | ; NbNÝè
|
---|
68 | ;
|
---|
69 | ; üÍF12MHz
|
---|
70 | ; PLLñHF12 x 8 = 96MHz
|
---|
71 | ; VXeNbNF96MHz
|
---|
72 | ; üÓW
|
---|
73 | [NbNF48MHz
|
---|
74 | ; OoXNbNF96MHz
|
---|
75 | ; Æ·é.
|
---|
76 | ;
|
---|
77 |
|
---|
78 | ;PORT3.PDR.BIT.B6 = 0;
|
---|
79 | MOV.L #08C003H,R11
|
---|
80 | MOV.B [R11],R10
|
---|
81 | BCLR #6,R10
|
---|
82 | MOV.B R10,[R11]
|
---|
83 | ;PORT3.PDR.BIT.B7 = 0;
|
---|
84 | MOV.L #08C003H,R11
|
---|
85 | MOV.B [R11],R10
|
---|
86 | BCLR #7,R10
|
---|
87 | MOV.B R10,[R11]
|
---|
88 | ;PORT3.PMR.BIT.B6 = 0;
|
---|
89 | MOV.L #08C003H,R11
|
---|
90 | MOV.B 60H[R11],R10
|
---|
91 | BCLR #6,R10
|
---|
92 | MOV.B R10,60H[R11]
|
---|
93 | ;PORT3.PMR.BIT.B7 = 0;
|
---|
94 | MOV.L #08C003H,R11
|
---|
95 | MOV.B 60H[R11],R10
|
---|
96 | BCLR #7,R10
|
---|
97 | MOV.B R10,60H[R11]
|
---|
98 | ;
|
---|
99 | ;SYSTEM.PRCR.WORD = 0xa503;
|
---|
100 | MOV.L #080000H,R10
|
---|
101 | MOV.W #-5AFDH,03FEH[R10]
|
---|
102 | ;
|
---|
103 | ;while(SYSTEM.MOFCR.BIT.MOFXIN == 0)
|
---|
104 | BRA.B _hardware_init_hook_01
|
---|
105 | ;SYSTEM.MOFCR.BIT.MOFXIN = 1; // CNbNUí§U
|
---|
106 | _hardware_init_hook_00:
|
---|
107 | MOV.L #080000H,R11
|
---|
108 | MOV.B 0C293H[R11],R10
|
---|
109 | BSET #0,R10
|
---|
110 | MOV.B R10,0C293H[R11]
|
---|
111 | _hardware_init_hook_01:
|
---|
112 | MOV.L #080000H,R10
|
---|
113 | MOV.B 0C293H[R10],R10
|
---|
114 | AND #1H,R10
|
---|
115 | MOVU.B R10,R10
|
---|
116 | CMP #0H,R10
|
---|
117 | BEQ.B _hardware_init_hook_00
|
---|
118 | ;
|
---|
119 | ;while(SYSTEM.MOSCCR.BIT.MOSTP == 1)
|
---|
120 | BRA.B _hardware_init_hook_11
|
---|
121 | ;SYSTEM.MOSCCR.BIT.MOSTP = 0; // CNbNUí®ì
|
---|
122 | _hardware_init_hook_10:
|
---|
123 | MOV.L #080000H,R11
|
---|
124 | MOV.B 32H[R11],R10
|
---|
125 | BCLR #0,R10
|
---|
126 | MOV.B R10,32H[R11]
|
---|
127 | _hardware_init_hook_11:
|
---|
128 | MOV.L #080000H,R10
|
---|
129 | MOV.B 32H[R10],R10
|
---|
130 | AND #1H,R10
|
---|
131 | MOVU.B R10,R10
|
---|
132 | CMP #0H,R10
|
---|
133 | BNE.B _hardware_init_hook_10
|
---|
134 | ;
|
---|
135 | ;SYSTEM.PLLCR.BIT.STC = 0x0f;
|
---|
136 | MOV.L #080000H,R10
|
---|
137 | MOV.W 28H[R10],R11
|
---|
138 | AND #-3F01H,R11
|
---|
139 | OR #0F00H,R11
|
---|
140 | MOV.W R11,28H[R10]
|
---|
141 | ;SYSTEM.PLLCR2.BIT.PLLEN = 0;
|
---|
142 | MOV.L #080000H,R11
|
---|
143 | MOV.B 2AH[R11],R10
|
---|
144 | BCLR #0,R10
|
---|
145 | MOV.B R10,2AH[R11]
|
---|
146 | ;
|
---|
147 | ;SYSTEM.SCKCR.LONG = 0x21021211;
|
---|
148 | MOV.L #080000H,R10
|
---|
149 | MOV.L #21021211H,20H[R10]
|
---|
150 | ;
|
---|
151 | ;SYSTEM.SCKCR3.BIT.CKSEL = 4; // PLLñHIð
|
---|
152 | MOV.L #080000H,R10
|
---|
153 | MOV.W 26H[R10],R11
|
---|
154 | AND #-0701H,R11
|
---|
155 | OR #0400H,R11
|
---|
156 | MOV.W R11,26H[R10]
|
---|
157 |
|
---|
158 | ;
|
---|
159 | ; W
|
---|
160 | [Xgbv
|
---|
161 | ;
|
---|
162 | ; Zbgã, ®ìµÄ¢éà üÓW
|
---|
163 | [ÍDMAC, DTC,
|
---|
164 | ; à RAMÌÝÅ é.
|
---|
165 | ; »êÈOÌà üÓW
|
---|
166 | [ÉÖµÄÍgp·é¤Å
|
---|
167 | ; Ýè·é±Æ.
|
---|
168 | ;
|
---|
169 |
|
---|
170 | ;SYSTEM.PRCR.WORD = 0xa500;
|
---|
171 | MOV.L #080000H,R10
|
---|
172 | MOV.W #-5B00H,03FEH[R10]
|
---|
173 | rts
|
---|
174 |
|
---|
175 |
|
---|
176 | _software_init_hook:
|
---|
177 | ;
|
---|
178 | ; {RpCÅÍweak definitionÌ@\ª³¢½ß,
|
---|
179 | ; ÁÉKvÈÍÈ¢ª, K¸ÄÑo·±ÆÆ·é.
|
---|
180 | ;
|
---|
181 | rts
|
---|
182 |
|
---|
183 |
|
---|
184 | .end
|
---|
185 |
|
---|