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

📄 bsp.txt

📁 ucos2 is a file system for embedded applications which can be used on any media, for which you can p
💻 TXT
📖 第 1 页 / 共 3 页
字号:
000188  eafffffe          B        |L1.392|
;;;1006       VIC_Dummy();
;;;1007   }
;;;1008   
                          ENDP

                  VIC_DummyWDT PROC
;;;998    {
;;;999        VIC_SpuriousInt = VIC_WDT;
00018c  e59f1448          LDR      r1,|L1.1500|
000190  e3a00000          MOV      r0,#0
000194  e5810000          STR      r0,[r1,#0]  ; VIC_SpuriousInt
                  |L1.408|
000198  eafffffe          B        |L1.408|
;;;1000       VIC_Dummy();
;;;1001   }
;;;1002   
                          ENDP

                  BSP_Init PROC
;;;159    void  BSP_Init (void)
;;;160    {
00019c  e92d41f0          PUSH     {r4-r8,lr}
;;;161        MEMMAP = 2;                                                 /* Remap 64 bytes of int. RAM to 0x00                       */
0001a0  e59f5424          LDR      r5,|L1.1484|
0001a4  e3a07002          MOV      r7,#2
0001a8  e5c57040          STRB     r7,[r5,#0x40]
;;;162    
;;;163        OS_CPU_InitExceptVect();
0001ac  ebfffffe          BL       OS_CPU_InitExceptVect
;;;164    
;;;165        BSP_PLL_Init();                                             /* Initialize PLL0 and the VPB Divider Register             */
0001b0  ebfffffe          BL       BSP_PLL_Init
0001b4  e3a04000          MOV      r4,#0
0001b8  e5c54000          STRB     r4,[r5,#0]
0001bc  e3a06003          MOV      r6,#3
0001c0  e5c56004          STRB     r6,[r5,#4]
0001c4  e5c57000          STRB     r7,[r5,#0]
0001c8  e3a0120f          MOV      r1,#0xf0000000
0001cc  e2450975          SUB      r0,r5,#0x1d4000
0001d0  e5801028          STR      r1,[r0,#0x28]
0001d4  e580102c          STR      r1,[r0,#0x2c]
0001d8  e2805901          ADD      r5,r0,#0x4000
0001dc  e5854000          STR      r4,[r5,#0]
0001e0  e5901008          LDR      r1,[r0,#8]
0001e4  e3c11901          BIC      r1,r1,#0x4000
0001e8  e5801008          STR      r1,[r0,#8]
0001ec  e5901018          LDR      r1,[r0,#0x18]
0001f0  e38118ff          ORR      r1,r1,#0xff0000
0001f4  e5801018          STR      r1,[r0,#0x18]
;;;166        BSP_MAM_Init();                                             /* Initialize the Memory Acceleration Module                */
;;;167        BSP_IO_Init();                                              /* Initialize the board's I/Os                              */
;;;168    
;;;169        VIC_Init();                                                 /* Initialize the Vectored Interrupt Controller             */
0001f8  ebfffffe          BL       VIC_Init
0001fc  e3a00000          MOV      r0,#0
000200  ebfffffe          BL       LED_Off
000204  ebfffffe          BL       BSP_CPU_PclkFreq
000208  e59f13d0          LDR      r1,|L1.1504|
00020c  ebfffffe          BL       __aeabi_uidivmod
000210  e2800001          ADD      r0,r0,#1
000214  e20000ff          AND      r0,r0,#0xff
000218  e2871821          ADD      r1,r7,#0x210000
00021c  e1811400          ORR      r1,r1,r0,LSL #8
000220  e2850902          ADD      r0,r5,#0x8000
000224  e5801000          STR      r1,[r0,#0]
000228  e5951004          LDR      r1,[r5,#4]
00022c  e3c11403          BIC      r1,r1,#0x3000000
000230  e3811401          ORR      r1,r1,#0x1000000
000234  e5851004          STR      r1,[r5,#4]
000238  e5901000          LDR      r1,[r0,#0]
00023c  e3811401          ORR      r1,r1,#0x1000000
000240  e5801000          STR      r1,[r0,#0]
000244  e5140ff4          LDR      r0,[r4,#-0xff4]
000248  e3c00010          BIC      r0,r0,#0x10
00024c  e5040ff4          STR      r0,[r4,#-0xff4]
000250  e24f0f86          ADR      r0,Tmr_TickISR_Handler
000254  e5040ef8          STR      r0,[r4,#-0xef8]
000258  e3a00024          MOV      r0,#0x24
00025c  e5040df8          STR      r0,[r4,#-0xdf8]
000260  e3a00010          MOV      r0,#0x10
000264  e5040ff0          STR      r0,[r4,#-0xff0]
000268  ebfffffe          BL       BSP_CPU_PclkFreq
00026c  e3a01064          MOV      r1,#0x64
000270  ebfffffe          BL       __aeabi_uidivmod
000274  e245190a          SUB      r1,r5,#0x28000
000278  e5814004          STR      r4,[r1,#4]
00027c  e5814010          STR      r4,[r1,#0x10]
000280  e5810018          STR      r0,[r1,#0x18]
000284  e5816014          STR      r6,[r1,#0x14]
000288  e5814028          STR      r4,[r1,#0x28]
00028c  e581403c          STR      r4,[r1,#0x3c]
000290  e3a00001          MOV      r0,#1
000294  e5810004          STR      r0,[r1,#4]
;;;170        LED_Init();                                                 /* Initialize the LED controls                              */
;;;171        ADC_Init();                                                 /* Intiialize the ADC control                               */
;;;172    
;;;173        Tmr_TickInit();                                             /* Initialize the uC/OS-II tick interrupt                   */
;;;174    }
000298  e8bd41f0          POP      {r4-r8,lr}
00029c  e12fff1e          BX       lr
;;;175    
                          ENDP

                  BSP_CPU_ClkFreq PROC
;;;194    
;;;195        msel         = (CPU_INT32U)(PLLCFG & 0x1F);
0002a0  e59f0324          LDR      r0,|L1.1484|
0002a4  e5d00084          LDRB     r0,[r0,#0x84]
;;;196        cpu_clk_freq = CPU_OSC_FREQ * (msel + 1);
0002a8  e59f1320          LDR      r1,|L1.1488|
0002ac  e200001f          AND      r0,r0,#0x1f           ;195
0002b0  e2800001          ADD      r0,r0,#1
0002b4  e0000091          MUL      r0,r1,r0
;;;197        return (cpu_clk_freq);
;;;198    }
0002b8  e12fff1e          BX       lr
;;;199    
                          ENDP

                  OS_CPU_ExceptHndlr PROC
;;;269    void  OS_CPU_ExceptHndlr (CPU_INT32U  except_id)
;;;270    {
0002bc  e92d4070          PUSH     {r4-r6,lr}
;;;271        CPU_FNCT_VOID  pfnct;
;;;272    
;;;273    	int t=1;
;;;274        if (except_id == OS_CPU_ARM_EXCEPT_IRQ) {
0002c0  e3500006          CMP      r0,#6
0002c4  e3a01001          MOV      r1,#1                 ;273
0002c8  e3a04000          MOV      r4,#0                 ;273
0002cc  1a00000a          BNE      |L1.764|
;;;275    
;;;276            pfnct = (CPU_FNCT_VOID)VICVectAddr;                     /* Read the interrupt vector from the VIC                   */
0002d0  e5140fd0          LDR      r0,[r4,#-0xfd0]
0002d4  e3a05001          MOV      r5,#1
0002d8  ea000003          B        |L1.748|
                  |L1.732|
;;;277            while (pfnct != (CPU_FNCT_VOID)0) {                     /* Make sure we don't have a NULL pointer                   */
;;;278              (*pfnct)();                                           /* Execute the ISR for the interrupting device              */
0002dc  e1a0e00f          MOV      lr,pc
0002e0  e12fff10          BX       r0
;;;279                VICVectAddr = 1;                                    /* Acknowlege the VIC interrupt                             */
0002e4  e5045fd0          STR      r5,[r4,#-0xfd0]
;;;280                pfnct = (CPU_FNCT_VOID)VICVectAddr;                 /* Read the interrupt vector from the VIC                   */
0002e8  e5140fd0          LDR      r0,[r4,#-0xfd0]
                  |L1.748|
0002ec  e3500000          CMP      r0,#0                 ;277
0002f0  1afffff9          BNE      |L1.732|
                  |L1.756|
;;;281            }
;;;282    
;;;283        } else {
;;;284    
;;;285                                                                    /* Infinite loop on other exceptions.                       */
;;;286                                                                    /* Should be replaced by other behavior (reboot, etc.)      */
;;;287            while (DEF_TRUE) {
;;;288    			if(t==0){
;;;289    				VICVectAddr = 0;
;;;290    				break;
;;;291    			}
;;;292    
;;;293                ;
;;;294            }
;;;295        }
;;;296    }
0002f4  e8bd4070          POP      {r4-r6,lr}
0002f8  e12fff1e          BX       lr
                  |L1.764|
0002fc  e3510000          CMP      r1,#0                 ;288
000300  1afffffd          BNE      |L1.764|
000304  e5044fd0          STR      r4,[r4,#-0xfd0]       ;289
000308  eafffff9          B        |L1.756|
;;;297    
                          ENDP

                  BSP_IntDisAll PROC
;;;312    {
;;;313        VICIntEnClear = 0xFFFFFFFFL;                                /* Disable ALL interrupts                                   */
00030c  e3e00000          MVN      r0,#0
000310  e3a01000          MOV      r1,#0
000314  e5010fec          STR      r0,[r1,#-0xfec]
;;;314    }
000318  e12fff1e          BX       lr
;;;315    
                          ENDP

                  LED_On PROC
;;;362    void  LED_On (CPU_INT08U led)
;;;363    {
00031c  e59f12b4          LDR      r1,|L1.1496|
;;;364        switch (led) {
000320  e3500009          CMP      r0,#9
000324  308ff100          ADDCC    pc,pc,r0,LSL #2
;;;365            case 0:
;;;366                 IO1SET = GPIO1_LEDS;
;;;367                 break;
;;;368    
;;;369            case 1:
;;;370                 IO1SET = GPIO1_LED1;
;;;371    			 IO2SET=0xf0000000;
;;;372                 break;
;;;373    
;;;374            case 2:
;;;375                 IO1SET = GPIO1_LED2;
;;;376                 break;
;;;377    
;;;378            case 3:
;;;379                 IO1SET = GPIO1_LED3;
;;;380                 break;
;;;381    
;;;382            case 4:
;;;383                 IO1SET = GPIO1_LED4;
;;;384                 break;
;;;385    
;;;386            case 5:
;;;387                 IO1SET = GPIO1_LED5;
;;;388                 break;
;;;389    
;;;390            case 6:
;;;391                 IO1SET = GPIO1_LED6;
;;;392                 break;
;;;393    
;;;394            case 7:
;;;395                 IO1SET = GPIO1_LED7;
;;;396                 break;
;;;397    
;;;398            case 8:
;;;399                 IO1SET = GPIO1_LED8;
;;;400                 break;
;;;401    
;;;402            default:
;;;403                 break;
;;;404        }
;;;405    }
000328  e12fff1e          BX       lr
00032c  ea000007          B        |L1.848|
000330  ea000008          B        |L1.856|
000334  ea00000c          B        |L1.876|
000338  ea00000d          B        |L1.884|
00033c  ea00000e          B        |L1.892|
000340  ea00000f          B        |L1.900|
000344  ea000010          B        |L1.908|
000348  ea000011          B        |L1.916|
00034c  ea000012          B        |L1.924|
                  |L1.848|
000350  e3a008ff          MOV      r0,#0xff0000          ;366
000354  ea000011          B        |L1.928|
                  |L1.856|
000358  e3a00801          MOV      r0,#0x10000           ;370
00035c  e5810014          STR      r0,[r1,#0x14]         ;370
000360  e3a0020f          MOV      r0,#0xf0000000        ;371
000364  e5810024          STR      r0,[r1,#0x24]         ;371
000368  e12fff1e          BX       lr
                  |L1.876|
00036c  e3a00802          MOV      r0,#0x20000           ;375
000370  ea00000a          B        |L1.928|
                  |L1.884|
000374  e3a00701          MOV      r0,#0x40000           ;379
000378  ea000008          B        |L1.928|
                  |L1.892|
00037c  e3a00702          MOV      r0,#0x80000           ;383
000380  ea000006          B        |L1.928|
                  |L1.900|
000384  e3a00601          MOV      r0,#0x100000          ;387
000388  ea000004          B        |L1.928|
                  |L1.908|
00038c  e3a00602          MOV      r0,#0x200000          ;391
000390  ea000002          B        |L1.928|
                  |L1.916|
000394  e3a00501          MOV      r0,#0x400000          ;395
000398  ea000000          B        |L1.928|
                  |L1.924|
00039c  e3a00502          MOV      r0,#0x800000          ;399
                  |L1.928|
0003a0  e5810014          STR      r0,[r1,#0x14]         ;399
0003a4  e12fff1e          BX       lr
;;;406    
                          ENDP

                  LED_Toggle PROC
;;;493    void  LED_Toggle (CPU_INT08U led)
;;;494    {
0003a8  e59f1228          LDR      r1,|L1.1496|
;;;495        CPU_INT32U  are_off;
;;;496        CPU_INT32U  are_on;
;;;497    
;;;498    
;;;499        switch (led) {
0003ac  e3500009          CMP      r0,#9
0003b0  308ff100          ADDCC    pc,pc,r0,LSL #2
;;;500            case 0:
;;;501                 are_off = ( (IO1PIN ^ GPIO1_LEDS) & GPIO1_LEDS);
;;;502                 are_on  = (~(IO1PIN ^ GPIO1_LEDS) & GPIO1_LEDS);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -