source: UsbWattMeter/trunk/asp_dcre/arch/rx630_ccrx/start.src@ 164

Last change on this file since 164 was 164, checked in by coas-nagasima, 6 years ago

TOPPERS/ECNLサンプルアプリ「USB充電器電力計」を追加

File size: 4.5 KB
Line 
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) 2005,2006 by Embedded and Real-Time Systems Laboratory
9;* Graduate School of Information Science, Nagoya Univ., JAPAN
10;* Copyright (C) 2008-2010 by Witz Corporation, JAPAN
11;*
12;* ã‹L’˜ìŒ ŽÒ‚́CˆÈ‰º‚Ì(1)`(4)‚ÌðŒ‚ð–ž‚½‚·ê‡‚ÉŒÀ‚èC–{ƒ\ƒtƒgƒEƒF
13;* ƒAi–{ƒ\ƒtƒgƒEƒFƒA‚ð‰ü•Ï‚µ‚½‚à‚Ì‚ðŠÜ‚ށDˆÈ‰º“¯‚¶j‚ðŽg—pE•¡»E‰ü
14;* •ÏEÄ”z•ziˆÈ‰ºC—˜—p‚ƌĂԁj‚·‚邱‚Ƃ𖳏ž‚Å‹–‘ø‚·‚éD
15;* (1) –{ƒ\ƒtƒgƒEƒFƒA‚ðƒ\[ƒXƒR[ƒh‚ÌŒ`‚Å—˜—p‚·‚éê‡‚ɂ́Cã‹L‚Ì’˜ì
16;* Œ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•ÛØ‹K’肪C‚»‚Ì‚Ü‚Ü‚ÌŒ`‚Ń\[
17;* ƒXƒR[ƒh’†‚ÉŠÜ‚Ü‚ê‚Ä‚¢‚邱‚ƁD
18;* (2) –{ƒ\ƒtƒgƒEƒFƒA‚ðCƒ‰ƒCƒuƒ‰ƒŠŒ`Ž®‚ȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
19;* —p‚Å‚«‚éŒ`‚ōĔz•z‚·‚éê‡‚ɂ́CÄ”z•z‚É”º‚¤ƒhƒLƒ…
20ƒƒ“ƒgi—˜—p
21;* ŽÒƒ}ƒjƒ…
22ƒAƒ‹‚Ȃǁj‚ɁCã‹L‚Ì’˜ìŒ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L
23;* ‚Ì–³•ÛØ‹K’è‚ðŒfÚ‚·‚邱‚ƁD
24;* (3) –{ƒ\ƒtƒgƒEƒFƒA‚ðC‹@Ší‚É‘g‚ݍž‚ނȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
25;* —p‚Å‚«‚È‚¢Œ`‚ōĔz•z‚·‚éê‡‚ɂ́CŽŸ‚Ì‚¢‚¸‚ê‚©‚ÌðŒ‚ð–ž‚½‚·‚±
26;* ‚ƁD
27;* (a) Ä”z•z‚É”º‚¤ƒhƒLƒ…
28ƒƒ“ƒgi—˜—pŽÒƒ}ƒjƒ…
29ƒAƒ‹‚Ȃǁj‚ɁCã‹L‚Ì’˜
30;* ìŒ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•ÛØ‹K’è‚ðŒfÚ‚·‚邱‚ƁD
31;* (b) Ä”z•z‚ÌŒ`‘Ô‚ðC•Ê‚É’è‚ß‚é•û–@‚É‚æ‚Á‚āCTOPPERSƒvƒƒWƒFƒNƒg‚É
32;* •ñ‚·‚邱‚ƁD
33;* (4) –{ƒ\ƒtƒgƒEƒFƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚é‚¢‚©‚Ȃ鑹
34;* ŠQ‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð–Ɛӂ·‚邱‚ƁD
35;* ‚Ü‚½C–{ƒ\ƒtƒgƒEƒFƒA‚̃†[ƒU‚Ü‚½‚̓Gƒ“ƒhƒ†[ƒU‚©‚ç‚Ì‚¢‚©‚Ȃ闝
36;* —R‚ÉŠî‚­¿‹‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð
37;* –Ɛӂ·‚邱‚ƁD
38;*
39;* –{ƒ\ƒtƒgƒEƒFƒA‚́C–³•ÛØ‚Å’ñ‹Ÿ‚³‚ê‚Ä‚¢‚é‚à‚Ì‚Å‚ ‚éDã‹L’˜ìŒ ŽÒ‚¨
40;* ‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚́C–{ƒ\ƒtƒgƒEƒFƒA‚ÉŠÖ‚µ‚āC“Á’è‚ÌŽg—p–Ú“I
41;* ‚ɑ΂·‚é“K‡«‚àŠÜ‚߂āC‚¢‚©‚È‚é•ÛØ‚às‚í‚È‚¢D‚Ü‚½C–{ƒ\ƒtƒgƒEƒF
42;* ƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚½‚¢‚©‚Ȃ鑹ŠQ‚ÉŠÖ‚µ‚Ä‚àC‚»
43;* ‚̐ӔC‚𕉂í‚È‚¢D
44;*
45;* @(#) $Id: start.src 536 2014-10-09 23:11:40Z coas-nagasima $
46;*
47
48 .include sectrx.inc
49
50 ;
51 ; ƒƒ‚ƒŠƒ}ƒbƒv‚Ì’è‹`(ƒ^[ƒQƒbƒgˆË‘¶•”)
52 ;
53
54DFLRE .equ 007FC440H ; DFLREƒŒƒWƒXƒ^
55
56DB_BLOCK_ENABLE .equ 02D0FH
57
58;
59; ‰Šú‰»ƒ‹[ƒ`ƒ“
60;
61 .section P, CODE
62
63 .glb _start
64 .glb _sta_ker
65 .glb _software_init_hook
66 .glb _hardware_init_hook
67 .glb __kernel_istkpt
68
69_start:
70 ;
71 ; “dŒ¹“Š“üŒã‚̓Œƒxƒ‹0, ‘SŠ„ž‚Ý‹ÖŽ~ó‘Ô‚Å‚ ‚é.
72 ; ƒJ[ƒlƒ‹‚ł͍‚‘¬Š„ž‚Ý‚ðŽg—p‚µ‚È‚¢‚½‚߁ABPC, BPSW‹y‚ÑFINTV
73 ; ‚̏‰Šú‰»‚͍s‚í‚È‚¢.
74 ;
75
76 ;
77 ; “à‘ ROMiƒf[ƒ^ƒtƒ‰ƒbƒVƒ…
78j—̈æ‚̐ݒè
79 ;
80 ; ƒŠƒZƒbƒgŒã, ƒf[ƒ^ƒtƒ‰ƒbƒVƒ…
81—̈æ‚͓ǂݏo‚µ‹ÖŽ~‚Æ‚È‚Á‚Ä‚¢‚é
82 ; ‚½‚ß, “ǂݏo‚µ‹–‰Â‚ɐݒ肷‚é.
83 ;
84 mov.l #DFLRE, r5
85 mov.w #DB_BLOCK_ENABLE, [R5]
86
87 ;
88 ; ƒXƒ^ƒbƒNƒ|ƒCƒ“ƒ^‚̐ݒè
89 ;
90 ; ƒ†[ƒU‚É‚Ä”ñƒ^ƒXƒNƒRƒ“ƒeƒLƒXƒg—pƒXƒ^ƒbƒN—̈æ‚ð—pˆÓ‚µ‚½ê‡,
91 ; ƒ†[ƒU—̈æ‚ðÝ’è‚·‚é.
92 ; kernel_cfg.c‚É‚Ä"_kernel_istkpt"‚Ì’l‚ðŒˆ’è‚·‚é.
93 ;
94 mov.l #__kernel_istkpt, r5
95 mov.l [r5], r0 ; ”ñƒ^ƒXƒNƒRƒ“ƒeƒLƒXƒg—pƒXƒ^ƒbƒN—̈æ‚ðÝ’è
96
97 ;
98 ; ‰Â•ÏƒxƒNƒ^ƒe[ƒuƒ‹‚̐ݒè
99 ;
100 mvtc #(topof C$VECT), intb ; ƒxƒNƒ^ƒe[ƒuƒ‹‚̐ݒè
101
102 ;
103 ; ƒn[ƒhƒEƒFƒAŒÅ—L‚̏‰Šú‰»ƒ‹[ƒ`ƒ“‚̌ďo‚µ
104 ;
105 mov.l #_hardware_init_hook, r5
106 cmp #0, r5
107 beq.b init_D
108 jsr r5
109
110 ;
111 ; ‰Šú’l‚ ‚è•Ï”—̈æ‚̏‰Šú‰»
112 ;
113init_D:
114 mov.l #(sizeof R), r3
115 cmp #0, r3
116 beq.b init_D_2 ; ƒTƒCƒY0‚Ȃ珉Šú‰»•K—v‚È‚µ
117 mov.l #(topof R), r1
118 mov.l #(topof D), r2
119 smovf
120
121init_D_2:
122 mov.l #(sizeof R_2), r3
123 cmp #0, r3
124 beq.b init_D_1 ; ƒTƒCƒY0‚Ȃ珉Šú‰»•K—v‚È‚µ
125 mov.l #(topof R_2), r1
126 mov.l #(topof D_2), r2
127 smovf
128
129init_D_1:
130 mov.l #(sizeof R_1), r3
131 cmp #0, r3
132 beq.b clear_B ; ƒTƒCƒY0‚Ȃ珉Šú‰»•K—v‚È‚µ
133 mov.l #(topof R_1), r1
134 mov.l #(topof D_1), r2
135 smovf
136
137 ;
138 ; ‰Šú’l‚È‚µ•Ï”—̈æ‚̏‰Šú‰»
139 ;
140clear_B:
141 mov.l #0, r2
142 mov.l #(topof B), r1
143 mov.l #(sizeof B) , r3
144 sstr.b
145
146clear_B_2:
147 mov.l #0, r2
148 mov.l #(topof B_2), r1
149 mov.l #(sizeof B_2) , r3
150 sstr.b
151
152clear_B_1:
153 mov.l #0, r2
154 mov.l #(topof B_1), r1
155 mov.l #(sizeof B_1) , r3
156 sstr.b
157
158 ;
159 ; software_init_hook ‚ðŒÄo‚µi0 ‚Å‚È‚¢ê‡j
160 ;
161 ; ƒ\ƒtƒgƒEƒFƒAŠÂ‹«i“Á‚Ƀ‰ƒCƒuƒ‰ƒŠj‚Ɉˑ¶‚µ‚Ä•K—v‚ȏ‰Šú‰»ˆ—
162 ; ‚ª‚ ‚éê‡‚́Csoftware_init_hook ‚Æ‚¢‚¤ŠÖ”‚ð—pˆÓ‚·‚ê‚΂悢.
163 ;
164 mov.l #_software_init_hook, r5
165 cmp #0, r5
166 beq.b kernel_link
167 jsr r5
168
169 ;
170 ; ƒJ[ƒlƒ‹ƒXƒ^[ƒg
171 ;
172kernel_link:
173 bra.a _sta_ker ; --> _sta_ker()
174
175 .end
176
Note: See TracBrowser for help on using the repository browser.