]> git.sur5r.net Git - freertos/blob - Demo/CORTEX_M4F_M0_LPC43xx_Keil/platform/platform_config.c
Add two Cortex-M4F demo applications.
[freertos] / Demo / CORTEX_M4F_M0_LPC43xx_Keil / platform / platform_config.c
1 #include "LPC43xx.h"\r
2 #include "platform_config.h"\r
3 \r
4 #include "scu.h"\r
5 #include "type.h"\r
6 #include "emc_LPC43xx.h"\r
7 #include "fpu_init.h"\r
8 \r
9 \r
10 /**********************************************************************\r
11  ** Function prototypes\r
12  **********************************************************************/\r
13 void vIOInit(void);\r
14 void clockInit(void);\r
15 \r
16 \r
17 \r
18 /* this function initializes the platform with system level settings */\r
19 void platformInit(void) {\r
20 \r
21         SystemInit();\r
22         \r
23         fpuInit();      \r
24         \r
25         clockInit();\r
26 \r
27         vIOInit();\r
28 \r
29         #if (USE_EXT_STATIC_MEM == YES) || (USE_EXT_DYNAMIC_MEM == YES)\r
30          \r
31         EMC_Init();\r
32         \r
33         #endif\r
34 \r
35     #if (USE_EXT_FLASH == YES)\r
36         \r
37         // relocate vector table to internal ram\r
38         // updates also VTOR\r
39         relocIrqTable(); \r
40         \r
41         #endif\r
42 \r
43 }\r
44 \r
45 /*----------------------------------------------------------------------------\r
46   Initialize board specific IO\r
47  *----------------------------------------------------------------------------*/\r
48 void vIOInit(void)\r
49 {       \r
50         #if (PLATFORM == NXP_VALIDATION_BOARD)\r
51                 // P9.2 : GPIO4_14: LD11 (LED)\r
52                 scu_pinmux(0x9 ,2 , PDN_ENABLE, FUNC0);         \r
53                 LPC_GPIO4->DIR |= (1UL << 14);\r
54         #endif\r
55         #if (PLATFORM == HITEX_A2_BOARD)\r
56                 // P9.3 : GPIO4_15\r
57                 scu_pinmux(0x9 , 3 , PDN_ENABLE, FUNC0);        \r
58                 LPC_GPIO4->DIR |= (1UL << 15);\r
59         #endif  \r
60 }\r
61         \r
62 /*----------------------------------------------------------------------------\r
63   Initialize clocks\r
64  *----------------------------------------------------------------------------*/\r
65 void clockInit(void)\r
66 {\r
67         /* Set PL160M @ 10*12=120 MHz */\r
68         SetPL160M(SRC_XTAL, 10);                                                \r
69         /* Run base M4 clock from PL160M, no division */\r
70         SetClock(BASE_M4_CLK, SRC_PL160M_0, DIV1);              \r
71         /* Show base out clock on output */\r
72         SetClock(BASE_OUT_CLK, SRC_XTAL, DIV1); \r
73         \r
74         // clock to UART 1\r
75         SetClock(BASE_UART1_CLK, SRC_PL160M_0, DIV1);\r
76 \r
77         // clock to CAN1 > 15 MHz\r
78         // SetClock(BASE_VPB1_CLK, SRC_PL160M_0, DIV8);                         \r
79 }\r
80 \r
81 \r