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

📄 app.txt

📁 针对STM32F103的UCOS移植
💻 TXT
📖 第 1 页 / 共 5 页
字号:
; generated by ARM/Thumb C/C++ Compiler with , RVCT3.1 [Build 942] for uVision
; commandline ArmCC [--debug -c --asm --interleave -o.\rvmdk\app.o --depend=.\rvmdk\app.d --device=DARMSTM --apcs=interwork -O1 -Otime -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 -I..\..\..\..\..\uC-Probe\Target\Plugins\uCOS-II -I..\..\..\..\..\uC-Probe\Target\Communication\Generic\Source -I..\..\..\..\..\uC-Probe\Target\Communication\Generic\RS-232\Ports\ST\STM32 -I..\..\..\..\..\uC-Probe\Target\Communication\Generic\RS-232\Source -IC:\Keil\ARM\INC\ST\STM32F10x app.c]
                          THUMB

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

                  AppFormatDec PROC
;;;759    static  void  AppFormatDec (CPU_INT08U *s, CPU_INT32U value, CPU_INT08U digits)
;;;760    {
000000  b410              PUSH     {r4}
;;;761        CPU_INT08U      i;
;;;762        CPU_INT32U      mult;
;;;763    
;;;764    
;;;765        mult = 1;
000002  2301              MOVS     r3,#1
;;;766        for (i = 0; i < (digits - 1); i++) {
000004  f04f0c00          MOV      r12,#0
000008  1e52              SUBS     r2,r2,#1
00000a  240a              MOVS     r4,#0xa
00000c  2a00              CMP      r2,#0
00000e  dd06              BLE      |L1.30|
                  |L1.16|
;;;767            mult *= 10;
000010  4363              MULS     r3,r4,r3
000012  f10c0c01          ADD      r12,r12,#1            ;766
000016  f00c0cff          AND      r12,r12,#0xff         ;766
00001a  4594              CMP      r12,r2                ;766
00001c  dbf8              BLT      |L1.16|
                  |L1.30|
;;;768        }
;;;769        while (mult > 0) {
00001e  2b00              CMP      r3,#0
000020  d00b              BEQ      |L1.58|
                  |L1.34|
;;;770            *s++   = value / mult + '0';
000022  fbb1f2f3          UDIV     r2,r1,r3
000026  f1020c30          ADD      r12,r2,#0x30
00002a  f800cb01          STRB     r12,[r0],#1
;;;771            value %= mult;
00002e  fb031112          MLS      r1,r3,r2,r1
;;;772            mult  /= 10;
000032  fbb3f3f4          UDIV     r3,r3,r4
000036  2b00              CMP      r3,#0                 ;769
000038  d1f3              BNE      |L1.34|
                  |L1.58|
;;;773        }
;;;774    }
00003a  bc10              POP      {r4}
00003c  4770              BX       lr
;;;775    
                          ENDP

                  AppTaskProbeStr PROC
;;;630    static  void  AppTaskProbeStr (void *p_arg)
;;;631    {
00003e  b570              PUSH     {r4-r6,lr}
;;;632                CPU_INT32U   i;
;;;633        static  CPU_CHAR     buffer[64];
;;;634    
;;;635    
;;;636        i   = 0;
000040  2400              MOVS     r4,#0
;;;637    
;;;638        while (DEF_TRUE) {
000042  4df9              LDR      r5,|L1.1064|
                  |L1.68|
;;;639            Str_Copy(buffer, "String Tx #xxxxx\n");
000044  a1f9              ADR      r1,|L1.1068|
000046  48f8              LDR      r0,|L1.1064|
000048  f7fffffe          BL       Str_Copy
;;;640            AppFormatDec(&buffer[11], i, 5);
00004c  2205              MOVS     r2,#5
00004e  4621              MOV      r1,r4
000050  f105000b          ADD      r0,r5,#0xb
000054  f7fffffe          BL       AppFormatDec
;;;641            i++;
000058  1c64              ADDS     r4,r4,#1
;;;642            ProbeCom_TxStr(buffer, 100);
00005a  2164              MOVS     r1,#0x64
00005c  48f2              LDR      r0,|L1.1064|
00005e  f7fffffe          BL       ProbeCom_TxStr
;;;643            OSTimeDlyHMSM(0, 0, 1, 0);
000062  2300              MOVS     r3,#0
000064  2201              MOVS     r2,#1
000066  4619              MOV      r1,r3
000068  4618              MOV      r0,r3
00006a  f7fffffe          BL       OSTimeDlyHMSM
00006e  e7e9              B        |L1.68|
;;;644        }
;;;645    }
;;;646    #endif
                          ENDP

                  AppTaskKbd PROC
;;;416    static  void  AppTaskKbd (void *p_arg)
;;;417    {
000070  e92d41f0          PUSH     {r4-r8,lr}
;;;418        CPU_BOOLEAN  b1_prev;
;;;419        CPU_BOOLEAN  b1;
;;;420        CPU_INT08U   key;
;;;421    
;;;422    
;;;423        (void)p_arg;
;;;424    
;;;425        b1_prev = DEF_FALSE;
000074  2500              MOVS     r5,#0
;;;426        key     = 1;
000076  2401              MOVS     r4,#1
;;;427    
;;;428        while (DEF_TRUE) {
000078  4ff1              LDR      r7,|L1.1088|
                  |L1.122|
;;;429            b1 = PB_GetStatus(1);
00007a  2001              MOVS     r0,#1
00007c  f7fffffe          BL       PB_GetStatus
000080  4606              MOV      r6,r0
;;;430    
;;;431            if (b1 == DEF_TRUE && b1_prev == DEF_FALSE) {
000082  2e01              CMP      r6,#1
000084  d10a              BNE      |L1.156|
000086  b94d              CBNZ     r5,|L1.156|
;;;432                if (key == 2) {
000088  2c02              CMP      r4,#2
00008a  d101              BNE      |L1.144|
;;;433                    key = 1;
00008c  2401              MOVS     r4,#1
00008e  e001              B        |L1.148|
                  |L1.144|
;;;434                } else {
;;;435                    key++;
000090  1c60              ADDS     r0,r4,#1
000092  b2c4              UXTB     r4,r0
                  |L1.148|
;;;436                }
;;;437    
;;;438                OSMboxPost(AppUserIFMbox, (void *)key);
000094  4621              MOV      r1,r4
000096  68b8              LDR      r0,[r7,#8]  ; AppUserIFMbox
000098  f7fffffe          BL       OSMboxPost
                  |L1.156|
;;;439            }
;;;440    
;;;441            b1_prev = b1;
00009c  4635              MOV      r5,r6
;;;442    
;;;443            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  f7fffffe          BL       OSTimeDlyHMSM
0000aa  e7e6              B        |L1.122|
;;;444        }
;;;445    }
;;;446    
                          ENDP

                  AppDispScr_SignOn PROC
;;;460    static  void  AppDispScr_SignOn (void)
;;;461    {
0000ac  b570              PUSH     {r4-r6,lr}
;;;462        CPU_INT32U  value;
;;;463    
;;;464    
;;;465        Str_Copy(AppLCDLine0, "  Micrium uC/OS-II  ");
0000ae  a1e5              ADR      r1,|L1.1092|
0000b0  48ea              LDR      r0,|L1.1116|
0000b2  f7fffffe          BL       Str_Copy
;;;466        Str_Copy(AppLCDLine1, "ST STM32 (Cortex-M3)");
0000b6  a1ea              ADR      r1,|L1.1120|
0000b8  48ef              LDR      r0,|L1.1144|
0000ba  f7fffffe          BL       Str_Copy
;;;467    
;;;468        Str_Copy(AppLCDLine2, "                    ");
0000be  a1ef              ADR      r1,|L1.1148|
0000c0  48f4              LDR      r0,|L1.1172|
0000c2  f7fffffe          BL       Str_Copy
;;;469    
;;;470        Str_Copy(AppLCDLine3, "  uC/OS-II:  Vx.yy  ");
0000c6  a1f4              ADR      r1,|L1.1176|
0000c8  48f9              LDR      r0,|L1.1200|
0000ca  f7fffffe          BL       Str_Copy
;;;471        value           = (CPU_INT32U)OSVersion();
0000ce  f7fffffe          BL       OSVersion
;;;472        AppLCDLine3[14] = value / 100 + '0';
0000d2  2564              MOVS     r5,#0x64
0000d4  fbb0f1f5          UDIV     r1,r0,r5
0000d8  4af5              LDR      r2,|L1.1200|
0000da  f1010330          ADD      r3,r1,#0x30
0000de  7393              STRB     r3,[r2,#0xe]  ; AppLCDLine3
;;;473        AppLCDLine3[16] = (value % 100) / 10 + '0';
0000e0  fb050111          MLS      r1,r5,r1,r0
0000e4  240a              MOVS     r4,#0xa
0000e6  fbb1f1f4          UDIV     r1,r1,r4
0000ea  3130              ADDS     r1,r1,#0x30
0000ec  7411              STRB     r1,[r2,#0x10]  ; AppLCDLine3
;;;474        AppLCDLine3[17] = (value %  10) + '0';
0000ee  fbb0f1f4          UDIV     r1,r0,r4
0000f2  fb040011          MLS      r0,r4,r1,r0
0000f6  3030              ADDS     r0,r0,#0x30
0000f8  7450              STRB     r0,[r2,#0x11]  ; AppLCDLine3
;;;475    
;;;476        Str_Copy(AppLCDLine4, "  TickRate:   xxxx  ");
0000fa  a1ee              ADR      r1,|L1.1204|
0000fc  f1020015          ADD      r0,r2,#0x15
000100  f7fffffe          BL       Str_Copy
;;;477        value = (CPU_INT32U)OS_TICKS_PER_SEC;
;;;478        AppFormatDec(&AppLCDLine4[14], value, 4);
000104  2204              MOVS     r2,#4
000106  4629              MOV      r1,r5
000108  48f0              LDR      r0,|L1.1228|
00010a  f7fffffe          BL       AppFormatDec
;;;479    
;;;480        Str_Copy(AppLCDLine5, "  CPU Usage:xx %    ");
00010e  a1f0              ADR      r1,|L1.1232|
000110  48f5              LDR      r0,|L1.1256|
000112  f7fffffe          BL       Str_Copy
;;;481        value           = (CPU_INT32U)OSCPUUsage;
000116  48f5              LDR      r0,|L1.1260|
000118  f9900000          LDRSB    r0,[r0,#0]  ; OSCPUUsage
;;;482        AppLCDLine5[12] = (value / 10) + '0';
00011c  4af2              LDR      r2,|L1.1256|
00011e  fbb0f1f4          UDIV     r1,r0,r4
000122  f1010330          ADD      r3,r1,#0x30
000126  7313              STRB     r3,[r2,#0xc]  ; AppLCDLine5
;;;483        AppLCDLine5[13] = (value % 10) + '0';
000128  fb040011          MLS      r0,r4,r1,r0
00012c  3030              ADDS     r0,r0,#0x30
00012e  7350              STRB     r0,[r2,#0xd]  ; AppLCDLine5
;;;484    
;;;485        Str_Copy(AppLCDLine6, "  CPU Speed:xx MHz  ");
000130  a1ef              ADR      r1,|L1.1264|
000132  f1020015          ADD      r0,r2,#0x15
000136  f7fffffe          BL       Str_Copy
;;;486        value           = (CPU_INT32U)BSP_CPU_ClkFreq() / 1000000L;
00013a  f7fffffe          BL       BSP_CPU_ClkFreq
00013e  49f2              LDR      r1,|L1.1288|
000140  fbb0f0f1          UDIV     r0,r0,r1
;;;487        AppLCDLine6[12] = (value / 10) + '0';
000144  fbb0f1f4          UDIV     r1,r0,r4
000148  4af0              LDR      r2,|L1.1292|
00014a  f1010330          ADD      r3,r1,#0x30
00014e  7313              STRB     r3,[r2,#0xc]  ; AppLCDLine6
;;;488        AppLCDLine6[13] = (value % 10) + '0';
000150  fb040011          MLS      r0,r4,r1,r0
000154  3030              ADDS     r0,r0,#0x30
000156  7350              STRB     r0,[r2,#0xd]  ; AppLCDLine6
;;;489    
;;;490        Str_Copy(AppLCDLine7, "  #Ticks: xxxxxxxx  ");
000158  a1ed              ADR      r1,|L1.1296|
00015a  f1020015          ADD      r0,r2,#0x15
00015e  f7fffffe          BL       Str_Copy
;;;491        value = (CPU_INT32U)OSTime;
000162  48f1              LDR      r0,|L1.1320|
000164  6801              LDR      r1,[r0,#0]  ; OSTime
;;;492        AppFormatDec(&AppLCDLine7[10], value, 8);
000166  2208              MOVS     r2,#8
000168  48f0              LDR      r0,|L1.1324|
00016a  f7fffffe          BL       AppFormatDec
;;;493    
;;;494        Str_Copy(AppLCDLine8, "  #CtxSw: xxxxxxxx  ");
00016e  a1f0              ADR      r1,|L1.1328|
000170  48f5              LDR      r0,|L1.1352|
000172  f7fffffe          BL       Str_Copy
;;;495        value = (CPU_INT32U)OSCtxSwCtr;
000176  48f5              LDR      r0,|L1.1356|
000178  6801              LDR      r1,[r0,#0]  ; OSCtxSwCtr
;;;496        AppFormatDec(&AppLCDLine8[10], value, 8);
00017a  2208              MOVS     r2,#8
00017c  48f4              LDR      r0,|L1.1360|
00017e  f7fffffe          BL       AppFormatDec
;;;497    
;;;498        Str_Copy(AppLCDLine9, "                    ");
000182  a1be              ADR      r1,|L1.1148|
000184  48f3              LDR      r0,|L1.1364|
000186  f7fffffe          BL       Str_Copy
;;;499    
;;;500        LCD_SetTextColor(COLOR_BLUE);
00018a  201f              MOVS     r0,#0x1f
00018c  f7fffffe          BL       LCD_SetTextColor
;;;501        LCD_DisplayString(APP_LINE_0, AppLCDLine0);
000190  49b2              LDR      r1,|L1.1116|
000192  2000              MOVS     r0,#0
000194  f7fffffe          BL       LCD_DisplayString
;;;502        LCD_DisplayString(APP_LINE_1, AppLCDLine1);
000198  49b7              LDR      r1,|L1.1144|
00019a  2018              MOVS     r0,#0x18
00019c  f7fffffe          BL       LCD_DisplayString
;;;503        LCD_SetTextColor(COLOR_BLACK);

⌨️ 快捷键说明

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