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

📄 target.txt

📁 uc/os在lpc2100系列的KEIL模板 uc/os在lpc2100系列的real view模板 uc/os在lpc210X系列的real view模板
💻 TXT
📖 第 1 页 / 共 2 页
字号:
; generated by ARM/Thumb C/C++ Compiler with , RVCT3.1 [Build 934] for uVision
; commandline ArmCC [--debug -c --asm --interleave -o.\rvmdk\target.o --depend=.\rvmdk\target.d --device=DARMP --apcs=interwork -O1 -I. -I..\BSP -I..\..\..\..\uCOS-II\Ports\ARM\Generic\RealView -I..\..\..\..\uCOS-II\Source -I..\..\..\..\uC-CPU -I..\..\..\..\uC-CPU\ARM\RealView -I..\..\..\..\uC-LIB -I..\..\..\..\uC-TCPIP\IF -I..\..\..\..\uC-TCPIP\IF\Ether -I..\..\..\..\uC-TCPIP\NIC\ETHER\LPC2378 -I..\..\..\..\uC-TCPIP\NIC\ETHER\PHY -I..\..\..\..\uC-TCPIP\NIC\ETHER\PHY\DP83848 -I..\..\..\..\uC-TCPIP\OS\uCOS-II -I..\..\..\..\uC-TCPIP\Source -I..\..\..\..\uC-LCD\Source -I..\..\..\..\uC-Probe\Target\Communication\Generic\Source -I..\..\..\..\uC-Probe\Target\Communication\Generic\RS-232\Source -I..\..\..\..\uC-Probe\Target\Communication\Generic\TCPIP\Source -I..\..\..\..\uC-Probe\Target\Plugins\uCOS-II -Ie:\Keil_ARM\ARM\INC\Philips -D__IN_CHIP --omf_browse=.\rvmdk\target.crf BSP\target.c]
                          ARM

                          AREA ||.text||, CODE, READONLY, ALIGN=2

                  IRQ_Exception PROC
;;;57             void IRQ_Exception(void)
;;;58     {
000000  e92d4010          PUSH     {r4,lr}
;;;59     	CPU_FNCT_VOID  pfnct;
;;;60     	pfnct = (CPU_FNCT_VOID)VICAddress; 
000004  e3a04000          MOV      r4,#0
000008  e5140fd0          LDR      r0,[r4,#-0xfd0]
;;;61     	if (pfnct != (CPU_FNCT_VOID)0) {                                /* Make sure we don't have a NULL pointer           */
00000c  e3500000          CMP      r0,#0
000010  0a000001          BEQ      |L1.28|
;;;62         (*pfnct)(); 
000014  e1a0e00f          MOV      lr,pc
000018  e12fff10          BX       r0
                  |L1.28|
;;;63     	}
;;;64     	VICAddress = 1; 
00001c  e3a00001          MOV      r0,#1
000020  e5040fd0          STR      r0,[r4,#-0xfd0]
;;;65         //while(1);                   // 这一句替换为自己的代码
;;;66     }
000024  e8bd4010          POP      {r4,lr}
000028  e12fff1e          BX       lr
;;;67     /*********************************************************************************************************
                          ENDP

                  IRQ_DefException PROC
;;;85     
;;;86         while(1);                   // 这一句替换为自己的代码
00002c  eafffffe          B        IRQ_DefException
;;;87     }
;;;88     /*********************************************************************************************************
                          ENDP

                  FIQ_Exception PROC
;;;107    {
;;;108        while(1);                   // 这一句替换为自己的代码
000030  eafffffe          B        FIQ_Exception
;;;109    }
;;;110    
                          ENDP

                  Timer0_Exception PROC
;;;129    {
;;;130        T0IR = 0x01;
000034  e59f133c          LDR      r1,|L1.888|
000038  e3a00001          MOV      r0,#1
00003c  e5810000          STR      r0,[r1,#0]
;;;131        VICVectAddr = 0;            // 通知中断控制器中断结束
000040  e3a00000          MOV      r0,#0
000044  e5000fd0          STR      r0,[r0,#-0xfd0]
;;;132        OSTimeTick();
000048  eafffffe          B        OSTimeTick
;;;133    }
;;;134    
                          ENDP

                  Timer0Init PROC
;;;153    {
;;;154        T0IR = 0xffffffff;
00004c  e59f0324          LDR      r0,|L1.888|
000050  e3e01000          MVN      r1,#0
000054  e5801000          STR      r1,[r0,#0]
;;;155        T0TC = 0;
000058  e3a01000          MOV      r1,#0
00005c  e5801008          STR      r1,[r0,#8]
;;;156        T0TCR = 0x01;
000060  e3a01001          MOV      r1,#1
000064  e5801004          STR      r1,[r0,#4]
;;;157        T0MCR = 0x03;
000068  e3a01003          MOV      r1,#3
00006c  e5801014          STR      r1,[r0,#0x14]
;;;158        T0MR0 = (Fpclk / OS_TICKS_PER_SEC);
000070  e3a01b36          MOV      r1,#0xd800
000074  e5801018          STR      r1,[r0,#0x18]
;;;159     }
000078  e12fff1e          BX       lr
;;;160    
                          ENDP

                  VICInit PROC
;;;182    
;;;183        VICIntEnClr = 0xffffffff;
00007c  e3e01000          MVN      r1,#0
000080  e3a00000          MOV      r0,#0
000084  e5001fec          STR      r1,[r0,#-0xfec]
;;;184        VICDefVectAddr = (uint32)IRQ_DefException;
000088  e24f1064          ADR      r1,IRQ_DefException
00008c  e5001fcc          STR      r1,[r0,#-0xfcc]
;;;185    
;;;186        VICVectAddr0 = (uint32)Timer0_Exception;
000090  e24f1064          ADR      r1,Timer0_Exception
000094  e5001f00          STR      r1,[r0,#-0xf00]
;;;187        VICVectCntl0 = (VIC_IRQEN| VIC_TIMER0);
000098  e3a01024          MOV      r1,#0x24
00009c  e5001e00          STR      r1,[r0,#-0xe00]
;;;188        VICIntEnable = 1 << VIC_TIMER0;
0000a0  e3a01010          MOV      r1,#0x10
0000a4  e5001ff0          STR      r1,[r0,#-0xff0]
;;;189     }
0000a8  e12fff1e          BX       lr
;;;190    
                          ENDP

                  TargetInit PROC
;;;208            void TargetInit(void)
;;;209    {
0000ac  e92d4010          PUSH     {r4,lr}
;;;210        OS_ENTER_CRITICAL();
0000b0  ef000002          SVC      #0x2
;;;211        srand((uint32) TargetInit);
0000b4  e24f0010          ADR      r0,TargetInit
0000b8  ebfffffe          BL       srand
;;;212        VICInit();
0000bc  ebfffffe          BL       VICInit
;;;213        Timer0Init();
0000c0  ebfffffe          BL       Timer0Init
;;;214        OS_EXIT_CRITICAL();
0000c4  ef000003          SVC      #0x3
;;;215    }
0000c8  e8bd4010          POP      {r4,lr}
0000cc  e12fff1e          BX       lr
;;;216    
                          ENDP

                  InitialiseUART0 PROC
;;;235            void InitialiseUART0(uint32 bps)
;;;236    {  	
0000d0  e92d4010          PUSH     {r4,lr}
;;;237        uint16 Fdiv;
;;;238        
;;;239        PINSEL0 = (PINSEL0 & 0xfffffff0) | 0x05;    /* 选择管脚为UART0 */
0000d4  e59f22a0          LDR      r2,|L1.892|
0000d8  e5923000          LDR      r3,[r2,#0]
0000dc  e3c3300f          BIC      r3,r3,#0xf
0000e0  e3833005          ORR      r3,r3,#5
0000e4  e5823000          STR      r3,[r2,#0]
;;;240    
;;;241        U0LCR = 0x80;                               /* 允许访问分频因子寄存器 */
0000e8  e59f4290          LDR      r4,|L1.896|
0000ec  e3a02080          MOV      r2,#0x80
0000f0  e5c4200c          STRB     r2,[r4,#0xc]
;;;242        Fdiv = (Fpclk / 16) / bps;                  /* 设置波特率 */
0000f4  e1a01000          MOV      r1,r0
0000f8  e59f0284          LDR      r0,|L1.900|
0000fc  ebfffffe          BL       __aeabi_uidivmod
;;;243        U0DLM = Fdiv / 256;							
000100  e1a01420          LSR      r1,r0,#8
000104  e5c41004          STRB     r1,[r4,#4]
;;;244    	U0DLL = Fdiv % 256;						
000108  e5c40000          STRB     r0,[r4,#0]
;;;245        U0LCR = 0x03;                               /* 禁止访问分频因子寄存器 */
00010c  e3a00003          MOV      r0,#3
000110  e5c4000c          STRB     r0,[r4,#0xc]
;;;246                                                    /* 且设置为8,1,n */
;;;247    	U0IER = 0x00;                               /* 禁止中断 */
000114  e3a00000          MOV      r0,#0
000118  e5c40004          STRB     r0,[r4,#4]
;;;248        U0FCR = 0x00;                               /* 初始化FIFO */
00011c  e5c40008          STRB     r0,[r4,#8]
;;;249    } 
000120  e8bd4010          POP      {r4,lr}
000124  e12fff1e          BX       lr
;;;250    
                          ENDP

                  TargetResetInit PROC
;;;268            void TargetResetInit(void)
;;;269    {
000128  e52de004          PUSH     {lr}
;;;270    #ifdef __DEBUG_RAM    
;;;271        MEMMAP = 0x2;                   //remap
;;;272    #endif
;;;273    
;;;274    #ifdef __DEBUG_FLASH    
;;;275        MEMMAP = 0x1;                   //remap
;;;276    #endif
;;;277    
;;;278    #ifdef __IN_CHIP    
;;;279        MEMMAP = 0x1;                   //remap
00012c  e59f0254          LDR      r0,|L1.904|
000130  e3a03001          MOV      r3,#1
000134  e5c03040          STRB     r3,[r0,#0x40]
;;;280    #endif
;;;281    
;;;282        PINSEL0 = (PINSEL0 & 0xFFFF0000) | 0x05 | 0x50;
000138  e240181d          SUB      r1,r0,#0x1d0000
00013c  e5912000          LDR      r2,[r1,#0]
000140  e1a02822          LSR      r2,r2,#16
000144  e1a02802          LSL      r2,r2,#16
000148  e3822055          ORR      r2,r2,#0x55
00014c  e5812000          STR      r2,[r1,#0]
;;;283    
;;;284    /* 设置系统各部分时钟 */
;;;285        PLLCON = 1;
000150  e5c03080          STRB     r3,[r0,#0x80]
;;;286    #if (Fpclk / (Fcclk / 4)) == 1
;;;287        VPBDIV = 0;
000154  e3a02000          MOV      r2,#0
000158  e5c02100          STRB     r2,[r0,#0x100]
;;;288    #endif
;;;289    #if (Fpclk / (Fcclk / 4)) == 2
;;;290        VPBDIV = 2;
;;;291    #endif
;;;292    #if (Fpclk / (Fcclk / 4)) == 4
;;;293        VPBDIV = 1;
;;;294    #endif
;;;295    
;;;296    #if (Fcco / Fcclk) == 2
;;;297        PLLCFG = ((Fcclk / Fosc) - 1) | (0 << 5);
;;;298    #endif
;;;299    #if (Fcco / Fcclk) == 4
;;;300        PLLCFG = ((Fcclk / Fosc) - 1) | (1 << 5);
00015c  e3a01023          MOV      r1,#0x23
000160  e5c01084          STRB     r1,[r0,#0x84]
;;;301    #endif
;;;302    #if (Fcco / Fcclk) == 8
;;;303        PLLCFG = ((Fcclk / Fosc) - 1) | (2 << 5);
;;;304    #endif
;;;305    #if (Fcco / Fcclk) == 16
;;;306        PLLCFG = ((Fcclk / Fosc) - 1) | (3 << 5);
;;;307    #endif
;;;308        PLLFEED = 0xaa;
000164  e3a0c0aa          MOV      r12,#0xaa
000168  e5c0c08c          STRB     r12,[r0,#0x8c]
;;;309        PLLFEED = 0x55;
00016c  e3a0e055          MOV      lr,#0x55
000170  e5c0e08c          STRB     lr,[r0,#0x8c]
                  |L1.372|
;;;310        while((PLLSTAT & (1 << 10)) == 0);
000174  e1d018b8          LDRH     r1,[r0,#0x88]
000178  e3110b01          TST      r1,#0x400
00017c  0afffffc          BEQ      |L1.372|
;;;311        PLLCON = 3;
000180  e3a01003          MOV      r1,#3
000184  e5c01080          STRB     r1,[r0,#0x80]
;;;312        PLLFEED = 0xaa;
000188  e5c0c08c          STRB     r12,[r0,#0x8c]
;;;313        PLLFEED = 0x55;
00018c  e5c0e08c          STRB     lr,[r0,#0x8c]
;;;314    
;;;315    /* 设置存储器加速模块 */
;;;316        MAMCR = 0;
000190  e5c02000          STRB     r2,[r0,#0]
;;;317    #if Fcclk < 20000000
;;;318        MAMTIM = 1;
;;;319    #else
;;;320    #if Fcclk < 40000000
;;;321        MAMTIM = 2;
;;;322    #else
;;;323        MAMTIM = 3;
000194  e5c01004          STRB     r1,[r0,#4]
;;;324    #endif
;;;325    #endif
;;;326        MAMCR = 2;

⌨️ 快捷键说明

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