📄 app.txt
字号:
; generated by ARM/Thumb C/C++ Compiler with , RVCT3.1 [Build 903] for uVision
; commandline ArmCC [--debug -c --asm --interleave -oapp.o --depend=app.d --device=DARMP --apcs=interwork -I. -I..\BSP -I..\..\..\..\..\uCOS-II\Ports\ARM\Generic\RVMDK -I..\..\..\..\..\uCOS-II\Source -I..\..\..\..\..\uC-CPU -I..\..\..\..\..\uC-CPU\ARM\RVMDK -I..\..\..\..\..\uC-LIB -I..\..\..\..\..\uCOSView\Source -I..\..\..\..\..\uCOSView\Ports\ARM7\LPC2468\IAR -Id:\Keil\ARM\INC\Philips app.c]
ARM
AREA ||.text||, CODE, READONLY, ALIGN=2
AppTaskKbd PROC
;;;213 static void AppTaskKbd (void *p_arg)
;;;214 {
000000 e92d5ff0 PUSH {r4-r12,lr}
;;;215 CPU_BOOLEAN b1; /* State of Push Button #1 */
;;;216 CPU_BOOLEAN b1_prev;
;;;217 CPU_BOOLEAN b2; /* State of Push Button #2 */
;;;218 CPU_BOOLEAN b2_prev;
;;;219 CPU_BOOLEAN b3; /* State of Push Button #3 */
;;;220 CPU_BOOLEAN b3_prev;
;;;221 CPU_BOOLEAN b4; /* State of Push Button #4 */
;;;222 CPU_BOOLEAN b4_prev;
;;;223
;;;224
;;;225 (void)p_arg;
;;;226
;;;227 b1_prev = DEF_FALSE;
000004 e3a05000 MOV r5,#0
;;;228 b2_prev = DEF_FALSE;
000008 e3a07000 MOV r7,#0
;;;229 b3_prev = DEF_FALSE;
00000c e3a09000 MOV r9,#0
;;;230 b4_prev = DEF_FALSE;
000010 e3a0b000 MOV r11,#0
;;;231
;;;232 while (DEF_TRUE) {
000014 ea000031 B |L1.224|
|L1.24|
;;;233
;;;234 b1 = PB_GetStatus(1);
000018 e3a00001 MOV r0,#1
00001c ebfffffe BL PB_GetStatus
000020 e1a04000 MOV r4,r0
;;;235 b2 = PB_GetStatus(2);
000024 e3a00002 MOV r0,#2
000028 ebfffffe BL PB_GetStatus
00002c e1a06000 MOV r6,r0
;;;236 b3 = PB_GetStatus(3);
000030 e3a00003 MOV r0,#3
000034 ebfffffe BL PB_GetStatus
000038 e1a08000 MOV r8,r0
;;;237 b4 = PB_GetStatus(4);
00003c e3a00004 MOV r0,#4
000040 ebfffffe BL PB_GetStatus
000044 e1a0a000 MOV r10,r0
;;;238
;;;239 if (b1 == DEF_TRUE && b1_prev == DEF_FALSE) {
000048 e3540001 CMP r4,#1
00004c 1a000005 BNE |L1.104|
000050 e3550000 CMP r5,#0
000054 1a000003 BNE |L1.104|
;;;240
;;;241 OSQPost(AppKbdQ, (CPU_INT32U *)1);
000058 e3a01001 MOV r1,#1
00005c e59f02d0 LDR r0,|L1.820|
000060 e5900000 LDR r0,[r0,#0] ; AppKbdQ
000064 ebfffffe BL OSQPost
|L1.104|
;;;242 }
;;;243
;;;244 if (b2 == DEF_TRUE && b2_prev == DEF_FALSE) {
000068 e3560001 CMP r6,#1
00006c 1a000005 BNE |L1.136|
000070 e3570000 CMP r7,#0
000074 1a000003 BNE |L1.136|
;;;245
;;;246 OSQPost(AppKbdQ, (CPU_INT32U *)2);
000078 e3a01002 MOV r1,#2
00007c e59f02b0 LDR r0,|L1.820|
000080 e5900000 LDR r0,[r0,#0] ; AppKbdQ
000084 ebfffffe BL OSQPost
|L1.136|
;;;247 }
;;;248
;;;249 if (b3 == DEF_TRUE && b3_prev == DEF_FALSE) {
000088 e3580001 CMP r8,#1
00008c 1a000005 BNE |L1.168|
000090 e3590000 CMP r9,#0
000094 1a000003 BNE |L1.168|
;;;250
;;;251 OSQPost(AppKbdQ, (CPU_INT32U *)3);
000098 e3a01003 MOV r1,#3
00009c e59f0290 LDR r0,|L1.820|
0000a0 e5900000 LDR r0,[r0,#0] ; AppKbdQ
0000a4 ebfffffe BL OSQPost
|L1.168|
;;;252 }
;;;253
;;;254 if (b4 == DEF_TRUE && b4_prev == DEF_FALSE) {
0000a8 e35a0001 CMP r10,#1
0000ac 1a000005 BNE |L1.200|
0000b0 e35b0000 CMP r11,#0
0000b4 1a000003 BNE |L1.200|
;;;255
;;;256 OSQPost(AppKbdQ, (CPU_INT32U *)4);
0000b8 e3a01004 MOV r1,#4
0000bc e59f0270 LDR r0,|L1.820|
0000c0 e5900000 LDR r0,[r0,#0] ; AppKbdQ
0000c4 ebfffffe BL OSQPost
|L1.200|
;;;257 }
;;;258
;;;259 b1_prev = b1;
0000c8 e1a05004 MOV r5,r4
;;;260 b2_prev = b2;
0000cc e1a07006 MOV r7,r6
;;;261 b3_prev = b3;
0000d0 e1a09008 MOV r9,r8
;;;262 b4_prev = b4;
0000d4 e1a0b00a MOV r11,r10
;;;263
;;;264 OSTimeDly(OS_TICKS_PER_SEC / 10);
0000d8 e3a00064 MOV r0,#0x64
0000dc ebfffffe BL OSTimeDly
|L1.224|
0000e0 eaffffcc B |L1.24|
;;;265
;;;266 }
;;;267 }
ENDP
AppTaskCreate PROC
;;;282 static void AppTaskCreate (void)
;;;283 {
0000e4 e52de004 PUSH {lr}
0000e8 e24dd01c SUB sp,sp,#0x1c
;;;284 CPU_INT08U err;
;;;285
;;;286
;;;287 OSTaskCreateExt(AppTaskKbd,
0000ec e3a03003 MOV r3,#3
0000f0 e3a02000 MOV r2,#0
0000f4 e3a01c02 MOV r1,#0x200
0000f8 e59f0238 LDR r0,|L1.824|
0000fc e98d000f STMIB sp,{r0-r3}
000100 e3a03002 MOV r3,#2
000104 e59f2230 LDR r2,|L1.828|
000108 e3a01000 MOV r1,#0
00010c e24f0f45 ADR r0,AppTaskKbd
000110 e58d3000 STR r3,[sp,#0]
000114 ebfffffe BL OSTaskCreateExt
;;;288 (void *)0,
;;;289 (OS_STK *)&AppTaskKbdStk[APP_TASK_KBD_STK_SIZE - 1],
;;;290 APP_TASK_KBD_PRIO,
;;;291 APP_TASK_KBD_PRIO,
;;;292 (OS_STK *)&AppTaskKbdStk[0],
;;;293 APP_TASK_KBD_STK_SIZE,
;;;294 (void *)0,
;;;295 OS_TASK_OPT_STK_CHK | OS_TASK_OPT_STK_CLR);
;;;296
;;;297 #if OS_TASK_NAME_SIZE > 9
;;;298 OSTaskNameSet(APP_TASK_KBD_PRIO, "Keyboard", &err);
000118 e28d2018 ADD r2,sp,#0x18
00011c e28f1f87 ADR r1,|L1.832|
000120 e3a00002 MOV r0,#2
000124 ebfffffe BL OSTaskNameSet
;;;299 #endif
;;;300 }
000128 e28dd01c ADD sp,sp,#0x1c
00012c e49de004 POP {lr}
000130 e12fff1e BX lr
ENDP
AppTerminalRx PROC
;;;317
;;;318 }
000134 e12fff1e BX lr
ENDP
AppTaskStart PROC
;;;120 static void AppTaskStart (void *p_arg)
;;;121 {
000138 e92d5ffc PUSH {r2-r12,lr}
;;;122 CPU_INT08U i;
;;;123 CPU_INT08U j;
;;;124 void *msg;
;;;125 CPU_INT08U err;
;;;126 CPU_INT08U led;
;;;127 CPU_INT32U leds;
;;;128 CPU_INT32U delay0;
;;;129 CPU_INT32U delay1;
;;;130
;;;131
;;;132 (void)p_arg;
;;;133
;;;134 BSP_Init(); /* Initialize BSP functions */
00013c ebfffffe BL BSP_Init
;;;135
;;;136 #if OS_TASK_STAT_EN > 0
;;;137 OSStatInit(); /* Determine CPU capacity */
000140 ebfffffe BL OSStatInit
;;;138 #endif
;;;139
;;;140 #if OS_VIEW_MODULE > 0
;;;141 OSView_Init(115200); /* OSView Init, baud rate = 115200 */
000144 e59f0200 LDR r0,|L1.844|
000148 ebfffffe BL OSView_Init
;;;142 OSView_TerminalRxSetCallback(AppTerminalRx);
00014c e24f0020 ADR r0,AppTerminalRx
000150 ebfffffe BL OSView_TerminalRxSetCallback
;;;143 OSView_RxIntEn(); /* Enable Rx Interrupts */
000154 ebfffffe BL OSView_RxIntEn
;;;144 #endif
;;;145
;;;146 LED_Off(0); /* Turn OFF all the LEDs */
000158 e3a00000 MOV r0,#0
00015c ebfffffe BL LED_Off
;;;147
;;;148
;;;149 AppKbdQ = OSQCreate(AppKbdQStorage, 16); /* Create Q for communication between Kbd and Ser */
000160 e3a01010 MOV r1,#0x10
000164 e59f01e4 LDR r0,|L1.848|
000168 ebfffffe BL OSQCreate
00016c e59f11c0 LDR r1,|L1.820|
000170 e5810000 STR r0,[r1,#0] ; AppKbdQ
;;;150 AppTaskCreate(); /* Create application tasks */
000174 ebfffffe BL AppTaskCreate
;;;151
;;;152
;;;153 while (DEF_TRUE) { /* Task body, always written as an infinite loop. */
000178 ea00006c B |L1.816|
|L1.380|
;;;154
;;;155 for (i = 1; i <= 4; i++) { /* Turn on each LED, one by one, delaying between */
00017c e3a04001 MOV r4,#1
000180 ea000015 B |L1.476|
|L1.388|
;;;156 LED_On(i);
000184 e1a00004 MOV r0,r4
000188 ebfffffe BL LED_On
;;;157 delay0 = ADC_GetStatus(0) + 32;
00018c e3a00000 MOV r0,#0
000190 ebfffffe BL ADC_GetStatus
000194 e2800020 ADD r0,r0,#0x20
000198 e58d0000 STR r0,[sp,#0]
;;;158 OSTimeDlyHMSM(0, 0, delay0 / 1000, delay0 % 1000);
00019c e3a01ffa MOV r1,#0x3e8
0001a0 e59d0000 LDR r0,[sp,#0]
0001a4 ebfffffe BL __aeabi_uidivmod
0001a8 e1a0a801 LSL r10,r1,#16
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -