📄 bsp.s79
字号:
??LED_On_11:
LDR R0,??LED_On_3 ;; 0xe0028004
MOVS R1,#+64
B.N ??LED_On_4
// 173 break;
// 174
// 175 case 8:
// 176 IOSET = 1 << 7;
??LED_On_12:
LDR R0,??LED_On_3 ;; 0xe0028004
MOVS R1,#+128
B.N ??LED_On_4
// 177 break;
// 178
// 179 case 9:
// 180 IOSET = 1 << 8;
??LED_On_13:
LDR R0,??LED_On_3 ;; 0xe0028004
MOVS R1,#+128
LSLS R1,R1,#+1 ;; #+256
B.N ??LED_On_4
// 181 break;
// 182
// 183 case 10:
// 184 IOSET = 1 << 9;
??LED_On_14:
LDR R0,??LED_On_3 ;; 0xe0028004
MOVS R1,#+128
LSLS R1,R1,#+2 ;; #+512
B.N ??LED_On_4
// 185 break;
// 186
// 187 case 11:
// 188 IOSET = 1 << 10;
??LED_On_15:
LDR R0,??LED_On_3 ;; 0xe0028004
MOVS R1,#+128
LSLS R1,R1,#+3 ;; #+1024
B.N ??LED_On_4
// 189 break;
// 190
// 191 case 12:
// 192 IOSET = 1 << 11;
??LED_On_16:
LDR R0,??LED_On_3 ;; 0xe0028004
MOVS R1,#+128
LSLS R1,R1,#+4 ;; #+2048
B.N ??LED_On_4
// 193 break;
// 194
// 195 case 13:
// 196 IOSET = 1 << 12;
??LED_On_17:
LDR R0,??LED_On_3 ;; 0xe0028004
MOVS R1,#+128
LSLS R1,R1,#+5 ;; #+4096
B.N ??LED_On_4
// 197 break;
// 198
// 199 case 14:
// 200 IOSET = 1 << 13;
??LED_On_18:
LDR R0,??LED_On_3 ;; 0xe0028004
MOVS R1,#+128
LSLS R1,R1,#+6 ;; #+8192
B.N ??LED_On_4
// 201 break;
// 202
// 203 case 15:
// 204 IOSET = 1 << 14;
??LED_On_19:
LDR R0,??LED_On_3 ;; 0xe0028004
MOVS R1,#+128
LSLS R1,R1,#+7 ;; #+16384
B.N ??LED_On_4
// 205 break;
// 206
// 207 case 16:
// 208 IOSET = 1 << 15;
??LED_On_20:
LDR R0,??LED_On_3 ;; 0xe0028004
MOVS R1,#+128
LSLS R1,R1,#+8 ;; #+32768
??LED_On_4:
STR R1,[R0, #+0]
// 209 break;
// 210 }
// 211 }
??LED_On_1:
POP {R0}
BX R0 ;; return
DATA
??LED_On_3:
DC32 0xe0028004
CFI EndBlock cfiBlock5
RSEG CODE:CODE:NOROOT(2)
CFI Block cfiBlock6 Using cfiCommon0
CFI NoFunction
ARM
??LED_Off??rA:
ADD R12,PC,#+1
BX R12
CFI EndBlock cfiBlock6
REQUIRE LED_Off
// 212
// 213 /*
// 214 *********************************************************************************************************
// 215 * LED OFF
// 216 *
// 217 * Description : This function is used to control any or all the LEDs on the board.
// 218 *
// 219 * Arguments : led is the number of the LED to turn OFF
// 220 * 0 indicates that you want ALL the LEDs to be OFF
// 221 * 1 turns OFF LED1 on the board
// 222 * .
// 223 * .
// 224 * 8 turns OFF LED8 on the board
// 225 *********************************************************************************************************
// 226 */
// 227
RSEG CODE:CODE:NOROOT(2)
CFI Block cfiBlock7 Using cfiCommon1
CFI Function LED_Off
THUMB
// 228 void LED_Off (INT8U led)
// 229 {
LED_Off:
PUSH {LR}
CFI ?RET Frame(CFA, -4)
CFI CFA R13+4
// 230 switch (led) {
CMP R0,#+16
BHI ??LED_Off_1
ADR R1,??LED_Off_0
LDRB R1,[R1, R0]
ADD PC,PC,R1
DATA
??LED_Off_0:
DC8 +16,+22,+28,+34
DC8 +40,+46,+52,+58
DC8 +64,+70,+78,+86
DC8 +94,+102,+110,+118
DC8 +126,+0
THUMB
// 231 case 0:
// 232 IOCLR = 0x0000FFFF;
??LED_Off_2:
LDR R0,??LED_Off_3 ;; 0xe002800c
LDR R1,??DataTable2 ;; 0xffff
B.N ??LED_Off_4
// 233 break;
// 234
// 235 case 1:
// 236 IOCLR = 1 << 0;
??LED_Off_5:
LDR R0,??LED_Off_3 ;; 0xe002800c
MOVS R1,#+1
B.N ??LED_Off_4
// 237 break;
// 238
// 239 case 2:
// 240 IOCLR = 1 << 1;
??LED_Off_6:
LDR R0,??LED_Off_3 ;; 0xe002800c
MOVS R1,#+2
B.N ??LED_Off_4
// 241 break;
// 242
// 243 case 3:
// 244 IOCLR = 1 << 2;
??LED_Off_7:
LDR R0,??LED_Off_3 ;; 0xe002800c
MOVS R1,#+4
B.N ??LED_Off_4
// 245 break;
// 246
// 247 case 4:
// 248 IOCLR = 1 << 3;
??LED_Off_8:
LDR R0,??LED_Off_3 ;; 0xe002800c
MOVS R1,#+8
B.N ??LED_Off_4
// 249 break;
// 250
// 251 case 5:
// 252 IOCLR = 1 << 4;
??LED_Off_9:
LDR R0,??LED_Off_3 ;; 0xe002800c
MOVS R1,#+16
B.N ??LED_Off_4
// 253 break;
// 254
// 255 case 6:
// 256 IOCLR = 1 << 5;
??LED_Off_10:
LDR R0,??LED_Off_3 ;; 0xe002800c
MOVS R1,#+32
B.N ??LED_Off_4
// 257 break;
// 258
// 259 case 7:
// 260 IOCLR = 1 << 6;
??LED_Off_11:
LDR R0,??LED_Off_3 ;; 0xe002800c
MOVS R1,#+64
B.N ??LED_Off_4
// 261 break;
// 262
// 263 case 8:
// 264 IOCLR = 1 << 7;
??LED_Off_12:
LDR R0,??LED_Off_3 ;; 0xe002800c
MOVS R1,#+128
B.N ??LED_Off_4
// 265 break;
// 266
// 267 case 9:
// 268 IOCLR = 1 << 8;
??LED_Off_13:
LDR R0,??LED_Off_3 ;; 0xe002800c
MOVS R1,#+128
LSLS R1,R1,#+1 ;; #+256
B.N ??LED_Off_4
// 269 break;
// 270
// 271 case 10:
// 272 IOCLR = 1 << 9;
??LED_Off_14:
LDR R0,??LED_Off_3 ;; 0xe002800c
MOVS R1,#+128
LSLS R1,R1,#+2 ;; #+512
B.N ??LED_Off_4
// 273 break;
// 274
// 275 case 11:
// 276 IOCLR = 1 << 10;
??LED_Off_15:
LDR R0,??LED_Off_3 ;; 0xe002800c
MOVS R1,#+128
LSLS R1,R1,#+3 ;; #+1024
B.N ??LED_Off_4
// 277 break;
// 278
// 279 case 12:
// 280 IOCLR = 1 << 11;
??LED_Off_16:
LDR R0,??LED_Off_3 ;; 0xe002800c
MOVS R1,#+128
LSLS R1,R1,#+4 ;; #+2048
B.N ??LED_Off_4
// 281 break;
// 282
// 283 case 13:
// 284 IOCLR = 1 << 12;
??LED_Off_17:
LDR R0,??LED_Off_3 ;; 0xe002800c
MOVS R1,#+128
LSLS R1,R1,#+5 ;; #+4096
B.N ??LED_Off_4
// 285 break;
// 286
// 287 case 14:
// 288 IOCLR = 1 << 13;
??LED_Off_18:
LDR R0,??LED_Off_3 ;; 0xe002800c
MOVS R1,#+128
LSLS R1,R1,#+6 ;; #+8192
B.N ??LED_Off_4
// 289 break;
// 290
// 291 case 15:
// 292 IOCLR = 1 << 14;
??LED_Off_19:
LDR R0,??LED_Off_3 ;; 0xe002800c
MOVS R1,#+128
LSLS R1,R1,#+7 ;; #+16384
B.N ??LED_Off_4
// 293 break;
// 294
// 295 case 16:
// 296 IOCLR = 1 << 15;
??LED_Off_20:
LDR R0,??LED_Off_3 ;; 0xe002800c
MOVS R1,#+128
LSLS R1,R1,#+8 ;; #+32768
??LED_Off_4:
STR R1,[R0, #+0]
// 297 break;
// 298 }
// 299 }
??LED_Off_1:
POP {R0}
BX R0 ;; return
DATA
??LED_Off_3:
DC32 0xe002800c
CFI EndBlock cfiBlock7
RSEG CODE:CODE:NOROOT(2)
DATA
??DataTable2:
DC32 0xffff
RSEG CODE:CODE:NOROOT(2)
CFI Block cfiBlock8 Using cfiCommon0
CFI NoFunction
ARM
??Tmr_TickInit??rA:
ADD R12,PC,#+1
BX R12
CFI EndBlock cfiBlock8
REQUIRE Tmr_TickInit
// 300
// 301 /*
// 302 *********************************************************************************************************
// 303 * TICKER INITIALIZATION
// 304 *
// 305 * Description : This function is called to initialize uC/OS-II's tick source (typically a timer generating
// 306 * interrupts every 1 to 100 mS).
// 307 *
// 308 * Arguments : none
// 309 *********************************************************************************************************
// 310 */
// 311
RSEG CODE:CODE:NOROOT(2)
CFI Block cfiBlock9 Using cfiCommon1
CFI Function Tmr_TickInit
THUMB
// 312 void Tmr_TickInit (void)
// 313 {
// 314 /* VIC TIMER #0 Initialization */
// 315 VICIntSelect &= ~(1 << VIC_TIMER0); /* Enable interrupts */
Tmr_TickInit:
LDR R0,??Tmr_TickInit_0 ;; 0xfffff00c
LDR R1,[R0, #+0]
MOVS R2,#+16
BICS R1,R1,R2
STR R1,[R0, #+0]
// 316 VICVectAddr2 = (INT32U)Tmr_TickISR_Handler; /* Set the vector address */
LDR R0,??DataTable7 ;; 0xfffff108
LDR R1,??Tmr_TickInit_0+0x4 ;; Tmr_TickISR_Handler
STR R1,[R0, #+0]
// 317 VICVectCntl2 = 0x20 | VIC_TIMER0; /* Enable vectored interrupts */
LDR R0,??Tmr_TickInit_0+0x8 ;; 0xfffff208
MOVS R1,#+36
STR R1,[R0, #+0]
// 318 VICIntEnable = (1 << VIC_TIMER0); /* Enable Interrupts */
LDR R0,??Tmr_TickInit_0+0xC ;; 0xfffff010
STR R2,[R0, #+0]
// 319
// 320 T0TCR = 0; /* Disable timer 0. */
LDR R0,??Tmr_TickInit_0+0x10 ;; 0xe0004004
MOVS R1,#+0
STR R1,[R0, #+0]
// 321 T0PC = 0; /* Prescaler is set to no division. */
LDR R0,??Tmr_TickInit_0+0x14 ;; 0xe0004010
STR R1,[R0, #+0]
// 322 T0MR0 = CPU_PERIPHERAL_CLK_FREQ / OS_TICKS_PER_SEC; /* Count up to this value. */
LDR R0,??Tmr_TickInit_0+0x18 ;; 0xe0004018
MOVS R1,#+144
LSLS R1,R1,#+8 ;; #+36864
STR R1,[R0, #+0]
// 323 T0MCR = 3; /* Reset and interrupt on MR0 (match register 0). */
LDR R0,??Tmr_TickInit_0+0x1C ;; 0xe0004014
MOVS R1,#+3
STR R1,[R0, #+0]
// 324 T0CCR = 0; /* Capture is disabled. */
LDR R0,??Tmr_TickInit_0+0x20 ;; 0xe0004028
MOVS R1,#+0
STR R1,[R0, #+0]
// 325 T0EMR = 0; /* No external match output. */
LDR R0,??Tmr_TickInit_0+0x24 ;; 0xe000403c
STR R1,[R0, #+0]
// 326 T0TCR = 1; /* Enable timer 0 */
LDR R0,??Tmr_TickInit_0+0x10 ;; 0xe0004004
MOVS R1,#+1
STR R1,[R0, #+0]
// 327 }
BX LR ;; return
DATA
??Tmr_TickInit_0:
DC32 0xfffff00c
DC32 Tmr_TickISR_Handler
DC32 0xfffff208
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -