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

📄 app.txt

📁 stm32 ucos 精简移殖版本 不需作任何修改直接便可运行。包含串口 定时器
💻 TXT
📖 第 1 页 / 共 2 页
字号:
; generated by ARM/Thumb C/C++ Compiler with , RVCT3.1 [Build 919] for uVision
; commandline ArmCC [--debug -c --asm --interleave -o.\output\app.o --depend=.\output\app.d --device=DARMSTM --apcs=interwork -O1 -I. -I..\BSP -I..\..\..\..\..\uCOS-II\Ports\arm-cortex-m3\Generic\RealView -I..\..\..\..\..\uCOS-II\Source -I..\..\..\..\..\CPU\ST\STM32\inc -I..\..\..\..\..\uC-CPU -I..\..\..\..\..\uC-CPU\Arm-Cortex-M3\RealView -I..\..\..\..\..\uC-LIB -IC:\Keil\ARM\INC\ST\STM32F10x --omf_browse=.\output\app.crf app.c]
                          THUMB

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

                  App_DispScr_SignOn PROC
;;;374    static  void  App_DispScr_SignOn (void)
;;;375    {
000000  b570              PUSH     {r4-r6,lr}
;;;376    
;;;377    
;;;378        printf("\r\n  Micrium uC/OS-II  \r\n");
000002  a0a0              ADR      r0,|L1.644|
000004  f7fff7ff          BL       __1printf
;;;379        printf("  ST STM32 (Cortex-M3)\r\n\r\n");
000008  a0a5              ADR      r0,|L1.672|
00000a  f7fff7ff          BL       __1printf
;;;380    
;;;381        printf("  uC/OS-II:  V%ld.%ld%ld\r\n",OSVersion()/100,(OSVersion() % 100) / 10,(OSVersion() % 10));
00000e  f7fff7ff          BL       OSVersion
000012  240a              MOVS     r4,#0xa
000014  fbb0fbb0          UDIV     r1,r0,r4
000018  fb04fb04          MLS      r6,r4,r1,r0
00001c  f7fff7ff          BL       OSVersion
000020  2564              MOVS     r5,#0x64
000022  fbb0fbb0          UDIV     r1,r0,r5
000026  fb05fb05          MLS      r0,r5,r1,r0
00002a  fbb0fbb0          UDIV     r4,r0,r4
00002e  f7fff7ff          BL       OSVersion
000032  fbb0fbb0          UDIV     r1,r0,r5
000036  4633              MOV      r3,r6
000038  4622              MOV      r2,r4
00003a  a0a0              ADR      r0,|L1.700|
00003c  f7fff7ff          BL       __1printf
;;;382        printf("  TickRate: %ld  \r\n",OS_TICKS_PER_SEC);
000040  f44ff44f          MOV      r1,#0x3e8
000044  a0a4              ADR      r0,|L1.728|
000046  f7fff7ff          BL       __1printf
;;;383        printf("  CPU Usage: %ld%    \r\n",OSCPUUsage);
00004a  48a8              LDR      r0,|L1.748|
00004c  7801              LDRB     r1,[r0,#0]  ; OSCPUUsage
00004e  a0a8              ADR      r0,|L1.752|
000050  f7fff7ff          BL       __1printf
;;;384        printf("  CPU Speed:%ld MHz  \r\n",BSP_CPU_ClkFreq() / 1000000L);
000054  f7fff7ff          BL       BSP_CPU_ClkFreq
000058  49ab              LDR      r1,|L1.776|
00005a  fbb0fbb0          UDIV     r1,r0,r1
00005e  a0ab              ADR      r0,|L1.780|
000060  f7fff7ff          BL       __1printf
;;;385        printf("  #Ticks: %ld  \r\n",OSTime);
000064  48af              LDR      r0,|L1.804|
000066  6801              LDR      r1,[r0,#0]  ; OSTime
000068  a0af              ADR      r0,|L1.808|
00006a  f7fff7ff          BL       __1printf
;;;386        printf("  #CtxSw: %ld  \r\n\r\n",OSCtxSwCtr);
00006e  48b3              LDR      r0,|L1.828|
000070  6801              LDR      r1,[r0,#0]  ; OSCtxSwCtr
000072  e8bde8bd          POP      {r4-r6,lr}
000076  a0b2              ADR      r0,|L1.832|
000078  f7fff7ff          B.W      __1printf
;;;387    
;;;388    }
;;;389    /*
                          ENDP

                  App_TaskKbd PROC
;;;321    static  void  App_TaskKbd (void *p_arg)
;;;322    {
00007c  b570              PUSH     {r4-r6,lr}
                  |L1.126|
;;;323        INT8U  b1,b2;
;;;324    	//INT8U  err;
;;;325        (void)p_arg;
;;;326    	 
;;;327        while (DEF_TRUE) {
;;;328    	    //OSSemPend(InfoSem,0,&err);
;;;329            b1 = BSP_PB_GetStatus(BSP_PB_ID_KEY1);
00007e  2001              MOVS     r0,#1
000080  f7fff7ff          BL       BSP_PB_GetStatus
000084  4605              MOV      r5,r0
;;;330    		b2 = BSP_PB_GetStatus(BSP_PB_ID_KEY2);
000086  2002              MOVS     r0,#2
000088  f7fff7ff          BL       BSP_PB_GetStatus
00008c  4604              MOV      r4,r0
;;;331    		if (b1 == 1)	{
00008e  2d01              CMP      r5,#1
000090  d101              BNE      |L1.150|
;;;332    		App_DispScr_SignOn();
000092  f7fff7ff          BL       App_DispScr_SignOn
                  |L1.150|
;;;333    		} 
;;;334    		if (b2 == 2)	{
000096  2c02              CMP      r4,#2
000098  d101              BNE      |L1.158|
;;;335    		App_DispScr_SignOn();//OSMboxPost(Disp_Box,(void*)0);
00009a  f7fff7ff          BL       App_DispScr_SignOn
                  |L1.158|
;;;336    		}
;;;337    		OSTimeDlyHMSM(0, 0, 0, 20); 
00009e  2200              MOVS     r2,#0
0000a0  2314              MOVS     r3,#0x14
0000a2  4611              MOV      r1,r2
0000a4  4610              MOV      r0,r2
0000a6  f7fff7ff          BL       OSTimeDlyHMSM
0000aa  e7e8              B        |L1.126|
;;;338        }
;;;339    }
;;;340    
                          ENDP

                  App_TaskUart PROC
;;;196    	ptr1 = ptr;
;;;197    	while(1);
0000ac  e7fe              B        App_TaskUart
;;;198    	{		
;;;199    		do{
;;;200    			*ptr = USART_ReceiveData(USART2);
;;;201    			ptr++;
;;;202    			lenth ++ ;
;;;203    		  }while(USART_GetFlagStatus(USART2,USART_FLAG_RXNE) == 1);
;;;204    		flag++;
;;;205    		if(flag == 4)
;;;206    			{
;;;207    				for(i = 0;i<lenth;i++)
;;;208    				{
;;;209    					ptr = ptr1;
;;;210    					USART_SendData(USART2,*ptr1);
;;;211    	      	while(USART_GetFlagStatus(USART2, USART_FLAG_TXE) != RESET);
;;;212    	    	}
;;;213    	    	ptr1 = ptr;
;;;214    	    	flag = 0;
;;;215    	    	lenth = 0;
;;;216    			}
;;;217    		
;;;218    	}
;;;219    	
;;;220    }
;;;221    
                          ENDP

                  App_TaskLED PROC
;;;292    static  void  App_TaskLED (void *p_arg)
;;;293    {
0000ae  b510              PUSH     {r4,lr}
0000b0  f44ff44f          MOV      r4,#0x320
                  |L1.180|
;;;294    	while(1)
;;;295    		{
;;;296    	  OSTimeDlyHMSM(0, 0, 0, 800);	
0000b4  2200              MOVS     r2,#0
0000b6  4623              MOV      r3,r4
0000b8  4611              MOV      r1,r2
0000ba  4610              MOV      r0,r2
0000bc  f7fff7ff          BL       OSTimeDlyHMSM
;;;297    	  BSP_LED_On(1);
0000c0  2001              MOVS     r0,#1
0000c2  f7fff7ff          BL       BSP_LED_On
;;;298    	  OSTimeDlyHMSM(0, 0, 0, 800);
0000c6  2200              MOVS     r2,#0
0000c8  4623              MOV      r3,r4
0000ca  4611              MOV      r1,r2
0000cc  4610              MOV      r0,r2
0000ce  f7fff7ff          BL       OSTimeDlyHMSM
;;;299    	  BSP_LED_Off(1);	 
0000d2  2001              MOVS     r0,#1
0000d4  f7fff7ff          BL       BSP_LED_Off
0000d8  e7ec              B        |L1.180|
;;;300    	  //USART_SendData(USART2, 'O');
;;;301       // while(USART_GetFlagStatus(USART2, USART_FLAG_TXE) == RESET); 
;;;302        }
;;;303    }
;;;304    
                          ENDP

                  App_TaskCreate PROC
;;;240    static  void  App_TaskCreate (void)
;;;241    {
0000da  b508              PUSH     {r3,lr}
;;;242        CPU_INT08U  os_err;
;;;243    
;;;244    	os_err = OSTaskCreate((void (*)(void *)) App_TaskLED,
0000dc  2306              MOVS     r3,#6
0000de  4a9d              LDR      r2,|L1.852|
0000e0  2100              MOVS     r1,#0
0000e2  f2aff2af          ADR      r0,App_TaskLED + 1
0000e6  f7fff7ff          BL       OSTaskCreate
0000ea  9000              STR      r0,[sp,#0]
;;;245                              (void          * ) 0,
;;;246                              (OS_STK        * )&App_TaskLEDStk[APP_TASK_LED_STK_SIZE - 1],
;;;247                              (INT8U           ) APP_TASK_LED_PRIO
;;;248                             );
;;;249    	printf("Creat App_TaskLED!\r\n");
0000ec  a09a              ADR      r0,|L1.856|
0000ee  f7fff7ff          BL       __1printf
;;;250    #if (OS_TASK_NAME_SIZE >= 9)
;;;251        OSTaskNameSet(APP_TASK_LED_PRIO, "LED", &os_err);
0000f2  466a              MOV      r2,sp
0000f4  a19e              ADR      r1,|L1.880|
0000f6  2006              MOVS     r0,#6
0000f8  f7fff7ff          BL       OSTaskNameSet
;;;252    #endif
;;;253    
;;;254    os_err = OSTaskCreate((void (*)(void *)) App_TaskUart,
0000fc  2307              MOVS     r3,#7
0000fe  4a9d              LDR      r2,|L1.884|
000100  2100              MOVS     r1,#0
000102  f2aff2af          ADR      r0,App_TaskUart + 1
000106  f7fff7ff          BL       OSTaskCreate
00010a  9000              STR      r0,[sp,#0]
;;;255                              (void          * ) 0,
;;;256                              (OS_STK        * )&App_TaskUartStk[APP_TASK_UART_STK_SIZE],
;;;257                              (INT8U           ) APP_TASK_UART_PRIO
;;;258                             );
;;;259    	printf("Creat App_TaskUart!\r\n");
00010c  a09a              ADR      r0,|L1.888|
00010e  f7fff7ff          BL       __1printf
;;;260    #if (OS_TASK_NAME_SIZE >= 9)
;;;261        OSTaskNameSet(APP_TASK_UART_PRIO, "USART", &os_err);
000112  466a              MOV      r2,sp
000114  a19e              ADR      r1,|L1.912|
000116  2007              MOVS     r0,#7
000118  f7fff7ff          BL       OSTaskNameSet
;;;262    #endif
;;;263    
;;;264    
;;;265        os_err = OSTaskCreate((void (*)(void *)) App_TaskKbd,
00011c  2304              MOVS     r3,#4
00011e  4a9e              LDR      r2,|L1.920|
000120  2100              MOVS     r1,#0
000122  f2aff2af          ADR      r0,App_TaskKbd + 1
000126  f7fff7ff          BL       OSTaskCreate
00012a  9000              STR      r0,[sp,#0]
;;;266                              (void          * ) 0,
;;;267                              (OS_STK        * )&App_TaskKbdStk[APP_TASK_KBD_STK_SIZE - 1],
;;;268                              (INT8U           ) APP_TASK_KBD_PRIO
;;;269                              );
;;;270    	printf("Creat App_TaskKbd!\r\n");
00012c  a09b              ADR      r0,|L1.924|
00012e  f7fff7ff          BL       __1printf
;;;271    		
;;;272    #if (OS_TASK_NAME_SIZE >= 9)
;;;273        OSTaskNameSet(APP_TASK_KBD_PRIO, "KeyBoard", &os_err);
000132  466a              MOV      r2,sp
000134  a19f              ADR      r1,|L1.948|
000136  2004              MOVS     r0,#4
000138  f7fff7ff          BL       OSTaskNameSet
;;;274    #endif
;;;275    
;;;276    }
00013c  bd08              POP      {r3,pc}
;;;277    /*
                          ENDP

                  App_TaskStart PROC
;;;143    static  void  App_TaskStart (void *p_arg)
;;;144    {
00013e  e92de92d          PUSH     {r4-r8,lr}
;;;145        CPU_INT32U  i;
;;;146        CPU_INT32U  j;
;;;147        CPU_INT32U  dly;
;;;148    
;;;149    
;;;150        (void)p_arg;
;;;151    
;;;152    	OS_CPU_SysTickInit();                                       /* Initialize the SysTick. 		*/
000142  f7fff7ff          BL       OS_CPU_SysTickInit
;;;153    
;;;154    #if (OS_TASK_STAT_EN > 0)
;;;155        OSStatInit();                                               /* Determine CPU capacity.                              */
000146  f7fff7ff          BL       OSStatInit
;;;156    #endif
;;;157    
;;;158    	App_TaskCreate();
00014a  f7fff7ff          BL       App_TaskCreate
;;;159    
;;;160        while (DEF_TRUE) {                                          /* Task body, always written as an infinite loop.       */
00014e  2702              MOVS     r7,#2
                  |L1.336|
;;;161    		for (j = 0; j < 4; j++) {
000150  2500              MOVS     r5,#0
                  |L1.338|
;;;162                for (i = 1; i <= 4; i++) {
000152  2401              MOVS     r4,#1
                  |L1.340|
;;;163                    BSP_LED_On(i);
000154  b2e0              UXTB     r0,r4
000156  4606              MOV      r6,r0
000158  f7fff7ff          BL       BSP_LED_On
;;;164                    dly = (BSP_ADC_GetStatus(1) >> 4) + 2;
00015c  2001              MOVS     r0,#1
00015e  f7fff7ff          BL       BSP_ADC_GetStatus
000162  eb07eb07          ADD      r3,r7,r0,LSR #4
;;;165                    OSTimeDlyHMSM(0, 0, 0, dly);
000166  2200              MOVS     r2,#0
000168  4611              MOV      r1,r2
00016a  4610              MOV      r0,r2
00016c  f7fff7ff          BL       OSTimeDlyHMSM
;;;166                    BSP_LED_Off(i);
000170  4630              MOV      r0,r6
000172  f7fff7ff          BL       BSP_LED_Off
;;;167                    dly = (BSP_ADC_GetStatus(1) >> 4) + 2;
000176  2001              MOVS     r0,#1
000178  f7fff7ff          BL       BSP_ADC_GetStatus
00017c  eb07eb07          ADD      r3,r7,r0,LSR #4
;;;168                    OSTimeDlyHMSM(0, 0, 0, dly);
000180  2200              MOVS     r2,#0
000182  4611              MOV      r1,r2
000184  4610              MOV      r0,r2
000186  f7fff7ff          BL       OSTimeDlyHMSM
00018a  1c64              ADDS     r4,r4,#1              ;162
00018c  2c04              CMP      r4,#4                 ;162
00018e  d9e1              BLS      |L1.340|
;;;169                }
;;;170    
;;;171                for (i = 3; i >= 2; i--) {
000190  2403              MOVS     r4,#3
                  |L1.402|
;;;172                    BSP_LED_On(i);
000192  b2e0              UXTB     r0,r4
000194  4606              MOV      r6,r0
000196  f7fff7ff          BL       BSP_LED_On

⌨️ 快捷键说明

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