]> git.sur5r.net Git - freertos/blob - Demo/NEC_V850ES_IAR/RegTest.s85
Ready for V5.2.0 release.
[freertos] / Demo / NEC_V850ES_IAR / RegTest.s85
1 ;/*\r
2 ;       FreeRTOS.org V5.2.0 - Copyright (C) 2003-2009 Richard Barry.\r
3 ;\r
4 ;       This file is part of the FreeRTOS.org distribution.\r
5 ;\r
6 ;       FreeRTOS.org is free software; you can redistribute it and/or modify it \r
7 ;       under the terms of the GNU General Public License (version 2) as published\r
8 ;       by the Free Software Foundation and modified by the FreeRTOS exception.\r
9 ;\r
10 ;       FreeRTOS.org is distributed in the hope that it will be useful, but WITHOUT\r
11 ;       ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or \r
12 ;       FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for \r
13 ;       more details.\r
14 ;\r
15 ;       You should have received a copy of the GNU General Public License along \r
16 ;       with FreeRTOS.org; if not, write to the Free Software Foundation, Inc., 59 \r
17 ;       Temple Place, Suite 330, Boston, MA  02111-1307  USA.\r
18 ;\r
19 ;       A special exception to the GPL is included to allow you to distribute a \r
20 ;       combined work that includes FreeRTOS.org without being obliged to provide\r
21 ;       the source code for any proprietary components.  See the licensing section\r
22 ;       of http://www.FreeRTOS.org for full details.\r
23 ;\r
24 ;\r
25 ;       ***************************************************************************\r
26 ;       *                                                                         *\r
27 ;       * Get the FreeRTOS eBook!  See http://www.FreeRTOS.org/Documentation      *\r
28 ;       *                                                                         *\r
29 ;       * This is a concise, step by step, 'hands on' guide that describes both   *\r
30 ;       * general multitasking concepts and FreeRTOS specifics. It presents and   *\r
31 ;       * explains numerous examples that are written using the FreeRTOS API.     *\r
32 ;       * Full source code for all the examples is provided in an accompanying    *\r
33 ;       * .zip file.                                                              *\r
34 ;       *                                                                         *\r
35 ;       ***************************************************************************\r
36 ;\r
37 ;       1 tab == 4 spaces!\r
38 ;\r
39 ;       Please ensure to read the configuration and relevant port sections of the\r
40 ;       online documentation.\r
41 ;\r
42 ;       http://www.FreeRTOS.org - Documentation, latest information, license and\r
43 ;       contact details.\r
44 ;\r
45 ;       http://www.SafeRTOS.com - A version that is certified for use in safety\r
46 ;       critical systems.\r
47 ;\r
48 ;       http://www.OpenRTOS.com - Commercial support, development, porting,\r
49 ;       licensing and training services.\r
50 ;*/\r
51 ; Note: Select the correct include files for the device used by the application.\r
52 \r
53         EXTERN  vRegTestFailed\r
54 \r
55 \r
56 \r
57 ;\r
58 ; The RegTest tasks as described in the comments at the top of main().\r
59 ;\r
60 \r
61 \r
62 ;------------------------------------------------------------------------------\r
63 \r
64 ; Functions implemented in this file\r
65 ;------------------------------------------------------------------------------\r
66     PUBLIC      vRegTest1\r
67     PUBLIC      vRegTest2\r
68 \r
69 \r
70 ;------------------------------------------------------------------------------\r
71 ;------------------------------------------------------------------------------ \r
72     RSEG CODE:CODE\r
73 vRegTest1:\r
74     MOV         0x01010101, R1\r
75     MOV         0x02020202, R2\r
76         ; Ignore R3 and R4 as these are the stack and global pointers respectively.\r
77         MOV             0x04040404, R5\r
78         MOV             0x05050505, R6\r
79         MOV             0x06060606, R7\r
80         MOV             0x07070707, R8\r
81         MOV             0x08080808, R9\r
82         MOV             0x09090909, R10\r
83         MOV             0x0a0a0a0a, R11\r
84         MOV             0x0b0b0b0b, R12\r
85         MOV             0x0c0c0c0c, R13\r
86         MOV             0x0d0d0d0d, R14\r
87         MOV             0x0e0e0e0e, R15\r
88         MOV             0x0f0f0f0f, R16\r
89         MOV             0x10101010, R17\r
90         MOV             0x11111111, R18\r
91         MOV             0x12121212, R19\r
92         MOV             0x13131313, R20\r
93         MOV             0x14141414, R21\r
94         MOV             0x15151515, R22\r
95         MOV             0x16161616, R23\r
96         MOV             0x17171717, R24\r
97 #if ( configDATA_MODE == 1 )\r
98         ;R25 is used as a base register except when the tiny model is used. */\r
99         MOV             0x18181818, R25\r
100 #endif\r
101         MOV             0x19191919, R26\r
102         MOV             0x20202020, R27\r
103         MOV             0x21212121, R28\r
104         MOV             0x22222222, R29\r
105         MOV             0x23232323, R30\r
106         \r
107 vReg1TestLoopStart:\r
108         TRAP    0\r
109         MOV             0x01010101, R31\r
110         CMP             R31, R1\r
111         BZ              $+6\r
112         JARL    vRegTestFailed, lp\r
113         MOV             0x02020202, R31\r
114         CMP             R31, R2\r
115         BZ              $+6\r
116         JARL    vRegTestFailed, lp\r
117         MOV             0x04040404, R31\r
118         CMP             R31, R5\r
119         BZ              $+6\r
120         JARL    vRegTestFailed, lp\r
121         MOV             0x05050505, R31\r
122         CMP             R31, R6\r
123         BZ              $+6\r
124         JARL    vRegTestFailed, lp\r
125         MOV             0x06060606, R31\r
126         CMP             R31, R7\r
127         BZ              $+6\r
128         JARL    vRegTestFailed, lp\r
129         MOV             0x07070707, R31\r
130         CMP             R31, R8\r
131         BZ              $+6\r
132         JARL    vRegTestFailed, lp\r
133         MOV             0x08080808, R31\r
134         CMP             R31, R9\r
135         BZ              $+6\r
136         JARL    vRegTestFailed, lp\r
137         MOV             0x09090909, R31\r
138         CMP             R31, R10\r
139         BZ              $+6\r
140         JARL    vRegTestFailed, lp\r
141         MOV             0x0a0a0a0a, R31\r
142         CMP             R31, R11\r
143         BZ              $+6\r
144         JARL    vRegTestFailed, lp\r
145         MOV             0x0b0b0b0b, R31\r
146         CMP             R31, R12\r
147         BZ              $+6\r
148         JARL    vRegTestFailed, lp\r
149         MOV             0x0c0c0c0c, R31\r
150         CMP             R31, R13\r
151         BZ              $+6\r
152         JARL    vRegTestFailed, lp\r
153         MOV             0x0d0d0d0d, R31\r
154         CMP             R31, R14\r
155         BZ              $+6\r
156         JARL    vRegTestFailed, lp\r
157         MOV             0x0e0e0e0e, R31\r
158         CMP             R31, R15\r
159         BZ              $+6\r
160         JARL    vRegTestFailed, lp\r
161         MOV             0x0f0f0f0f, R31\r
162         CMP             R31, R16\r
163         BZ              $+6\r
164         JARL    vRegTestFailed, lp\r
165         MOV             0x10101010, R31\r
166         CMP             R31, R17\r
167         BZ              $+6\r
168         JARL    vRegTestFailed, lp\r
169         MOV             0x11111111, R31\r
170         CMP             R31, R18\r
171         BZ              $+6\r
172         JARL    vRegTestFailed, lp\r
173         MOV             0x12121212, R31\r
174         CMP             R31, R19\r
175         BZ              $+6\r
176         JARL    vRegTestFailed, lp\r
177         MOV             0x13131313, R31\r
178         CMP             R31, R20\r
179         BZ              $+6\r
180         JARL    vRegTestFailed, lp\r
181         MOV             0x14141414, R31\r
182         CMP             R31, R21\r
183         BZ              $+6\r
184         JARL    vRegTestFailed, lp\r
185         MOV             0x15151515, R31\r
186         CMP             R31, R22\r
187         BZ              $+6\r
188         JARL    vRegTestFailed, lp\r
189         MOV             0x16161616, R31\r
190         CMP             R31, R23\r
191         BZ              $+6\r
192         JARL    vRegTestFailed, lp\r
193         MOV             0x17171717, R31\r
194         CMP             R31, R24\r
195         BZ              $+6\r
196         JARL    vRegTestFailed, lp\r
197 #if ( configDATA_MODE == 1 )\r
198         MOV             0x18181818, R31\r
199         CMP             R31, R25\r
200         BZ              $+6\r
201         JARL    vRegTestFailed, lp\r
202 #endif\r
203         MOV             0x19191919, R31\r
204         CMP             R31, R26\r
205         BZ              $+6\r
206         JARL    vRegTestFailed, lp\r
207         MOV             0x20202020, R31\r
208         CMP             R31, R27\r
209         BZ              $+6\r
210         JARL    vRegTestFailed, lp\r
211         MOV             0x21212121, R31\r
212         CMP             R31, R28\r
213         BZ              $+6\r
214         JARL    vRegTestFailed, lp\r
215         MOV             0x22222222, R31\r
216         CMP             R31, R29\r
217         BZ              $+6\r
218         JARL    vRegTestFailed, lp\r
219         MOV             0x23232323, R31\r
220         CMP             R31, R30\r
221         BZ              $+6\r
222         JARL    vRegTestFailed, lp\r
223         MOV             vReg1TestLoopStart, R31 \r
224         JMP             [R31]\r
225 \r
226 ;------------------------------------------------------------------------------\r
227 ;------------------------------------------------------------------------------ \r
228     RSEG CODE:CODE\r
229 vRegTest2:\r
230     MOV         0xa101010b, R1\r
231     MOV         0xa202020b, R2\r
232         ; Ignore R3 and R4 as these are the stack and global pointers respectively.\r
233         MOV             0xa404040b, R5\r
234         MOV             0xa505050b, R6\r
235         MOV             0xa606060b, R7\r
236         MOV             0xa707070b, R8\r
237         MOV             0xa808080b, R9\r
238         MOV             0xa909090b, R10\r
239         MOV             0xaa0a0a0b, R11\r
240         MOV             0xab0b0b0b, R12\r
241         MOV             0xac0c0c0b, R13\r
242         MOV             0xad0d0d0b, R14\r
243         MOV             0xae0e0e0b, R15\r
244         MOV             0xaf0f0f0b, R16\r
245         MOV             0xa010101b, R17\r
246         MOV             0xa111111b, R18\r
247         MOV             0xa212121b, R19\r
248         MOV             0xa313131b, R20\r
249         MOV             0xa414141b, R21\r
250         MOV             0xa515151b, R22\r
251         MOV             0xa616161b, R23\r
252         MOV             0xa717171b, R24\r
253 #if ( configDATA_MODE == 1 )\r
254         ;R25 is used as a base register except when the tiny model is used. */\r
255         MOV             0xa818181b, R25\r
256 #endif\r
257         MOV             0xa919191b, R26\r
258         MOV             0xa020202b, R27\r
259         MOV             0xa121212b, R28\r
260         MOV             0xa222222b, R29\r
261         MOV             0xa323232b, R30\r
262         \r
263 vReg2TestLoopStart:\r
264         MOV             0xa101010b, R31\r
265         CMP             R31, R1\r
266         BZ              $+6\r
267         JARL    vRegTestFailed, lp\r
268         MOV             0xa202020b, R31\r
269         CMP             R31, R2\r
270         BZ              $+6\r
271         JARL    vRegTestFailed, lp\r
272         MOV             0xa404040b, R31\r
273         CMP             R31, R5\r
274         BZ              $+6\r
275         JARL    vRegTestFailed, lp\r
276         MOV             0xa505050b, R31\r
277         CMP             R31, R6\r
278         BZ              $+6\r
279         JARL    vRegTestFailed, lp\r
280         MOV             0xa606060b, R31\r
281         CMP             R31, R7\r
282         BZ              $+6\r
283         JARL    vRegTestFailed, lp\r
284         MOV             0xa707070b, R31\r
285         CMP             R31, R8\r
286         BZ              $+6\r
287         JARL    vRegTestFailed, lp\r
288         MOV             0xa808080b, R31\r
289         CMP             R31, R9\r
290         BZ              $+6\r
291         JARL    vRegTestFailed, lp\r
292         MOV             0xa909090b, R31\r
293         CMP             R31, R10\r
294         BZ              $+6\r
295         JARL    vRegTestFailed, lp\r
296         MOV             0xaa0a0a0b, R31\r
297         CMP             R31, R11\r
298         BZ              $+6\r
299         JARL    vRegTestFailed, lp\r
300         MOV             0xab0b0b0b, R31\r
301         CMP             R31, R12\r
302         BZ              $+6\r
303         JARL    vRegTestFailed, lp\r
304         MOV             0xac0c0c0b, R31\r
305         CMP             R31, R13\r
306         BZ              $+6\r
307         JARL    vRegTestFailed, lp\r
308         MOV             0xad0d0d0b, R31\r
309         CMP             R31, R14\r
310         BZ              $+6\r
311         JARL    vRegTestFailed, lp\r
312         MOV             0xae0e0e0b, R31\r
313         CMP             R31, R15\r
314         BZ              $+6\r
315         JARL    vRegTestFailed, lp\r
316         MOV             0xaf0f0f0b, R31\r
317         CMP             R31, R16\r
318         BZ              $+6\r
319         JARL    vRegTestFailed, lp\r
320         MOV             0xa010101b, R31\r
321         CMP             R31, R17\r
322         BZ              $+6\r
323         JARL    vRegTestFailed, lp\r
324         MOV             0xa111111b, R31\r
325         CMP             R31, R18\r
326         BZ              $+6\r
327         JARL    vRegTestFailed, lp\r
328         MOV             0xa212121b, R31\r
329         CMP             R31, R19\r
330         BZ              $+6\r
331         JARL    vRegTestFailed, lp\r
332         MOV             0xa313131b, R31\r
333         CMP             R31, R20\r
334         BZ              $+6\r
335         JARL    vRegTestFailed, lp\r
336         MOV             0xa414141b, R31\r
337         CMP             R31, R21\r
338         BZ              $+6\r
339         JARL    vRegTestFailed, lp\r
340         MOV             0xa515151b, R31\r
341         CMP             R31, R22\r
342         BZ              $+6\r
343         JARL    vRegTestFailed, lp\r
344         MOV             0xa616161b, R31\r
345         CMP             R31, R23\r
346         BZ              $+6\r
347         JARL    vRegTestFailed, lp\r
348         MOV             0xa717171b, R31\r
349         CMP             R31, R24\r
350         BZ              $+6\r
351         JARL    vRegTestFailed, lp\r
352 #if ( configDATA_MODE == 1 )\r
353         MOV             0xa818181b, R31\r
354         CMP             R31, R25\r
355         BZ              $+6\r
356         JARL    vRegTestFailed, lp\r
357 #endif\r
358         MOV             0xa919191b, R31\r
359         CMP             R31, R26\r
360         BZ              $+6\r
361         JARL    vRegTestFailed, lp\r
362         MOV             0xa020202b, R31\r
363         CMP             R31, R27\r
364         BZ              $+6\r
365         JARL    vRegTestFailed, lp\r
366         MOV             0xa121212b, R31\r
367         CMP             R31, R28\r
368         BZ              $+6\r
369         JARL    vRegTestFailed, lp\r
370         MOV             0xa222222b, R31\r
371         CMP             R31, R29\r
372         BZ              $+6\r
373         JARL    vRegTestFailed, lp\r
374         MOV             0xa323232b, R31\r
375         CMP             R31, R30\r
376         BZ              $+6\r
377         JARL    vRegTestFailed, lp\r
378         MOV             vReg2TestLoopStart, R31 \r
379         JMP             [R31]\r
380 \r
381       END\r
382