]> git.sur5r.net Git - freertos/blob - FreeRTOS/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/Renesas-Files/resetprg.c
commit 9f316c246baafa15c542a5aea81a94f26e3d6507
[freertos] / FreeRTOS / Demo / RX200_RX210-RSK_Renesas / RTOSDemo / Renesas-Files / resetprg.c
1 /***********************************************************************/\r
2 /*                                                                     */\r
3 /*  FILE        :resetprg.c                                            */\r
4 /*  DATE        :Wed, Aug 11, 2010                                     */\r
5 /*  DESCRIPTION :Reset Program                                         */\r
6 /*  CPU TYPE    :Other                                                 */\r
7 /*                                                                     */\r
8 /*  This file is generated by Renesas Project Generator (Ver.4.50).    */\r
9 /*  NOTE:THIS IS A TYPICAL EXAMPLE.                                    */\r
10 /*                                                                     */\r
11 /***********************************************************************/\r
12                   \r
13 \r
14 \r
15 /*********************************************************************\r
16 *\r
17 * Device     : RX/RX200\r
18 *\r
19 * File Name  : resetprg.c\r
20 *\r
21 * Abstract   : Reset Program.\r
22 *\r
23 * History    : 1.00  (2009-08-07)\r
24 *\r
25 * NOTE       : THIS IS A TYPICAL EXAMPLE.\r
26 *\r
27 * Copyright(c) 2009 Renesas Technology Corp.\r
28 *               And Renesas Solutions Corp.,All Rights Reserved. \r
29 *\r
30 *********************************************************************/\r
31 \r
32 #include        <machine.h>\r
33 #include        <_h_c_lib.h>\r
34 //#include      <stddef.h>                                      // Remove the comment when you use errno\r
35 //#include      <stdlib.h>                                      // Remove the comment when you use rand()\r
36 #include        "typedefine.h"\r
37 #include        "stacksct.h"\r
38 \r
39 #pragma inline_asm Change_PSW_PM_to_UserMode\r
40 static void Change_PSW_PM_to_UserMode(void);\r
41 \r
42 #ifdef __cplusplus\r
43 extern "C" {\r
44 #endif\r
45 void PowerON_Reset_PC(void);\r
46 void main(void);\r
47 #ifdef __cplusplus\r
48 }\r
49 #endif\r
50 \r
51 #ifdef __cplusplus                              // Use SIM I/O\r
52 extern "C" {\r
53 #endif\r
54 extern void _INIT_IOLIB(void);\r
55 extern void _CLOSEALL(void);\r
56 #ifdef __cplusplus\r
57 }\r
58 #endif\r
59 \r
60 #define PSW_init  0x00010000\r
61 #define FPSW_init 0x00000100\r
62 \r
63 //extern void srand(_UINT);             // Remove the comment when you use rand()\r
64 //extern _SBYTE *_s1ptr;                                // Remove the comment when you use strtok()\r
65                 \r
66 //#ifdef __cplusplus                            // Use Hardware Setup\r
67 //extern "C" {\r
68 //#endif\r
69 //extern void HardwareSetup(void);\r
70 //#ifdef __cplusplus\r
71 //}\r
72 //#endif\r
73         \r
74 //#ifdef __cplusplus                    // Remove the comment when you use global class object\r
75 //extern "C" {                                  // Sections C$INIT and C$END will be generated\r
76 //#endif\r
77 //extern void _CALL_INIT(void);\r
78 //extern void _CALL_END(void);\r
79 //#ifdef __cplusplus\r
80 //}\r
81 //#endif\r
82 \r
83 #pragma section ResetPRG\r
84 \r
85 #pragma entry PowerON_Reset_PC\r
86 \r
87 void PowerON_Reset_PC(void)\r
88\r
89         set_intb((void*)__sectop("C$VECT"));\r
90 //      set_fpsw(FPSW_init);\r
91 \r
92         _INITSCT();\r
93 \r
94 //      _INIT_IOLIB();                                  // Remove the comment when you use SIM I/O\r
95 \r
96 //      errno=0;                                                // Remove the comment when you use errno\r
97 //      srand((_UINT)1);                                // Remove the comment when you use rand()\r
98 //      _s1ptr=NULL;                                    // Remove the comment when you use strtok()\r
99                 \r
100 //      HardwareSetup();                                // Use Hardware Setup\r
101     nop();\r
102 \r
103 //      _CALL_INIT();                                   // Remove the comment when you use global class object\r
104 \r
105         set_psw(PSW_init);                              // Set Ubit & Ibit for PSW\r
106 //      Change_PSW_PM_to_UserMode();    // DO NOT CHANGE TO USER MODE IF USING FREERTOS!\r
107         ( void ) Change_PSW_PM_to_UserMode; // Just to avoid compiler warnings.\r
108 \r
109         main();\r
110 \r
111 //      _CLOSEALL();                                    // Use SIM I/O\r
112         \r
113 //      _CALL_END();                                    // Remove the comment when you use global class object\r
114 \r
115         brk();\r
116 }\r
117 \r
118 static void Change_PSW_PM_to_UserMode(void)\r
119 {\r
120         MVFC   PSW,R1\r
121         OR     #00100000h,R1\r
122         PUSH.L R1\r
123         MVFC   PC,R1\r
124         ADD    #10,R1\r
125         PUSH.L R1\r
126         RTE\r
127         NOP\r
128         NOP\r
129 }\r