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

📄 bsp.txt

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