]> git.sur5r.net Git - freertos/blob - FreeRTOS/Demo/CORTEX_A5_SAMA5D2x_Xplained_IAR/AtmelFiles/target/sama5d2/toolchain/iar/sram.mac
Add SAMA5D2 Xplained IAR demo.
[freertos] / FreeRTOS / Demo / CORTEX_A5_SAMA5D2x_Xplained_IAR / AtmelFiles / target / sama5d2 / toolchain / iar / sram.mac
1 /*********************************************************************\r
2 * execUserReset()\r
3 *********************************************************************/\r
4 execUserReset()\r
5 {\r
6     __message "------------------------------ execUserReset ---------------------------------";\r
7 \r
8     /* Reset peripherals (using RSTC_CR) */\r
9     __writeMemory32(0xA5000004, 0xF8048000, "Memory");\r
10 \r
11     /* Disable Watchdog (using WDT_MR) */\r
12     __writeMemory32(0x00008000, 0xF8048044, "Memory");\r
13 \r
14     /* Disable D-Cache, I-Cache and MMU */\r
15     __jtagCP15WriteReg(1, 0, 0, 0, 0x00C50078);\r
16 \r
17     /* Reset L2 Cache controller */\r
18     __writeMemory32(0x0, 0x00A00100, "Memory");\r
19 \r
20     /* Disable DDR clock and MPDDRC controller to avoid */\r
21     /* corrupted RAM data on soft reset. */\r
22     __writeMemory32(0x00000004, 0xF0014004, "Memory");\r
23     __writeMemory32(0x00002000, 0xF0014014, "Memory");\r
24 \r
25     /* Disable all interrupts and go to supervisor mode */\r
26     #CPSR = 0xD3;\r
27 \r
28     /* Zero registers (cannot reset core because it will disable JTAG) */\r
29     #R8_fiq = 0;\r
30     #R9_fiq = 0;\r
31     #R10_fiq = 0;\r
32     #R11_fiq = 0;\r
33     #R12_fiq = 0;\r
34     #SP_fiq = 0;\r
35     #LR_fiq = 0;\r
36     #SPSR_fiq = 0;\r
37     #SP_irq = 0;\r
38     #LR_irq = 0;\r
39     #SPSR_irq = 0;\r
40     #SP_abt = 0;\r
41     #LR_abt = 0;\r
42     #SPSR_abt = 0;\r
43     #SP_und = 0;\r
44     #LR_und = 0;\r
45     #SPSR_und = 0;\r
46     #SP_svc = 0;\r
47     #LR_svc = 0;\r
48     #SPSR_svc = 0;\r
49     #R0 = 0;\r
50     #R1 = 0;\r
51     #R2 = 0;\r
52     #R3 = 0;\r
53     #R4 = 0;\r
54     #R5 = 0;\r
55     #R6 = 0;\r
56     #R7 = 0;\r
57     #R8_usr = 0;\r
58     #R9_usr = 0;\r
59     #R10_usr = 0;\r
60     #R11_usr = 0;\r
61     #R12_usr = 0;\r
62     #SP_usr = 0;\r
63     #LR_usr = 0;\r
64 \r
65     /* Initialize PC */\r
66     #PC = 0x200000;\r
67 }\r
68 \r
69 /*********************************************************************\r
70 * execUserPreload()\r
71 *********************************************************************/\r
72 execUserPreload()\r
73 {\r
74     __message "------------------------------ execUserPreload ---------------------------------";\r
75 }\r