📄 bsp.txt
字号:
000234 e59001ac LDR r0,[r0,#0x1ac]
000238 e2441010 SUB r1,r4,#0x10
00023c e1a01081 LSL r1,r1,#1
000240 e1a00130 LSR r0,r0,r1
000244 e2005003 AND r5,r0,#3
000248 e3550000 CMP r5,#0
00024c 1a000001 BNE |L1.600|
000250 e1a00126 LSR r0,r6,#2
000254 eaffffdd B |L1.464|
|L1.600|
000258 e3550001 CMP r5,#1
00025c 1a000001 BNE |L1.616|
000260 e1a00006 MOV r0,r6
000264 eaffffd9 B |L1.464|
|L1.616|
000268 e3550002 CMP r5,#2
00026c 1a000001 BNE |L1.632|
000270 e1a000a6 LSR r0,r6,#1
000274 eaffffd5 B |L1.464|
|L1.632|
000278 e1a001a6 LSR r0,r6,#3
00027c eaffffd3 B |L1.464|
|L1.640|
000280 e1a00000 MOV r0,r0
000284 e3a00000 MOV r0,#0
000288 eaffffd0 B |L1.464|
ENDP
Tmr_TickISR_Handler PROC
;;;941 void Tmr_TickISR_Handler (void)
;;;942 {
00028c e92d4010 PUSH {r4,lr}
;;;943 T0IR = 0xFF; /* Clear timer #0 interrupt */
000290 e3a000ff MOV r0,#0xff
000294 e59f1bdc LDR r1,|L1.3704|
000298 e5810000 STR r0,[r1,#0]
;;;944
;;;945 OSTimeTick(); /* Call uC/OS-II's OSTimeTick() */
00029c ebfffffe BL OSTimeTick
;;;946 }
0002a0 e8bd4010 POP {r4,lr}
0002a4 e12fff1e BX lr
ENDP
Tmr_TickInit PROC
;;;902 static void Tmr_TickInit (void)
;;;903 {
0002a8 e92d4070 PUSH {r4-r6,lr}
;;;904 CPU_INT32U pclk_freq;
;;;905 CPU_INT32U rld_cnts;
;;;906
;;;907 /* VIC timer #0 Initialization */
;;;908 VICIntSelect &= ~(1 << VIC_TIMER0); /* Configure the timer interrupt as an IRQ source */
0002ac e3a00000 MOV r0,#0
0002b0 e5100ff4 LDR r0,[r0,#-0xff4]
0002b4 e3c00010 BIC r0,r0,#0x10
0002b8 e3a01000 MOV r1,#0
0002bc e5010ff4 STR r0,[r1,#-0xff4]
;;;909 VICVectAddr4 = (CPU_INT32U)Tmr_TickISR_Handler; /* Set the vector address */
0002c0 e24f003c ADR r0,Tmr_TickISR_Handler
0002c4 e5010ef0 STR r0,[r1,#-0xef0]
;;;910 VICIntEnable = (1 << VIC_TIMER0); /* Enable the timer interrupt source */
0002c8 e3a00010 MOV r0,#0x10
0002cc e5010ff0 STR r0,[r1,#-0xff0]
;;;911
;;;912 pclk_freq = BSP_CPU_PclkFreq(PCLK_TIMER0); /* Get the peripheral clock frequency */
0002d0 e3a00001 MOV r0,#1
0002d4 ebfffffe BL BSP_CPU_PclkFreq
0002d8 e1a05000 MOV r5,r0
;;;913
;;;914 rld_cnts = pclk_freq / OS_TICKS_PER_SEC; /* Calculate the # of counts necessary for the OS ticker */
0002dc e3a01ffa MOV r1,#0x3e8
0002e0 e1a00005 MOV r0,r5
0002e4 ebfffffe BL __aeabi_uidivmod
0002e8 e1a04000 MOV r4,r0
;;;915
;;;916 T0TCR = (1 << 1); /* Disable and reset counter 0 and the prescale counter 0 */
0002ec e3a00002 MOV r0,#2
0002f0 e59f1b80 LDR r1,|L1.3704|
0002f4 e5810004 STR r0,[r1,#4]
;;;917 T0TCR = 0; /* Clear the reset bit */
0002f8 e3a00000 MOV r0,#0
0002fc e5810004 STR r0,[r1,#4]
;;;918 T0PC = 0; /* Prescaler is set to no division */
000300 e5810010 STR r0,[r1,#0x10]
;;;919
;;;920 T0MR0 = rld_cnts;
000304 e1c10000 BIC r0,r1,r0
000308 e5804018 STR r4,[r0,#0x18]
;;;921 T0MCR = 3; /* Interrupt on MR0 (reset TC), stop TC */
00030c e3a00003 MOV r0,#3
000310 e5810014 STR r0,[r1,#0x14]
;;;922
;;;923 T0CCR = 0; /* Capture is disabled. */
000314 e3a00000 MOV r0,#0
000318 e5810028 STR r0,[r1,#0x28]
;;;924 T0EMR = 0; /* No external match output. */
00031c e581003c STR r0,[r1,#0x3c]
;;;925 T0TCR = 1; /* Enable timer 0 */
000320 e3a00001 MOV r0,#1
000324 e5810004 STR r0,[r1,#4]
;;;926 }
000328 e8bd4070 POP {r4-r6,lr}
00032c e12fff1e BX lr
ENDP
VIC_Dummy PROC
;;;1545 {
;;;1546 while (1) {
000330 ea000000 B |L1.824|
|L1.820|
;;;1547 (void)VIC_SpuriousInt;
000334 e1a00000 MOV r0,r0
|L1.824|
000338 eafffffd B |L1.820|
;;;1548 }
;;;1549 }
ENDP
VIC_DummyI2S PROC
;;;1737 static void VIC_DummyI2S (void)
;;;1738 {
00033c e52de004 PUSH {lr}
;;;1739 VIC_SpuriousInt = VIC_I2S;
000340 e3a0001f MOV r0,#0x1f
000344 e59f1b30 LDR r1,|L1.3708|
000348 e5810000 STR r0,[r1,#0] ; VIC_SpuriousInt
;;;1740 VIC_Dummy();
00034c ebfffffe BL VIC_Dummy
;;;1741 }
000350 e49de004 POP {lr}
000354 e12fff1e BX lr
ENDP
VIC_DummyI2C2 PROC
;;;1731 static void VIC_DummyI2C2 (void)
;;;1732 {
000358 e52de004 PUSH {lr}
;;;1733 VIC_SpuriousInt = VIC_I2C2;
00035c e3a0001e MOV r0,#0x1e
000360 e59f1b14 LDR r1,|L1.3708|
000364 e5810000 STR r0,[r1,#0] ; VIC_SpuriousInt
;;;1734 VIC_Dummy();
000368 ebfffffe BL VIC_Dummy
;;;1735 }
00036c e49de004 POP {lr}
000370 e12fff1e BX lr
ENDP
VIC_DummyUART3 PROC
;;;1725 static void VIC_DummyUART3 (void)
;;;1726 {
000374 e52de004 PUSH {lr}
;;;1727 VIC_SpuriousInt = VIC_UART3;
000378 e3a0001d MOV r0,#0x1d
00037c e59f1af8 LDR r1,|L1.3708|
000380 e5810000 STR r0,[r1,#0] ; VIC_SpuriousInt
;;;1728 VIC_Dummy();
000384 ebfffffe BL VIC_Dummy
;;;1729 }
000388 e49de004 POP {lr}
00038c e12fff1e BX lr
ENDP
VIC_DummyUART2 PROC
;;;1719 static void VIC_DummyUART2 (void)
;;;1720 {
000390 e52de004 PUSH {lr}
;;;1721 VIC_SpuriousInt = VIC_UART2;
000394 e3a0001c MOV r0,#0x1c
000398 e59f1adc LDR r1,|L1.3708|
00039c e5810000 STR r0,[r1,#0] ; VIC_SpuriousInt
;;;1722 VIC_Dummy();
0003a0 ebfffffe BL VIC_Dummy
;;;1723 }
0003a4 e49de004 POP {lr}
0003a8 e12fff1e BX lr
ENDP
VIC_DummyTIMER3 PROC
;;;1713 static void VIC_DummyTIMER3 (void)
;;;1714 {
0003ac e52de004 PUSH {lr}
;;;1715 VIC_SpuriousInt = VIC_TIMER3;
0003b0 e3a0001b MOV r0,#0x1b
0003b4 e59f1ac0 LDR r1,|L1.3708|
0003b8 e5810000 STR r0,[r1,#0] ; VIC_SpuriousInt
;;;1716 VIC_Dummy();
0003bc ebfffffe BL VIC_Dummy
;;;1717 }
0003c0 e49de004 POP {lr}
0003c4 e12fff1e BX lr
ENDP
VIC_DummyTIMER2 PROC
;;;1707 static void VIC_DummyTIMER2 (void)
;;;1708 {
0003c8 e52de004 PUSH {lr}
;;;1709 VIC_SpuriousInt = VIC_TIMER2;
0003cc e3a0001a MOV r0,#0x1a
0003d0 e59f1aa4 LDR r1,|L1.3708|
0003d4 e5810000 STR r0,[r1,#0] ; VIC_SpuriousInt
;;;1710 VIC_Dummy();
0003d8 ebfffffe BL VIC_Dummy
;;;1711 }
0003dc e49de004 POP {lr}
0003e0 e12fff1e BX lr
ENDP
VIC_DummyGP_DMA PROC
;;;1701 static void VIC_DummyGP_DMA (void)
;;;1702 {
0003e4 e52de004 PUSH {lr}
;;;1703 VIC_SpuriousInt = VIC_GP_DMA;
0003e8 e3a00019 MOV r0,#0x19
0003ec e59f1a88 LDR r1,|L1.3708|
0003f0 e5810000 STR r0,[r1,#0] ; VIC_SpuriousInt
;;;1704 VIC_Dummy();
0003f4 ebfffffe BL VIC_Dummy
;;;1705 }
0003f8 e49de004 POP {lr}
0003fc e12fff1e BX lr
ENDP
VIC_DummyMMC PROC
;;;1695 static void VIC_DummyMMC (void)
;;;1696 {
000400 e52de004 PUSH {lr}
;;;1697 VIC_SpuriousInt = VIC_MMC;
000404 e3a00018 MOV r0,#0x18
000408 e59f1a6c LDR r1,|L1.3708|
00040c e5810000 STR r0,[r1,#0] ; VIC_SpuriousInt
;;;1698 VIC_Dummy();
000410 ebfffffe BL VIC_Dummy
;;;1699 }
000414 e49de004 POP {lr}
000418 e12fff1e BX lr
ENDP
VIC_DummyCAN01 PROC
;;;1689 static void VIC_DummyCAN01 (void)
;;;1690 {
00041c e52de004 PUSH {lr}
;;;1691 VIC_SpuriousInt = VIC_CAN12;
000420 e3a00017 MOV r0,#0x17
000424 e59f1a50 LDR r1,|L1.3708|
000428 e5810000 STR r0,[r1,#0] ; VIC_SpuriousInt
;;;1692 VIC_Dummy();
00042c ebfffffe BL VIC_Dummy
;;;1693 }
000430 e49de004 POP {lr}
000434 e12fff1e BX lr
ENDP
VIC_DummyUSB PROC
;;;1683 static void VIC_DummyUSB (void)
;;;1684 {
000438 e52de004 PUSH {lr}
;;;1685 VIC_SpuriousInt = VIC_USB;
00043c e3a00016 MOV r0,#0x16
000440 e59f1a34 LDR r1,|L1.3708|
000444 e5810000 STR r0,[r1,#0] ; VIC_SpuriousInt
;;;1686 VIC_Dummy();
000448 ebfffffe BL VIC_Dummy
;;;1687 }
00044c e49de004 POP {lr}
000450 e12fff1e BX lr
ENDP
VIC_DummyETHERNET PROC
;;;1677 static void VIC_DummyETHERNET (void)
;;;1678 {
000454 e52de004 PUSH {lr}
;;;1679 VIC_SpuriousInt = VIC_ETHERNET;
000458 e3a00015 MOV r0,#0x15
00045c e59f1a18 LDR r1,|L1.3708|
000460 e5810000 STR r0,[r1,#0] ; VIC_SpuriousInt
;;;1680 VIC_Dummy();
000464 ebfffffe BL VIC_Dummy
;;;1681 }
000468 e49de004 POP {lr}
00046c e12fff1e BX lr
ENDP
VIC_DummyBOD PROC
;;;1671 static void VIC_DummyBOD (void)
;;;1672 {
000470 e52de004 PUSH {lr}
;;;1673 VIC_SpuriousInt = VIC_BOD;
000474 e3a00014 MOV r0,#0x14
000478 e59f19fc LDR r1,|L1.3708|
00047c e5810000 STR r0,[r1,#0] ; VIC_SpuriousInt
;;;1674 VIC_Dummy();
000480 ebfffffe BL VIC_Dummy
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -