main.txt

来自「uc/os在lpc2100系列的KEIL模板 uc/os在lpc2100系列的」· 文本 代码 · 共 554 行 · 第 1/2 页

TXT
554
字号
00023c  0a000006          BEQ      |L1.604|
                  |L1.576|
;;;134          for(i=0; i<100; i++);
000240  e3a01000          MOV      r1,#0
                  |L1.580|
000244  e2811001          ADD      r1,r1,#1
000248  e3510064          CMP      r1,#0x64
00024c  3afffffc          BCC      |L1.580|
000250  e2400001          SUB      r0,r0,#1              ;133
000254  e3500000          CMP      r0,#0                 ;133
000258  1afffff8          BNE      |L1.576|
                  |L1.604|
;;;135    }
00025c  e12fff1e          BX       lr
;;;136        
                          ENDP

                  LCD_GRP PROC
;;;114    void LCD_GRP(uint8 const *string_num)
;;;115    	{     
000260  e92d41f0          PUSH     {r4-r8,lr}
000264  e1a04000          MOV      r4,r0
;;;116         uint8 i,j,k;
;;;117         uint16 l;
;;;118    //      uint8 const *p = chartab1;
;;;119          
;;;120            k = 0x80;
000268  e3a07080          MOV      r7,#0x80
;;;121            l = 0;  
;;;122     		LCD_WRI(0x32);
00026c  e3a00032          MOV      r0,#0x32
000270  ebfffffe          BL       LCD_WRI
;;;123            OSTimeDly(2);
000274  e3a00002          MOV      r0,#2
000278  ebfffffe          BL       OSTimeDly
;;;124            LCD_WRI(0x36);
00027c  e3a00036          MOV      r0,#0x36
000280  ebfffffe          BL       LCD_WRI
;;;125            OSTimeDly(2);       
000284  e3a00002          MOV      r0,#2
000288  ebfffffe          BL       OSTimeDly
;;;126            
;;;127        
;;;128                    // 上半屏
;;;129    	        for (i = 0;i < 32;i++)
00028c  e3a06000          MOV      r6,#0
                  |L1.656|
;;;130    	            {
;;;131    					LCD_WRI(k);
000290  e1a00007          MOV      r0,r7
000294  ebfffffe          BL       LCD_WRI
;;;132    					DelayNS(2);
000298  e3a00002          MOV      r0,#2
00029c  ebfffffe          BL       DelayNS
;;;133    					k++;
0002a0  e2870001          ADD      r0,r7,#1
0002a4  e20070ff          AND      r7,r0,#0xff
;;;134    					LCD_WRI(0x80);
0002a8  e3a00080          MOV      r0,#0x80
0002ac  ebfffffe          BL       LCD_WRI
;;;135    					DelayNS(2);		
0002b0  e3a00002          MOV      r0,#2
0002b4  ebfffffe          BL       DelayNS
;;;136    						for (j = 0;j < 16;j++) 
0002b8  e3a05000          MOV      r5,#0
                  |L1.700|
;;;137    							{
;;;138    								LCD_WRD(*string_num);
0002bc  e5d40000          LDRB     r0,[r4,#0]
0002c0  ebfffffe          BL       LCD_WRD
;;;139    								string_num++;
0002c4  e2844001          ADD      r4,r4,#1
;;;140    								DelayNS(1);;
0002c8  e3a00001          MOV      r0,#1
0002cc  ebfffffe          BL       DelayNS
0002d0  e2850001          ADD      r0,r5,#1              ;136
0002d4  e20050ff          AND      r5,r0,#0xff           ;136
0002d8  e3550010          CMP      r5,#0x10              ;136
0002dc  3afffff6          BCC      |L1.700|
0002e0  e2860001          ADD      r0,r6,#1              ;129
0002e4  e20060ff          AND      r6,r0,#0xff           ;129
0002e8  e3560020          CMP      r6,#0x20              ;129
0002ec  3affffe7          BCC      |L1.656|
;;;141    								l++;      
;;;142    							}
;;;143    							
;;;144    
;;;145    	            }
;;;146    
;;;147                   // 下半屏
;;;148            k = 0x80;
0002f0  e3a07080          MOV      r7,#0x80
;;;149                  
;;;150    	        for (i = 0;i < 32;i++)
0002f4  e3a06000          MOV      r6,#0
                  |L1.760|
;;;151    	            {
;;;152    					LCD_WRI(k);
0002f8  e1a00007          MOV      r0,r7
0002fc  ebfffffe          BL       LCD_WRI
;;;153    					DelayNS(2);
000300  e3a00002          MOV      r0,#2
000304  ebfffffe          BL       DelayNS
;;;154    					k++;
000308  e2870001          ADD      r0,r7,#1
00030c  e20070ff          AND      r7,r0,#0xff
;;;155    					LCD_WRI(0x88);
000310  e3a00088          MOV      r0,#0x88
000314  ebfffffe          BL       LCD_WRI
;;;156    					DelayNS(2);		
000318  e3a00002          MOV      r0,#2
00031c  ebfffffe          BL       DelayNS
;;;157    						for (j = 0;j < 16;j++) 
000320  e3a05000          MOV      r5,#0
                  |L1.804|
;;;158    							{
;;;159    								LCD_WRD(*string_num);
000324  e5d40000          LDRB     r0,[r4,#0]
000328  ebfffffe          BL       LCD_WRD
;;;160    								string_num++;
00032c  e2844001          ADD      r4,r4,#1
;;;161    								DelayNS(1);
000330  e3a00001          MOV      r0,#1
000334  ebfffffe          BL       DelayNS
000338  e2850001          ADD      r0,r5,#1              ;157
00033c  e20050ff          AND      r5,r0,#0xff           ;157
000340  e3550010          CMP      r5,#0x10              ;157
000344  3afffff6          BCC      |L1.804|
000348  e2860001          ADD      r0,r6,#1              ;150
00034c  e20060ff          AND      r6,r0,#0xff           ;150
000350  e3560020          CMP      r6,#0x20              ;150
000354  3affffe7          BCC      |L1.760|
;;;162    								l++;      
;;;163    							}
;;;164    							
;;;165    
;;;166    	            }
;;;167    	 	 
;;;168     
;;;169        
;;;170        }
000358  e8bd41f0          POP      {r4-r8,lr}
00035c  e12fff1e          BX       lr
;;;53     
                          ENDP

                  Task1 PROC
;;;120    void  Task1(void *pdata)
;;;121    {
000360  e92d4070          PUSH     {r4-r6,lr}
;;;122        pdata = pdata;                                                  /* 避免编译警告 */
;;;123        IOSET=4;
000364  e59f50c0          LDR      r5,|L1.1068|
000368  e3a04004          MOV      r4,#4
00036c  e5854004          STR      r4,[r5,#4]
;;;124        OSTimeDly(3);
000370  e3a00003          MOV      r0,#3
000374  ebfffffe          BL       OSTimeDly
;;;125        Uart_Printf("123456789abc");
000378  e28f00b0          ADR      r0,|L1.1072|
00037c  ebfffffe          BL       Uart_Printf
;;;126        IOCLR=4;
000380  e585400c          STR      r4,[r5,#0xc]
;;;127        OSTimeDly(3);
000384  e8bd4070          POP      {r4-r6,lr}
000388  e3a00003          MOV      r0,#3
00038c  eafffffe          B        OSTimeDly
;;;128    }
;;;129    
                          ENDP

                  TaskStart PROC
;;;101            void  TaskStart(void *pdata)
;;;102    {
000390  e92d4070          PUSH     {r4-r6,lr}
;;;103        pdata = pdata;                                                  /* 避免编译警告 */
;;;104    
;;;105        TargetInit();                                                   /* 目标板初始化 */
000394  ebfffffe          BL       TargetInit
;;;106    	PINSEL0 = (PINSEL0 & 0xffffff0f);
000398  e59f00a0          LDR      r0,|L1.1088|
00039c  e5901000          LDR      r1,[r0,#0]
0003a0  e3c110f0          BIC      r1,r1,#0xf0
0003a4  e5801000          STR      r1,[r0,#0]
;;;107    	PINSEL1 = (PINSEL1 & 0xffffff0f);
0003a8  e5901004          LDR      r1,[r0,#4]
0003ac  e3c110f0          BIC      r1,r1,#0xf0
0003b0  e5801004          STR      r1,[r0,#4]
;;;108    	IODIR=0x0c;
0003b4  e59f5070          LDR      r5,|L1.1068|
0003b8  e3a0000c          MOV      r0,#0xc
0003bc  e5850008          STR      r0,[r5,#8]
;;;109    	UartInit(0, 115200);
0003c0  e59f107c          LDR      r1,|L1.1092|
0003c4  e3a00000          MOV      r0,#0
0003c8  ebfffffe          BL       UartInit
;;;110    	OSTaskCreate(Task1, (void *)0, &TaskStk2[TASK_STK_SIZE - 1], 1);
0003cc  e59f2074          LDR      r2,|L1.1096|
0003d0  e3a03001          MOV      r3,#1
0003d4  e3a01000          MOV      r1,#0
0003d8  e24f0080          ADR      r0,Task1
0003dc  ebfffffe          BL       OSTaskCreate
;;;111    	while(1)
0003e0  e3a04008          MOV      r4,#8
                  |L1.996|
;;;112    	{	
;;;113    		
;;;114    		IOSET=8;
0003e4  e5854004          STR      r4,[r5,#4]
;;;115    		OSTimeDly(2);
0003e8  e3a00002          MOV      r0,#2
0003ec  ebfffffe          BL       OSTimeDly
;;;116    		IOCLR=8;
0003f0  e585400c          STR      r4,[r5,#0xc]
;;;117    		OSTimeDly(2);
0003f4  e3a00002          MOV      r0,#2
0003f8  ebfffffe          BL       OSTimeDly
0003fc  eafffff8          B        |L1.996|
;;;118    	}
;;;119    }
;;;120    void  Task1(void *pdata)
                          ENDP

                  main PROC
;;;72             int main (void)
;;;73     {
000400  e92d4010          PUSH     {r4,lr}
;;;74         OSInit();
000404  ebfffffe          BL       OSInit
;;;75     
;;;76         OSTaskCreate(TaskStart, (void *)0, &TaskStartStk[TASK_STK_SIZE - 1], 0);
000408  e3a03000          MOV      r3,#0
00040c  e59f2038          LDR      r2,|L1.1100|
000410  e1a01003          MOV      r1,r3
000414  e24f008c          ADR      r0,TaskStart
000418  ebfffffe          BL       OSTaskCreate
;;;77         OSStart();
00041c  ebfffffe          BL       OSStart
;;;78         return 0;
000420  e8bd4010          POP      {r4,lr}
000424  e3a00000          MOV      r0,#0
;;;79     }
000428  e12fff1e          BX       lr
;;;80     
                          ENDP

                  |L1.1068|
00042c  e0028000          DCD      0xe0028000
                  |L1.1072|
000430  31323334          DCB      "1234"
000434  35363738          DCB      "5678"
000438  39616263          DCB      "9abc"
00043c  00000000          DCB      "\0\0\0\0"
                  |L1.1088|
000440  e002c000          DCD      0xe002c000
                  |L1.1092|
000444  0001c200          DCD      0x0001c200
                  |L1.1096|
000448  000001fc          DCD      ||.bss||+0x1fc
                  |L1.1100|
00044c  000000fc          DCD      ||.bss||+0xfc

                          AREA ||.bss||, DATA, NOINIT, ALIGN=2

                  TaskStartStk
                          %        256
                  TaskStk2
                          %        256

                          AREA |area_number.3|, DATA, NOINIT, ALIGN=2

                          EXPORTAS |area_number.3|, ||.bss||
                  TaskStk
                          %        256

                  __ARM_use_no_argv EQU 0

⌨️ 快捷键说明

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