📄 app.txt
字号:
; generated by ARM/Thumb C/C++ Compiler with , RVCT3.1 [Build 919] for uVision
; commandline ArmCC [--debug -c --asm --interleave -o.\rvmdk\app.o --depend=.\rvmdk\app.d --device=DARMP --apcs=interwork -I. -I..\BSP -I..\..\..\..\..\uCOS-II\Ports\ARM\Generic\RealView -I..\..\..\..\..\uCOS-II\Source -I..\..\..\..\..\uCOSView\Source -I..\..\..\..\..\uCOSView\Ports\ARM7\LPC2000\IAR -I..\..\..\..\..\uC-CPU -I..\..\..\..\..\uC-CPU\ARM\RealView -I..\..\..\..\..\uC-LIB -I..\..\..\..\..\uC-Probe\Target\Plugins\uCOS-II -IC:\Keil\ARM\INC\Philips --omf_browse=.\rvmdk\app.crf app.c]
ARM
AREA ||.text||, CODE, READONLY, ALIGN=2
AppTaskKbd PROC
;;;252 static void AppTaskKbd (void *p_arg)
;;;253 {
000000 e92d4070 PUSH {r4-r6,lr}
;;;254 CPU_BOOLEAN b1; /* State of Push Button #1 */
;;;255 CPU_BOOLEAN b1_prev;
;;;256
;;;257
;;;258 (void)p_arg;
;;;259
;;;260 b1_prev = DEF_FALSE;
000004 e59f61b0 LDR r6,|L1.444|
000008 e3a05000 MOV r5,#0
|L1.12|
;;;261
;;;262 while (DEF_TRUE) {
;;;263
;;;264 b1 = PB_GetStatus(1);
00000c e3a00001 MOV r0,#1
000010 ebfffffe BL PB_GetStatus
;;;265
;;;266 if (b1 == DEF_TRUE && b1_prev == DEF_FALSE) {
000014 e3500001 CMP r0,#1
000018 03550000 CMPEQ r5,#0
00001c e1a04000 MOV r4,r0 ;264
;;;267 OSMboxPost(AppKbdMbox, (void *)1);
000020 05960000 LDREQ r0,[r6,#0] ; AppKbdMbox
000024 03a01001 MOVEQ r1,#1
000028 0bfffffe BLEQ OSMboxPost
;;;268 }
;;;269
;;;270 b1_prev = b1;
;;;271
;;;272 OSTimeDlyHMSM(0, 0, 0, 50);
00002c e3a02000 MOV r2,#0
000030 e1a05004 MOV r5,r4 ;270
000034 e3a03032 MOV r3,#0x32
000038 e1a01002 MOV r1,r2
00003c e1a00002 MOV r0,r2
000040 ebfffffe BL OSTimeDlyHMSM
000044 eafffff0 B |L1.12|
;;;273 }
;;;274 }
;;;275
ENDP
AppTaskStart PROC
;;;139 static void AppTaskStart (void *p_arg)
;;;140 {
000048 e92d40f0 PUSH {r4-r7,lr}
00004c e24dd01c SUB sp,sp,#0x1c
;;;141 CPU_INT32U msg;
;;;142 CPU_INT32U lit;
;;;143 CPU_INT32U i;
;;;144 CPU_INT16U dly;
;;;145
;;;146
;;;147 (void)p_arg;
;;;148
;;;149 BSP_Init(); /* Initialize BSP functions */
000050 ebfffffe BL BSP_Init
;;;150
;;;151 #if (OS_TASK_STAT_EN > 0)
;;;152 OSStatInit(); /* Determine CPU capacity */
000054 ebfffffe BL OSStatInit
;;;153 #endif
;;;154
;;;155 #if (OS_VIEW_MODULE > 0)
;;;156 OSView_Init(38400); /* OSView Init, baud rate = 38400 */
;;;157 OSView_TerminalRxSetCallback(AppTerminalRx);
;;;158 OSView_RxIntEn(); /* Enable Rx Interrupts */
;;;159 #endif
;;;160
;;;161 LED_Off(0); /* Turn OFF all the LEDs */
000058 e3a00000 MOV r0,#0
00005c ebfffffe BL LED_Off
;;;162
;;;163 AppKbdMbox = OSMboxCreate((void *)0); /* Create MBOX for communication between Kbd and Start */
000060 e3a00000 MOV r0,#0
000064 ebfffffe BL OSMboxCreate
000068 e59f614c LDR r6,|L1.444|
;;;164 lit = 1;
00006c e3a05001 MOV r5,#1
000070 e5860000 STR r0,[r6,#0] ; AppKbdMbox
;;;165 dly = ADC_GetStatus(1) / 8 + 16;
000074 e1a00005 MOV r0,r5
000078 ebfffffe BL ADC_GetStatus
00007c e3a01010 MOV r1,#0x10
000080 e08171a0 ADD r7,r1,r0,LSR #3
000084 e59f0134 LDR r0,|L1.448|
000088 e3a03003 MOV r3,#3
00008c e3a02000 MOV r2,#0
000090 e3a01c01 MOV r1,#0x100
000094 e98d000f STMIB sp,{r0-r3}
000098 e3a03007 MOV r3,#7
00009c e2802fff ADD r2,r0,#0x3fc
0000a0 e3a01000 MOV r1,#0
0000a4 e24f00ac ADR r0,AppTaskKbd
0000a8 e58d3000 STR r3,[sp,#0]
0000ac ebfffffe BL OSTaskCreateExt
0000b0 e28d2018 ADD r2,sp,#0x18
0000b4 e28f1f42 ADR r1,|L1.452|
0000b8 e3a00007 MOV r0,#7
0000bc ebfffffe BL OSTaskNameSet
|L1.192|
;;;166
;;;167 AppTaskCreate(); /* Create application tasks */
;;;168
;;;169 while (DEF_TRUE) { /* Task body, always written as an infinite loop. */
;;;170 msg = (CPU_INT32U)OSMboxAccept(AppKbdMbox);
0000c0 e5960000 LDR r0,[r6,#0] ; AppKbdMbox
0000c4 ebfffffe BL OSMboxAccept
;;;171
;;;172 if (msg == 1) {
0000c8 e3500001 CMP r0,#1
0000cc 1a00000c BNE |L1.260|
;;;173 if (lit <= 4) {
0000d0 e3550004 CMP r5,#4
;;;174 lit++;
;;;175 } else {
;;;176 lit = 1;
0000d4 83a05001 MOVHI r5,#1
0000d8 92855001 ADDLS r5,r5,#1 ;174
;;;177 }
;;;178
;;;179 LED_Off(0);
0000dc e3a00000 MOV r0,#0
0000e0 ebfffffe BL LED_Off
;;;180 for (i = 0; i < lit; i++) {
0000e4 e3a04000 MOV r4,#0
0000e8 ea000003 B |L1.252|
|L1.236|
;;;181 LED_On(8 - i);
0000ec e2640008 RSB r0,r4,#8
0000f0 e20000ff AND r0,r0,#0xff
0000f4 ebfffffe BL LED_On
0000f8 e2844001 ADD r4,r4,#1 ;180
|L1.252|
0000fc e1540005 CMP r4,r5 ;180
000100 3afffff9 BCC |L1.236|
|L1.260|
;;;182 }
;;;183 }
;;;184
;;;185 /* for (i = 1; i <= 8; i++) {
;;;186 dly = ADC_GetStatus(1) / 8 + 16;
;;;187 LED_On(i);
;;;188 if (i >= lit + 1) {
;;;189 LED_Off(i - lit);
;;;190 } else {
;;;191 LED_Off(8 + i - lit);
;;;192 }
;;;193 OSTimeDlyHMSM(0, 0, 0, dly);
;;;194 }*/
;;;195
;;;196 OSTimeDlyHMSM(0, 0, 0, dly);
000104 e3a02000 MOV r2,#0
000108 e1a03007 MOV r3,r7
00010c e1a01002 MOV r1,r2
000110 e1a00002 MOV r0,r2
000114 ebfffffe BL OSTimeDlyHMSM
;;;197 LED_Off(1);
000118 e3a00001 MOV r0,#1
00011c ebfffffe BL LED_Off
;;;198 OSTimeDlyHMSM(0, 0, 0, dly);
000120 e3a02000 MOV r2,#0
000124 e1a03007 MOV r3,r7
000128 e1a01002 MOV r1,r2
00012c e1a00002 MOV r0,r2
000130 ebfffffe BL OSTimeDlyHMSM
;;;199 LED_On(1);
000134 e3a00001 MOV r0,#1
000138 ebfffffe BL LED_On
00013c eaffffdf B |L1.192|
;;;200 }
;;;201 }
;;;202
ENDP
main PROC
;;;94 int main (void)
;;;95 {
000140 e52de004 PUSH {lr}
000144 e24dd01c SUB sp,sp,#0x1c
;;;96 CPU_INT08U err;
;;;97
;;;98
;;;99 BSP_IntDisAll(); /* Disable all interrupts until we are ready to accept them */
000148 ebfffffe BL BSP_IntDisAll
;;;100
;;;101 OSInit(); /* Initialize "uC/OS-II, The Real-Time Kernel" */
00014c ebfffffe BL OSInit
;;;102
;;;103 OSTaskCreateExt(AppTaskStart, /* Create the start task */
000150 e59f0078 LDR r0,|L1.464|
000154 e3a03003 MOV r3,#3
000158 e3a02000 MOV r2,#0
00015c e3a01c01 MOV r1,#0x100
000160 e98d000f STMIB sp,{r0-r3}
000164 e3a03005 MOV r3,#5
000168 e2802fff ADD r2,r0,#0x3fc
00016c e3a01000 MOV r1,#0
000170 e24f0e13 ADR r0,AppTaskStart
000174 e58d3000 STR r3,[sp,#0]
000178 ebfffffe BL OSTaskCreateExt
;;;104 (void *)0,
;;;105 (OS_STK *)&AppTaskStartStk[APP_TASK_START_STK_SIZE - 1],
;;;106 APP_TASK_START_PRIO,
;;;107 APP_TASK_START_PRIO,
;;;108 (OS_STK *)&AppTaskStartStk[0],
;;;109 APP_TASK_START_STK_SIZE,
;;;110 (void *)0,
;;;111 OS_TASK_OPT_STK_CHK | OS_TASK_OPT_STK_CLR);
;;;112
;;;113 #if (OS_TASK_NAME_SIZE > 11)
;;;114 OSTaskNameSet(APP_TASK_START_PRIO, "Start Task", &err);
00017c e28d2018 ADD r2,sp,#0x18
000180 e28f104c ADR r1,|L1.468|
000184 e3a00005 MOV r0,#5
000188 ebfffffe BL OSTaskNameSet
;;;115 #endif
;;;116
;;;117 OSStart(); /* Start multitasking (i.e. give control to uC/OS-II) */
00018c ebfffffe BL OSStart
;;;118 }
000190 e28dd01c ADD sp,sp,#0x1c
000194 e49de004 POP {lr}
000198 e3a00000 MOV r0,#0
00019c e12fff1e BX lr
;;;119
ENDP
App_TaskCreateHook PROC
;;;322 #endif
;;;323 }
0001a0 e12fff1e BX lr
;;;324
ENDP
App_TaskDelHook PROC
;;;339 (void)ptcb;
;;;340 }
0001a4 e12fff1e BX lr
;;;341
ENDP
App_TaskIdleHook PROC
;;;357 {
;;;358 }
0001a8 e12fff1e BX lr
;;;359 #endif
ENDP
App_TaskStatHook PROC
;;;373 {
;;;374 }
0001ac e12fff1e BX lr
;;;375
ENDP
App_TaskSwHook PROC
;;;398 #endif
;;;399 }
0001b0 e12fff1e BX lr
;;;400 #endif
ENDP
App_TCBInitHook PROC
;;;418 (void)ptcb;
;;;419 }
0001b4 e12fff1e BX lr
;;;420 #endif
ENDP
App_TimeTickHook PROC
;;;439 #endif
;;;440 }
0001b8 e12fff1e BX lr
;;;441 #endif
ENDP
|L1.444|
0001bc 00000000 DCD ||.data||
|L1.448|
0001c0 00000400 DCD ||.bss||+0x400
|L1.452|
0001c4 4b657962 DCB "Keyb"
0001c8 6f617264 DCB "oard"
0001cc 00000000 DCB "\0\0\0\0"
|L1.464|
0001d0 00000000 DCD ||.bss||
|L1.468|
0001d4 53746172 DCB "Star"
0001d8 74205461 DCB "t Ta"
0001dc 736b0000 DCB "sk\0\0"
AREA ||.data||, DATA, ALIGN=2
AppKbdMbox
000000 00000000 DCD 0x00000000
AREA ||.bss||, DATA, NOINIT, ALIGN=2
AppTaskStartStk
% 1024
AppTaskKbdStk
% 1024
__ARM_use_no_argv EQU 0
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -