]> git.sur5r.net Git - freertos/blob - FreeRTOS/Demo/CORTEX_R4F_RZ_T_GCC_IAR/System/IAR/RZT1_init_RAM.mac
FreeRTOS source:
[freertos] / FreeRTOS / Demo / CORTEX_R4F_RZ_T_GCC_IAR / System / IAR / RZT1_init_RAM.mac
1 /*\r
2  *\r
3  *   C-SPY macro information\r
4  *\r
5  *    __jtagCP15ReadReg(CRn, CRm, op1, op2)\r
6  *    __jtagCP15WriteReg(CRn, CRm, op1, op2, value)\r
7  *    __readMemory8(address, zone)\r
8  *    __writeMemory8(value, address, zone)\r
9  *    __writeMemory32(value, address, zone)\r
10  *\r
11  *\r
12  */\r
13 \r
14 __init_TCM()\r
15 {\r
16 __var v_reg;\r
17 \r
18   __message "Initialize ATCM";\r
19   /*\r
20   MRC p15, 0, <Rd>, c1, c0, 1 ; Read ACTLR\r
21   MCR p15, 0, <Rd>, c1, c0, 1 ; Write ACTLR\r
22   */\r
23 \r
24   /* enable ECC in ACTLR */\r
25   v_reg = __jtagCP15ReadReg(1, 0, 0, 1);\r
26   v_reg =  v_reg | 0x06000000; // set 26 and 25 bits for enabling  ECC\r
27   __message "ACTRL: ", v_reg:%x; // output ACTRL value for check\r
28   __jtagCP15WriteReg(1, 0, 0, 1, v_reg);\r
29 \r
30   __fillMemory32(0x0, 0x00000000, "Memory", 0x20000, "Copy");\r
31   __message "ATCM initialization finished";\r
32 }\r
33 \r
34 \r
35 __init_VIC_ProvideHandler()\r
36 {\r
37 __var v_reg;\r
38 \r
39   __message "Initialize VIC provide handler \n";\r
40   /*\r
41   MRC p15, 0, <Rd>, c1, c0, 0 ; Read SCTLR\r
42   MCR p15, 0, <Rd>, c1, c0, 0 ; Write SCTLR\r
43   */\r
44 \r
45   /* Set VIC to provide handler address */\r
46   v_reg = __jtagCP15ReadReg(1, 0, 0, 0);\r
47   v_reg =  v_reg | 0x01000000; // set 24 bit for setting VE bit\r
48   __jtagCP15WriteReg(1, 0, 0, 0, v_reg);\r
49 \r
50 }\r
51 \r
52 execUserPreload()\r
53 {\r
54 __var t ;\r
55 \r
56   __message "Executing execUserPreload() function";\r
57 \r
58   __hwReset(0);\r
59   __delay(100);\r
60   __init_TCM();\r
61 \r
62   __message "FINISH Executing execUserPreload() function";\r
63 }\r
64 \r
65 \r
66 execUserReset()\r
67 {\r
68 __var t;\r
69   __message "Executing execUserReset() function";\r
70 \r
71   __init_VIC_ProvideHandler();\r
72 \r
73   t = #CPSR;                // Clear CPSR.F bit\r
74   __message "CPSR ",t:%x;\r
75   t = t & 0xFFFFFFBF;\r
76   #CPSR = t;\r
77   t = #CPSR;\r
78   __message "CPSR ",t:%x;\r
79 \r
80   __message "FINISH Executing execUserReset() function";\r
81 }\r