📄 bsp.lst
字号:
54 #define GPIO0_LCD_RSTOUT_SEL DEF_BIT_21 /* LCD (Can be selected) */
55 #define GPIO0_MCIDAT0_SEL DEF_BIT_22 /* SD/MMC (Because of silicon errata) */
56 #define GPIO0_AD00 DEF_BIT_23
57 #define GPIO0_AD01 DEF_BIT_24
58 #define GPIO0_PBLED_SDA0 DEF_BIT_27 /* PCA9532 */
59 #define GPIO0_PBLED_SCL0 DEF_BIT_28 /* PCA9532 */
60 #define GPIO0_USBA_DP DEF_BIT_29
61 #define GPIO0_USBA_DM DEF_BIT_30
62 #define GPIO0_USBB_DP DEF_BIT_31
63
64 /* ---------------------- GPIO1 Pins ---------------------- */
65 #define GPIO1_E_TXD0 DEF_BIT_00
66 #define GPIO1_E_TXD1 DEF_BIT_01
67 #define GPIO1_MCICLK DEF_BIT_02 /* SD/MMC */
68 #define GPIO1_MCICMD DEF_BIT_03 /* SD/MMC */
69 #define GPIO1_E_TX_EN DEF_BIT_04
70 #define GPIO1_MCIPWR DEF_BIT_05 /* SD/MMC */
71 #define GPIO1_MCIDAT0 DEF_BIT_06 /* SD/MMC (Cannot be used due to errata) */
72 #define GPIO1_MCIDAT1 DEF_BIT_07 /* SD/MMC */
73 #define GPIO1_E_CRS0 DEF_BIT_08
74 #define GPIO1_E_RXD0 DEF_BIT_09
75 #define GPIO1_E_RXD1 DEF_BIT_10
76 #define GPIO1_MCIDAT2 DEF_BIT_11 /* SD/MMC */
77 #define GPIO1_MCIDAT3 DEF_BIT_12 /* SD/MMC */
78 #define GPIO1_E_RX_ER DEF_BIT_14
79 #define GPIO1_E_RX_CLK DEF_BIT_15
80 #define GPIO1_E_MDC DEF_BIT_16
81 #define GPIO1_E_MDIO DEF_BIT_17
82 #define GPIO1_USBA_LED DEF_BIT_18 /* USB Channel A (OTG) */
83 #define GPIO1_USBA_SDA DEF_BIT_27
84 #define GPIO1_USBA_SCL DEF_BIT_28
85 #define GPIO1_USBA_INT DEF_BIT_29
86 #define GPIO1_USBB_PWR_VBUS DEF_BIT_30 /* USB Channel B */
87 #define GPIO1_USBB_OVERCRNT DEF_BIT_31 /* USB Channel B */
88
89 /* ---------------------- GPIO2 Pins ---------------------- */
90 #define GPIO2_ETM ((CPU_INT32U)(0x000000FF))
91 #define GPIO2_EINT0 DEF_BIT_10
92 #define GPIO2_PHY_INT_SEL DEF_BIT_11 /* PHY Interrupt output */
93 #define GPIO2_NAND_BUSY_SEL DEF_BIT_12
94 #define GPIO2_CS2 DEF_BIT_14 /* DBUS_EN */
95 #define GPIO2_RAS DEF_BIT_16
96 #define GPIO2_CAS DEF_BIT_17
97 #define GPIO2_CLKOUT0 DEF_BIT_18
98 #define GPIO2_CLKOUT1 DEF_BIT_19
99 #define GPIO2_DYCS0 DEF_BIT_20
100 #define GPIO2_DYCS1 DEF_BIT_21 /* DBUS_EN */
101 #define GPIO2_CKE0 DEF_BIT_24
102 #define GPIO2_CKE1 DEF_BIT_25
103 #define GPIO2_DQM0 DEF_BIT_28
104 #define GPIO2_DQM1 DEF_BIT_29
105
106 /* ---------------------- GPIO4 Pins ---------------------- */
107 #define GPIO3_LCD_D ((CPU_INT32U)(0x0000FFFF)) /* LCD Data Bus */
108 #define GPIO3_TXD1 DEF_BIT_16 /* UART #1: RS232 Full Modem or WLAN Add-On Module */
109 #define GPIO3_RXD1 DEF_BIT_17 /* UART #1: RS232 Full Modem or WLAN Add-On Module */
110 #define GPIO3_CTS1 DEF_BIT_18 /* UART #1: RS232 Full Modem or WLAN Add-On Module */
111 #define GPIO3_DCD1 DEF_BIT_19 /* UART #1: RS232 Full Modem or WLAN Add-On Module */
112 #define GPIO3_DSR1 DEF_BIT_20 /* UART #1: RS232 Full Modem or WLAN Add-On Module */
113 #define GPIO3_DTR1 DEF_BIT_21 /* UART #1: RS232 Full Modem or WLAN Add-On Module */
114 #define GPIO3_RI1 DEF_BIT_22 /* UART #1: RS232 Full Modem or WLAN Add-On Module */
115 #define GPIO3_LCD_LIGHT DEF_BIT_28 /* LCD Backlight */
116 #define GPIO3_RTS1 DEF_BIT_30 /* UART #1: RS232 Full Modem or WLAN Add-On Module */
117
118
119 /* ---------------------- GPIO4 Pins ---------------------- */
120 #define GPIO4_LCD_A ((CPU_INT32U)(0x00FFFFFF)) /* LCD address bus */
121 #define GPIO4_LCD_OE DEF_BIT_24 /* LCD RD_E Input */
122 #define GPIO4_LCD_WE DEF_BIT_25 /* LCD WR_RW Input */
123 #define GPIO4_BLS0 DEF_BIT_26
124 #define GPIO4_BLS1 DEF_BIT_27
125 #define GPIO4_CS0 DEF_BIT_30
126 #define GPIO4_CS1 DEF_BIT_31
127
128 /*
129 *********************************************************************************************************
130 * DATA TYPES
131 *********************************************************************************************************
132 */
133
134 typedef void (*BSP_FNCT_PTR)(void); /* Pointer to ISR handler function */
135
136 /*
137 *********************************************************************************************************
138 * VARIABLES
139 *********************************************************************************************************
140 */
141
\ In segment DATA_Z, align 4, align-sorted
142 CPU_INT32U VIC_SpuriousInt;
\ VIC_SpuriousInt:
\ 00000000 DS8 4
143
144 /*
145 *********************************************************************************************************
146 * PROTOTYPES
147 *********************************************************************************************************
148 */
149
150 static void PLL_Init (void);
151 static void MAM_Init (void);
152 static void GPIO_Init (void);
153 static void VIC_Init (void);
154 static void ADC_Init (void);
155
156 static void DCC_Init (void);
157
158 static void Tmr_TickInit (void);
159
160 static void VIC_Dummy (void); /* Prototypes for dummy interrupt handlers */
161 static void VIC_DummyWDT (void);
162 static void VIC_DummySW (void);
163 static void VIC_DummyDEBUGRX (void);
164 static void VIC_DummyDEBUGTX (void);
165 static void VIC_DummyTIMER0 (void);
166 static void VIC_DummyTIMER1 (void);
167 static void VIC_DummyUART0 (void);
168 static void VIC_DummyUART1 (void);
169 static void VIC_DummyPWM01 (void);
170 static void VIC_DummyI2C0 (void);
171 static void VIC_DummySPI (void);
172 static void VIC_DummySSP1 (void);
173 static void VIC_DummyPLL (void);
174 static void VIC_DummyRTC (void);
175 static void VIC_DummyEINT0 (void);
176 static void VIC_DummyEINT1 (void);
177 static void VIC_DummyEINT2 (void);
178 static void VIC_DummyEINT3 (void);
179 static void VIC_DummyAD0 (void);
180 static void VIC_DummyI2C1 (void);
181 static void VIC_DummyBOD (void);
182 static void VIC_DummyETHERNET (void);
183 static void VIC_DummyUSB (void);
184 static void VIC_DummyCAN01 (void);
185 static void VIC_DummyMMC (void);
186 static void VIC_DummyGP_DMA (void);
187 static void VIC_DummyTIMER2 (void);
188 static void VIC_DummyTIMER3 (void);
189 static void VIC_DummyUART2 (void);
190 static void VIC_DummyUART3 (void);
191 static void VIC_DummyI2C2 (void);
192 static void VIC_DummyI2S (void);
193
194 /*
195 ******************************************************************************************************************************
196 ******************************************************************************************************************************
197 ** Global Functions
198 ******************************************************************************************************************************
199 ******************************************************************************************************************************
200 */
201
202 /*
203 *********************************************************************************************************
204 * BSP INITIALIZATION
205 *
206 * Description : This function should be called by your application code before you make use of any of the
207 * functions found in this module.
208 *
209 * Arguements : None
210 *
211 * Returns : None
212 *********************************************************************************************************
213 */
214
\ In segment CODE, align 4, keep-with-next
215 void BSP_Init (void)
216 {
\ BSP_Init:
\ 00000000 00402DE9 PUSH {LR}
217 PLL_Init(); /* Initialize the PLL */
\ 00000004 ........ BL PLL_Init
218 MAM_Init(); /* Initialize the Memory Acceleration Module */
\ 00000008 ........ BL MAM_Init
219 GPIO_Init(); /* Initialize the board's I/Os */
\ 0000000C ........ BL GPIO_Init
220 ADC_Init(); /* Initialize the board's ADCs */
\ 00000010 ........ BL ADC_Init
221 VIC_Init(); /* Initialize the Vectored Interrupt Controller */
\ 00000014 ........ BL VIC_Init
222 I2C_Init(); /* Initialize the I2C */
\ 00000018 ........ _BLF I2C_Init,??I2C_Init??rA
223
224 Tmr_TickInit(); /* Initialize the uC/OS-II tick interrupt */
\ 0000001C ........ BL Tmr_TickInit
225 }
\ 00000020 0080BDE8 POP {PC} ;; return
226
227
228 /*
229 *********************************************************************************************************
230 * Get the CPU Clock Frequency
231 *
232 * Description : This function reads CPU registers to determine the CPU clock frequency
233 *
234 * Arguements : None
235 *
236 * Returns : The CPU Core clock in Hz
237 *
238 * Notes : None
239 *********************************************************************************************************
240 */
241
\ In segment CODE, align 4, keep-with-next
242 CPU_INT32U BSP_CPU_ClkFreq (void)
243 {
\ BSP_CPU_ClkFreq:
\ 00000000 00402DE9 PUSH {LR}
244 CPU_INT32U msel;
245 CPU_INT32U nsel;
246 CPU_INT32U fin;
247 CPU_INT32U pll_clk_feq; /* When the PLL is enabled, this is Fcco */
248 CPU_INT32U clk_div;
249 CPU_INT32U clk_freq;
250
251
252 switch (CLKSRCSEL & 0x03) { /* Determine the current clock source */
\ 00000004 ........ LDR R0,??DataTable10 ;; 0xffffffffe01fc10c
\ 00000008 000090E5 LDR R0,[R0, #+0]
\ 0000000C 030010E2 ANDS R0,R0,#0x3
\ 00000010 020050E3 CMP R0,#+2
\ 00000014 0B00008A BHI ??BSP_CPU_ClkFreq_1
\ 00000018 011F8FE2 ADR R1,??BSP_CPU_ClkFreq_0
\ 0000001C 0010D1E7 LDRB R1,[R1, R0]
\ 00000020 01F18FE0 ADD PC,PC,R1, LSL #+2
\ ??BSP_CPU_ClkFreq_0:
\ 00000024 00030600 DC8 +0,+3,+6,+0
253 case 0:
254 fin = IRC_OSC_FRQ;
\ ??BSP_CPU_ClkFreq_2:
\ 00000028 B708A0E3 MOV R0,#+11993088
\ 0000002C 6C0D80E3 ORR R0,R0,#0x1B00
\ 00000030 060000EA B ??BSP_CPU_ClkFreq_3
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -