📄 app.lst
字号:
389 *
390 * Argument(s) : p_arg Argument passed to 'App_TaskUserIF()' by 'OSTaskCreate()'.
391 *
392 * Return(s) : none.
393 *
394 * Caller(s) : This is a task.
395 *
396 * Note(s) : none.
397 *********************************************************************************************************
398 */
399
\ In segment CODE, align 4, keep-with-next
400 static void App_TaskUserIF (void *p_arg)
401 {
\ App_TaskUserIF:
\ 00000000 31B5 PUSH {R0,R4,R5,LR}
402 CPU_INT08U *msg;
403 CPU_INT08U err;
404 CPU_INT32U nstate;
405 CPU_INT32U pstate;
406
407
408 (void)p_arg;
409
410
411 App_DispScr_SignOn();
\ 00000002 ........ BL App_DispScr_SignOn
412 OSTimeDlyHMSM(0, 0, 1, 0);
\ 00000006 0023 MOVS R3,#+0
\ 00000008 0122 MOVS R2,#+1
\ 0000000A 1946 MOV R1,R3
\ 0000000C 0846 MOV R0,R1
\ 0000000E ........ _BLF OSTimeDlyHMSM,??OSTimeDlyHMSM??rT
413 nstate = 1;
\ 00000012 0125 MOVS R5,#+1
414 pstate = 1;
\ 00000014 2C00 MOVS R4,R5
\ 00000016 01E0 B.N ??App_TaskUserIF_0
415
416
417 while (DEF_TRUE) {
418 msg = (CPU_INT08U *)(OSMboxPend(App_UserIFMbox, OS_TICKS_PER_SEC / 10, &err));
419 if (err == OS_NO_ERR) {
420 nstate = (CPU_INT32U)msg;
421 }
422
423 if (nstate != pstate) {
424 LCD_Clear(APP_COLOR_WHITE);
425 pstate = nstate;
426 }
427
428 switch (nstate) {
429 case 2:
430 App_DispScr_TaskNames();
\ ??App_TaskUserIF_1:
\ 00000018 ........ BL App_DispScr_TaskNames
\ ??App_TaskUserIF_0:
\ 0000001C 6A46 MOV R2,SP
\ 0000001E 6421 MOVS R1,#+100
\ 00000020 .... LDR.N R0,??DataTable2 ;; App_UserIFMbox
\ 00000022 0068 LDR R0,[R0, #+0]
\ 00000024 ........ _BLF OSMboxPend,??OSMboxPend??rT
\ 00000028 9DF80010 LDRB R1,[SP, #+0]
\ 0000002C 0029 CMP R1,#+0
\ 0000002E 00D1 BNE.N ??App_TaskUserIF_2
\ 00000030 0500 MOVS R5,R0
\ ??App_TaskUserIF_2:
\ 00000032 A542 CMP R5,R4
\ 00000034 03D0 BEQ.N ??App_TaskUserIF_3
\ 00000036 0548 LDR.N R0,??App_TaskUserIF_4 ;; 0xffff
\ 00000038 ........ _BLF LCD_Clear,??LCD_Clear??rT
\ 0000003C 2C00 MOVS R4,R5
\ ??App_TaskUserIF_3:
\ 0000003E 2800 MOVS R0,R5
\ 00000040 0228 CMP R0,#+2
\ 00000042 E9D0 BEQ.N ??App_TaskUserIF_1
431 break;
432
433 case 1:
434 default:
435 App_DispScr_SignOn();
\ 00000044 ........ BL App_DispScr_SignOn
\ 00000048 E8E7 B.N ??App_TaskUserIF_0
\ 0000004A 00BF Nop
\ ??App_TaskUserIF_4:
\ 0000004C FFFF0000 DC32 0xffff
436 break;
437 }
438 }
439 }
440
441
442 /*
443 *********************************************************************************************************
444 * App_DispScr_SignOn()
445 *
446 * Description : Display uC/OS-II system information on the LCD.
447 *
448 * Argument(s) : none.
449 *
450 * Return(s) : none.
451 *
452 * Caller(s) : App_TaskUserIF().
453 *
454 * Note(s) : none.
455 *********************************************************************************************************
456 */
457
\ In segment CODE, align 4, keep-with-next
458 static void App_DispScr_SignOn (void)
459 {
\ App_DispScr_SignOn:
\ 00000000 2DE9F043 PUSH {R4-R9,LR}
460 CPU_INT32U value;
461
462
463 Str_Copy(App_LCDLine0, " Micrium uC/OS-II ");
\ 00000004 .... LDR.N R4,??DataTable8 ;; App_LCDLine3
\ 00000006 .... LDR.N R5,??DataTable9 ;; `?<Constant " TickRate: xxxx ">`
\ 00000008 2900 MOVS R1,R5
\ 0000000A D831 ADDS R1,R1,#+216
\ 0000000C 2000 MOVS R0,R4
\ 0000000E 1830 ADDS R0,R0,#+24
\ 00000010 ........ _BLF Str_Copy,??Str_Copy??rT
464 Str_Copy(App_LCDLine1, "ST STM32 (Cortex-M3)");
\ 00000014 2900 MOVS R1,R5
\ 00000016 C031 ADDS R1,R1,#+192
\ 00000018 2000 MOVS R0,R4
\ 0000001A 3030 ADDS R0,R0,#+48
\ 0000001C ........ _BLF Str_Copy,??Str_Copy??rT
465
466 Str_Copy(App_LCDLine2, " ");
\ 00000020 05F2A808 ADDW R8,R5,#+168
\ 00000024 4146 MOV R1,R8
\ 00000026 2000 MOVS R0,R4
\ 00000028 4830 ADDS R0,R0,#+72
\ 0000002A ........ _BLF Str_Copy,??Str_Copy??rT
467
468 Str_Copy(App_LCDLine3, " uC/OS-II: Vx.yy ");
\ 0000002E 2900 MOVS R1,R5
\ 00000030 9031 ADDS R1,R1,#+144
\ 00000032 2000 MOVS R0,R4
\ 00000034 ........ _BLF Str_Copy,??Str_Copy??rT
469 value = (CPU_INT32U)OSVersion();
\ 00000038 ........ _BLF OSVersion,??OSVersion??rT
\ 0000003C 0200 MOVS R2,R0
470 App_LCDLine3[14] = value / 100 + '0';
\ 0000003E 6420 MOVS R0,#+100
\ 00000040 B2FBF0F0 UDIV R0,R2,R0
\ 00000044 3030 ADDS R0,R0,#+48
\ 00000046 A073 STRB R0,[R4, #+14]
471 App_LCDLine3[16] = (value % 100) / 10 + '0';
\ 00000048 1000 MOVS R0,R2
\ 0000004A 6421 MOVS R1,#+100
\ 0000004C ........ _BLF ??divu32_t,??rT??divu32_t
\ 00000050 0A21 MOVS R1,#+10
\ 00000052 B0FBF1F0 UDIV R0,R0,R1
\ 00000056 3030 ADDS R0,R0,#+48
\ 00000058 2074 STRB R0,[R4, #+16]
472 App_LCDLine3[17] = (value % 10) + '0';
\ 0000005A 1000 MOVS R0,R2
\ 0000005C ........ _BLF ??divu32_t,??rT??divu32_t
\ 00000060 3030 ADDS R0,R0,#+48
\ 00000062 6074 STRB R0,[R4, #+17]
473
474 Str_Copy(App_LCDLine4, " TickRate: xxxx ");
\ 00000064 2900 MOVS R1,R5
\ 00000066 2000 MOVS R0,R4
\ 00000068 6030 ADDS R0,R0,#+96
\ 0000006A ........ _BLF Str_Copy,??Str_Copy??rT
475 value = (CPU_INT32U)OS_TICKS_PER_SEC;
476 App_FormatDec(&App_LCDLine4[14], value, 4);
\ 0000006E 0422 MOVS R2,#+4
\ 00000070 5FF47A71 MOVS R1,#+1000
\ 00000074 2000 MOVS R0,R4
\ 00000076 6E30 ADDS R0,R0,#+110
\ 00000078 ........ BL App_FormatDec
477
478 Str_Copy(App_LCDLine5, " CPU Usage:xx % ");
\ 0000007C .... LDR.N R6,??DataTable12 ;; App_LCDLine5
\ 0000007E 2900 MOVS R1,R5
\ 00000080 7831 ADDS R1,R1,#+120
\ 00000082 3000 MOVS R0,R6
\ 00000084 ........ _BLF Str_Copy,??Str_Copy??rT
479 value = (CPU_INT32U)OSCPUUsage;
\ 00000088 3848 LDR.N R0,??App_DispScr_SignOn_0 ;; OSCPUUsage
\ 0000008A 0078 LDRB R0,[R0, #+0]
480 App_LCDLine5[12] = (value / 10) + '0';
\ 0000008C 0A21 MOVS R1,#+10
\ 0000008E B0FBF1F1 UDIV R1,R0,R1
\ 00000092 3031 ADDS R1,R1,#+48
\ 00000094 3173 STRB R1,[R6, #+12]
481 App_LCDLine5[13] = (value % 10) + '0';
\ 00000096 0A21 MOVS R1,#+10
\ 00000098 ........ _BLF ??divu32_t,??rT??divu32_t
\ 0000009C 3030 ADDS R0,R0,#+48
\ 0000009E 7073 STRB R0,[R6, #+13]
482
483 Str_Copy(App_LCDLine6, " CPU Speed:xx MHz ");
\ 000000A0 .... LDR.N R7,??DataTable10 ;; App_LCDLine6
\ 000000A2 2900 MOVS R1,R5
\ 000000A4 6031 ADDS R1,R1,#+96
\ 000000A6 3800 MOVS R0,R7
\ 000000A8 ........ _BLF Str_Copy,??Str_Copy??rT
484 value = (CPU_INT32U)BSP_CPU_ClkFreq() / 1000000L;
\ 000000AC ........ _BLF BSP_CPU_ClkFreq,??BSP_CPU_ClkFreq??rT
\ 000000B0 2F49 LDR.N R1,??App_DispScr_SignOn_0+0x4 ;; 0xf4240
\ 000000B2 B0FBF1F0 UDIV R0,R0,R1
485 App_LCDLine6[12] = (value / 10) + '0';
\ 000000B6 0A21 MOVS R1,#+10
\ 000000B8 B0FBF1F1 UDIV R1,R0,R1
\ 000000BC 3031 ADDS R1,R1,#+48
\ 000000BE 3973 STRB R1,[R7, #+12]
486 App_LCDLine6[13] = (value % 10) + '0';
\ 000000C0 0A21 MOVS R1,#+10
\ 000000C2 ........ _BLF ??divu32_t,??rT??divu32_t
\ 000000C6 3030 ADDS R0,R0,#+48
\ 000000C8 7873 STRB R0,[R7, #+13]
487
488 Str_Copy(App_LCDLine7, " #Ticks: xxxxxxxx ");
\ 000000CA 2900 MOVS R1,R5
\ 000000CC 4831 ADDS R1,R1,#+72
\ 000000CE 2000 MOVS R0,R4
\ 000000D0 7830 ADDS R0,R0,#+120
\ 000000D2 ........ _BLF Str_Copy,??Str_Copy??rT
489 value = (CPU_INT32U)OSTime;
\ 000000D6 .... LDR.N R0,??DataTable13 ;; OSTime
\ 000000D8 0168 LDR R1,[R0, #+0]
490 App_FormatDec(&App_LCDLine7[10], value, 8);
\ 000000DA 0822 MOVS R2,#+8
\ 000000DC 2000 MOVS R0,R4
\ 000000DE 8230 ADDS R0,R0,#+130
\ 000000E0 ........ BL App_FormatDec
491
492 Str_Copy(App_LCDLine8, " #CtxSw: xxxxxxxx ");
\ 000000E4 04F29009 ADDW R9,R4,#+144
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -