📄 bsp.txt
字号:
;;;1553 VIC_SpuriousInt = VIC_WDT;
0006a4 e3a00000 MOV r0,#0
0006a8 e59f17cc LDR r1,|L1.3708|
0006ac e5810000 STR r0,[r1,#0] ; VIC_SpuriousInt
;;;1554 VIC_Dummy();
0006b0 ebfffffe BL VIC_Dummy
;;;1555 }
0006b4 e49de004 POP {lr}
0006b8 e12fff1e BX lr
ENDP
VIC_Init PROC
;;;1497 {
;;;1498 VICIntEnClear = 0xFFFFFFFF; /* Disable ALL interrupts */
0006bc e3e00000 MVN r0,#0
0006c0 e3a01000 MOV r1,#0
0006c4 e5010fec STR r0,[r1,#-0xfec]
;;;1499 VICAddress = 0; /* Acknowlege any pending VIC interrupt */
0006c8 e3a00000 MOV r0,#0
0006cc e5000100 STR r0,[r0,#-0x100]
;;;1500 VICProtection = 0; /* Allow VIC register access in User of Priviledged modes */
0006d0 e3a00000 MOV r0,#0
0006d4 e5000fe0 STR r0,[r0,#-0xfe0]
;;;1501
;;;1502 VICVectAddr0 = (CPU_INT32U)VIC_DummyWDT; /* Set the vector address */
0006d8 e24f0040 ADR r0,VIC_DummyWDT
0006dc e5010f00 STR r0,[r1,#-0xf00]
;;;1503 VICVectAddr1 = (CPU_INT32U)VIC_DummySW;
0006e0 e24f0064 ADR r0,VIC_DummySW
0006e4 e5010efc STR r0,[r1,#-0xefc]
;;;1504 VICVectAddr2 = (CPU_INT32U)VIC_DummyDEBUGRX;
0006e8 e24f0088 ADR r0,VIC_DummyDEBUGRX
0006ec e5010ef8 STR r0,[r1,#-0xef8]
;;;1505 VICVectAddr3 = (CPU_INT32U)VIC_DummyDEBUGTX;
0006f0 e24f00ac ADR r0,VIC_DummyDEBUGTX
0006f4 e5010ef4 STR r0,[r1,#-0xef4]
;;;1506 VICVectAddr4 = (CPU_INT32U)VIC_DummyTIMER0;
0006f8 e24f00d0 ADR r0,VIC_DummyTIMER0
0006fc e5010ef0 STR r0,[r1,#-0xef0]
;;;1507 VICVectAddr5 = (CPU_INT32U)VIC_DummyTIMER1;
000700 e24f00f4 ADR r0,VIC_DummyTIMER1
000704 e5010eec STR r0,[r1,#-0xeec]
;;;1508 VICVectAddr6 = (CPU_INT32U)VIC_DummyUART0;
000708 e24f0f46 ADR r0,VIC_DummyUART0
00070c e5010ee8 STR r0,[r1,#-0xee8]
;;;1509 VICVectAddr7 = (CPU_INT32U)VIC_DummyUART1;
000710 e24f0f4f ADR r0,VIC_DummyUART1
000714 e5010ee4 STR r0,[r1,#-0xee4]
;;;1510 VICVectAddr8 = (CPU_INT32U)VIC_DummyPWM01;
000718 e24f0e16 ADR r0,VIC_DummyPWM01
00071c e5010ee0 STR r0,[r1,#-0xee0]
;;;1511 VICVectAddr9 = (CPU_INT32U)VIC_DummyI2C0;
000720 e24f0f61 ADR r0,VIC_DummyI2C0
000724 e5010edc STR r0,[r1,#-0xedc]
;;;1512 VICVectAddr10 = (CPU_INT32U)VIC_DummySPI;
000728 e24f0f6a ADR r0,VIC_DummySPI
00072c e5010ed8 STR r0,[r1,#-0xed8]
;;;1513 VICVectAddr11 = (CPU_INT32U)VIC_DummySSP1;
000730 e24f0f73 ADR r0,VIC_DummySSP1
000734 e5010ed4 STR r0,[r1,#-0xed4]
;;;1514 VICVectAddr12 = (CPU_INT32U)VIC_DummyPLL;
000738 e24f0e1f ADR r0,VIC_DummyPLL
00073c e5010ed0 STR r0,[r1,#-0xed0]
;;;1515 VICVectAddr13 = (CPU_INT32U)VIC_DummyRTC;
000740 e24f0f85 ADR r0,VIC_DummyRTC
000744 e5010ecc STR r0,[r1,#-0xecc]
;;;1516 VICVectAddr14 = (CPU_INT32U)VIC_DummyEINT0;
000748 e24f0f8e ADR r0,VIC_DummyEINT0
00074c e5010ec8 STR r0,[r1,#-0xec8]
;;;1517 VICVectAddr15 = (CPU_INT32U)VIC_DummyEINT1;
000750 e24f0f97 ADR r0,VIC_DummyEINT1
000754 e5010ec4 STR r0,[r1,#-0xec4]
;;;1518 VICVectAddr16 = (CPU_INT32U)VIC_DummyEINT2;
000758 e24f0d0a ADR r0,VIC_DummyEINT2
00075c e5010ec0 STR r0,[r1,#-0xec0]
;;;1519 VICVectAddr17 = (CPU_INT32U)VIC_DummyEINT3;
000760 e24f0fa9 ADR r0,VIC_DummyEINT3
000764 e5010ebc STR r0,[r1,#-0xebc]
;;;1520 VICVectAddr18 = (CPU_INT32U)VIC_DummyAD0;
000768 e24f0fb2 ADR r0,VIC_DummyAD0
00076c e5010eb8 STR r0,[r1,#-0xeb8]
;;;1521 VICVectAddr19 = (CPU_INT32U)VIC_DummyI2C1;
000770 e24f0fbb ADR r0,VIC_DummyI2C1
000774 e5010eb4 STR r0,[r1,#-0xeb4]
;;;1522 VICVectAddr20 = (CPU_INT32U)VIC_DummyBOD;
000778 e24f0e31 ADR r0,VIC_DummyBOD
00077c e5010eb0 STR r0,[r1,#-0xeb0]
;;;1523 VICVectAddr21 = (CPU_INT32U)VIC_DummyETHERNET;
000780 e24f0fcd ADR r0,VIC_DummyETHERNET
000784 e5010eac STR r0,[r1,#-0xeac]
;;;1524 VICVectAddr22 = (CPU_INT32U)VIC_DummyUSB;
000788 e24f0fd6 ADR r0,VIC_DummyUSB
00078c e5010ea8 STR r0,[r1,#-0xea8]
;;;1525 VICVectAddr23 = (CPU_INT32U)VIC_DummyCAN01;
000790 e24f0fdf ADR r0,VIC_DummyCAN01
000794 e5010ea4 STR r0,[r1,#-0xea4]
;;;1526 VICVectAddr24 = (CPU_INT32U)VIC_DummyMMC;
000798 e24f0e3a ADR r0,VIC_DummyMMC
00079c e5010ea0 STR r0,[r1,#-0xea0]
;;;1527 VICVectAddr25 = (CPU_INT32U)VIC_DummyGP_DMA;
0007a0 e24f0ff1 ADR r0,VIC_DummyGP_DMA
0007a4 e5010e9c STR r0,[r1,#-0xe9c]
;;;1528 VICVectAddr26 = (CPU_INT32U)VIC_DummyTIMER2;
0007a8 e24f0ffa ADR r0,VIC_DummyTIMER2
0007ac e5010e98 STR r0,[r1,#-0xe98]
;;;1529 VICVectAddr27 = (CPU_INT32U)VIC_DummyTIMER3;
0007b0 e59f06c8 LDR r0,|L1.3712|
0007b4 e5010e94 STR r0,[r1,#-0xe94]
;;;1530 VICVectAddr28 = (CPU_INT32U)VIC_DummyUART2;
0007b8 e24f0e43 ADR r0,VIC_DummyUART2
0007bc e5010e90 STR r0,[r1,#-0xe90]
;;;1531 VICVectAddr29 = (CPU_INT32U)VIC_DummyUART3;
0007c0 e59f06bc LDR r0,|L1.3716|
0007c4 e5010e8c STR r0,[r1,#-0xe8c]
;;;1532 VICVectAddr30 = (CPU_INT32U)VIC_DummyI2C2;
0007c8 e59f06b8 LDR r0,|L1.3720|
0007cc e5010e88 STR r0,[r1,#-0xe88]
;;;1533 VICVectAddr31 = (CPU_INT32U)VIC_DummyI2S;
0007d0 e59f06b4 LDR r0,|L1.3724|
0007d4 e5010e84 STR r0,[r1,#-0xe84]
;;;1534 }
0007d8 e12fff1e BX lr
ENDP
ADC_Init PROC
;;;706 static void ADC_Init (void)
;;;707 {
0007dc e92d4070 PUSH {r4-r6,lr}
;;;708 CPU_INT08U div;
;;;709 CPU_INT32U pinsel;
;;;710
;;;711
;;;712 PCONP |= DEF_BIT_12;
0007e0 e59f0688 LDR r0,|L1.3696|
0007e4 e59000c4 LDR r0,[r0,#0xc4]
0007e8 e3800a01 ORR r0,r0,#0x1000
0007ec e59f167c LDR r1,|L1.3696|
0007f0 e58100c4 STR r0,[r1,#0xc4]
;;;713
;;;714 div = (BSP_CPU_PclkFreq(PCLK_ADC) / 4500000) + 1;
0007f4 e3a0000c MOV r0,#0xc
0007f8 ebfffffe BL BSP_CPU_PclkFreq
0007fc e1a06000 MOV r6,r0
000800 e59f1688 LDR r1,|L1.3728|
000804 ebfffffe BL __aeabi_uidivmod
000808 e2800001 ADD r0,r0,#1
00080c e20040ff AND r4,r0,#0xff
;;;715 /* Configure ADC ... */
;;;716 AD0CR = (0x03 << 0) /* ... Sample/convert pin AD0.0 and AD0.1 ... */
000810 e3a00003 MOV r0,#3
000814 e1800404 ORR r0,r0,r4,LSL #8
000818 e3800821 ORR r0,r0,#0x210000
00081c e59f1670 LDR r1,|L1.3732|
000820 e5810000 STR r0,[r1,#0]
;;;717 | (div << 8) /* ... Set divider so sample freq. < 4.5 MHz ... */
;;;718 | DEF_BIT_16 /* ... Use burst mode for continuous conversion ... */
;;;719 | (0x00 << 17) /* ... Use 11 clocks per conversion for 10-bit accuracy ...*/
;;;720 | DEF_BIT_21; /* ... Power up the ADC. */
;;;721
;;;722 /* Select AD0.0, AD0.1 function for P0.23, P0.24 */
;;;723 pinsel = PINSEL1;
000824 e2410902 SUB r0,r1,#0x8000
000828 e5905004 LDR r5,[r0,#4]
;;;724 pinsel &= 0xFFFC3FFF;
00082c e3c5590f BIC r5,r5,#0x3c000
;;;725 pinsel |= 0x00014000;
000830 e3855905 ORR r5,r5,#0x14000
;;;726 PINSEL1 = pinsel;
000834 e5805004 STR r5,[r0,#4]
;;;727 }
000838 e8bd4070 POP {r4-r6,lr}
00083c e12fff1e BX lr
ENDP
GPIO_Init PROC
;;;1422
;;;1423 IO0DIR = 0;
000840 e3a01000 MOV r1,#0
000844 e59f264c LDR r2,|L1.3736|
000848 e5821008 STR r1,[r2,#8]
;;;1424 IO1DIR = 0;
00084c e5821018 STR r1,[r2,#0x18]
;;;1425 FIO0DIR = 0;
000850 e59f2644 LDR r2,|L1.3740|
000854 e5821000 STR r1,[r2,#0]
;;;1426 FIO1DIR = 0;
000858 e5821020 STR r1,[r2,#0x20]
;;;1427 FIO2DIR = 0;
00085c e5821040 STR r1,[r2,#0x40]
;;;1428 FIO3DIR = 0;
000860 e5821060 STR r1,[r2,#0x60]
;;;1429 FIO4DIR = 0;
000864 e5821080 STR r1,[r2,#0x80]
;;;1430
;;;1431 FIO0MASK = 0;
000868 e5821010 STR r1,[r2,#0x10]
;;;1432 FIO1MASK = 0;
00086c e5821030 STR r1,[r2,#0x30]
;;;1433 FIO2MASK = 0;
000870 e5821050 STR r1,[r2,#0x50]
;;;1434 FIO3MASK = 0;
000874 e5821070 STR r1,[r2,#0x70]
;;;1435 FIO4MASK = 0;
000878 e5821090 STR r1,[r2,#0x90]
;;;1436
;;;1437 PINSEL0 = 0;
00087c e59f261c LDR r2,|L1.3744|
000880 e5821000 STR r1,[r2,#0]
;;;1438 PINSEL1 = 0;
000884 e5821004 STR r1,[r2,#4]
;;;1439 PINSEL2 = 0;
000888 e5821008 STR r1,[r2,#8]
;;;1440 PINSEL3 = 0;
00088c e582100c STR r1,[r2,#0xc]
;;;1441 PINSEL4 = 0;
000890 e5821010 STR r1,[r2,#0x10]
;;;1442 PINSEL5 = 0;
000894 e5821014 STR r1,[r2,#0x14]
;;;1443 PINSEL6 = 0;
000898 e5821018 STR r1,[r2,#0x18]
;;;1444 PINSEL7 = 0;
00089c e582101c STR r1,[r2,#0x1c]
;;;1445 PINSEL8 = 0;
0008a0 e5821020 STR r1,[r2,#0x20]
;;;1446 PINSEL9 = 0;
0008a4 e5821024 STR r1,[r2,#0x24]
;;;1447 PINSEL10 = 0;
0008a8 e5821028 STR r1,[r2,#0x28]
;;;1448
;;;1449 #if (OS_VIEW_MODULE > 0) && (OS_VIEW_COMM_SEL == OS_VIEW_UART_0)
;;;1450 /* Configure P3.16 & P3.17 for UART1 */
;;;1451 pinsel = PINSEL7;
;;;1452 pinsel &= 0xFFFFFFF0;
;;;1453 pinsel |= 0x0000000F;
;;;1454 PINSEL7 = pinsel;
;;;1455 #endif
;;;1456
;;;1457 #if (OS_VIEW_MODULE > 0) && (OS_VIEW_COMM_SEL == OS_VIEW_UART_1)
;;;1458 /* Configure P3.16 & P3.17 for UART1 */
;;;1459 pinsel = PINSEL7;
0008ac e1c21001 BIC r1,r2,r1
0008b0 e591001c LDR r0,[r1,#0x1c]
;;;1460 pinsel &= 0xFFFFFFF0;
0008b4 e3c0000f BIC r0,r0,#0xf
;;;1461 pinsel |= 0x0000000F;
0008b8 e380000f ORR r0,r0,#0xf
;;;1462 PINSEL7 = pinsel;
0008bc e581001c STR r0,[r1,#0x1c]
;;;1463 #endif
;;;1464
;;;1465 /* Configure P0.28 & P0.27 for I2C0 */
;;;1466 pinsel = PINSEL1;
0008c0 e5910004 LDR r0,[r1,#4]
;;;1467 pinsel &= 0xFC3FFFFF;
0008c4 e3c0050f BIC r0,r0,#0x3c00000
;;;1468 pinsel |= 0x01400000;
0008c8 e3800505 ORR r0,r0,#0x1400000
;;;1469 PINSEL1 = pinsel;
0008cc e5810004 STR r0,[r1,#4]
;;;1470
;;;1471 /* Configure P2.10 for GPIO */
;;;1472 pinsel = PINSEL4;
0008d0 e5910010 LDR r0,[r1,#0x10]
;;;1473 pinsel &= 0xFFCFFFFF;
0008d4 e3c00603 BIC r0,r0,#0x300000
;;;1474 PINSEL4 = pinsel;
0008d8 e5810010 STR r0,[r1,#0x10]
;;;1475 FIO2DIR &= ~DEF_BIT_10;
0008dc e59f15b8 LDR r1,|L1.3740|
0008e0 e5911040 LDR r1,[r1,#0x40]
0008e4 e3c11b01 BIC r1,r1,#0x400
0008e8 e59f25ac LDR r2,|L1.3740|
0008ec e5821040 STR r1,[r2,#0x40]
;;;1476
;;;1477
;;;1478 FIO3DIR = GPIO3_LCD_LIGHT;
0008f0 e3a01201 MOV r1,#0x10000000
0008f4 e5821060 STR r1,[r2,#0x60]
;;;1479 FIO3CLR = GPIO3_LCD_LIGHT;
0008f8 e582107c STR r1,[r2,#0x7c]
;;;1480 }
0008fc e12fff1e BX lr
ENDP
MAM_Init PROC
;;;1380 static void MAM_Init (void)
;;;1381 {
000900 e92d4010 PUSH {r4,lr}
;;;1382 CPU_INT32U clk_freq;
;;;1383
;;;1384
;;;1385 clk_freq = BSP_CPU_ClkFreq(); /* Get the current core clock frequency */
000904 ebfffffe BL BSP_CPU_ClkFreq
000908 e1a04000 MOV r4,r0
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -