⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bsp.txt

📁 lpc2478开发板基于IAR编译器移植ucos实验例程
💻 TXT
📖 第 1 页 / 共 5 页
字号:
;;;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 + -