📄 main.txt
字号:
; generated by ARM/Thumb C/C++ Compiler with , RVCT3.0 [Build 951] for uVision
; commandline ArmCC [--debug -c --asm --interleave -omain.o --device=DARMP --apcs=interwork -O0 -IC:\Keil\ARM\INC\Philips APP\main.c]
ARM
AREA ||.text.7||, CODE, READONLY, ALIGN=2
RTC_TASK PROC
;;;401 void RTC_TASK(void *pdata)
;;;402 {
000000 e92d4010 PUSH {r4,lr}
000004 e24dd048 SUB sp,sp,#0x48
000008 e1a04000 MOV r4,r0
;;;403 RTCTime Time ;
;;;404 char Display[9],DisplayDATE[11];
;;;405
;;;406 // uint8 Wait_Signal0;
;;;407 pdata = pdata; /*防止编译器警告 */
00000c e1a00000 MOV r0,r0
;;;408 Time.RTC_Sec = 0; /* 秒 - [0,59] */
000010 e3a00000 MOV r0,#0
000014 e58d0028 STR r0,[sp,#0x28]
;;;409 Time.RTC_Min = 0; /* 分 - [0,59] */
000018 e58d002c STR r0,[sp,#0x2c]
;;;410 Time.RTC_Hour = 0; /* 小时 - [0,23] */
00001c e58d0030 STR r0,[sp,#0x30]
;;;411 Time.RTC_Mday = 25; /* 当月天数- [1,31] */
000020 e3a00019 MOV r0,#0x19
000024 e58d0034 STR r0,[sp,#0x34]
;;;412 Time.RTC_Mon = 4; /* 月 - [1,12] */
000028 e3a00004 MOV r0,#4
00002c e58d0038 STR r0,[sp,#0x38]
;;;413 Time.RTC_Year = 2007; /* 年 - [0,4095] */
000030 e59f04dc LDR r0,|L1.1300|
000034 e58d003c STR r0,[sp,#0x3c]
;;;414 Time.RTC_Wday = 2; /* 星期- [0,6] */
000038 e3a00002 MOV r0,#2
00003c e58d0040 STR r0,[sp,#0x40]
;;;415 Time.RTC_Yday = 156; /* 当年天数 - [1,365] */
000040 e3a0009c MOV r0,#0x9c
000044 e58d0044 STR r0,[sp,#0x44]
;;;416 TargetInit(); /*硬件初始化 */
000048 ebfffffe BL TargetInit
;;;417 RTCInit(); /**/
00004c ebfffffe BL RTCInit
;;;418 RTCSetTime(Time);
000050 e28d1038 ADD r1,sp,#0x38
000054 e1a0000d MOV r0,sp
000058 e891101c LDM r1,{r2-r4,r12}
00005c e880101c STM r0,{r2-r4,r12}
000060 e28d3028 ADD r3,sp,#0x28
000064 e893000f LDM r3,{r0-r3}
000068 ebfffffe BL RTCSetTime
;;;419 RTCStart();
00006c ebfffffe BL RTCStart
;;;420
;;;421 while(1)
000070 ea00007c B |L1.616|
;;;422 {
;;;423
;;;424 // OSSemPend(DispSem,0,&Wait_Signal0); /*等待信号量 */
;;;425 Time = RTCGetTime();
|L1.116|
000074 e28d0028 ADD r0,sp,#0x28
000078 ebfffffe BL RTCGetTime
;;;426 Display[0] = ((uint8)Time.RTC_Hour/10)+48;
00007c e59d1030 LDR r1,[sp,#0x30]
000080 e20100ff AND r0,r1,#0xff
000084 e3a0100a MOV r1,#0xa
000088 ebfffffe BL __aeabi_idivmod
00008c e2800030 ADD r0,r0,#0x30
000090 e5cd001c STRB r0,[sp,#0x1c]
;;;427 Display[1] = ((uint8)Time.RTC_Hour%10)+48;
000094 e59d1030 LDR r1,[sp,#0x30]
000098 e20100ff AND r0,r1,#0xff
00009c e3a0100a MOV r1,#0xa
0000a0 ebfffffe BL __aeabi_idivmod
0000a4 e2810030 ADD r0,r1,#0x30
0000a8 e5cd001d STRB r0,[sp,#0x1d]
;;;428 Display[2] = ':';
0000ac e3a0003a MOV r0,#0x3a
0000b0 e5cd001e STRB r0,[sp,#0x1e]
;;;429 Display[3] = ((uint8)Time.RTC_Min/10)+48;
0000b4 e59d102c LDR r1,[sp,#0x2c]
0000b8 e20100ff AND r0,r1,#0xff
0000bc e3a0100a MOV r1,#0xa
0000c0 ebfffffe BL __aeabi_idivmod
0000c4 e2800030 ADD r0,r0,#0x30
0000c8 e5cd001f STRB r0,[sp,#0x1f]
;;;430 Display[4] = ((uint8)Time.RTC_Min%10)+48;
0000cc e59d102c LDR r1,[sp,#0x2c]
0000d0 e20100ff AND r0,r1,#0xff
0000d4 e3a0100a MOV r1,#0xa
0000d8 ebfffffe BL __aeabi_idivmod
0000dc e2810030 ADD r0,r1,#0x30
0000e0 e5cd0020 STRB r0,[sp,#0x20]
;;;431 Display[5] = ':';
0000e4 e3a0003a MOV r0,#0x3a
0000e8 e5cd0021 STRB r0,[sp,#0x21]
;;;432 Display[6] = ((uint8)Time.RTC_Sec/10)+48;
0000ec e59d1028 LDR r1,[sp,#0x28]
0000f0 e20100ff AND r0,r1,#0xff
0000f4 e3a0100a MOV r1,#0xa
0000f8 ebfffffe BL __aeabi_idivmod
0000fc e2800030 ADD r0,r0,#0x30
000100 e5cd0022 STRB r0,[sp,#0x22]
;;;433 Display[7] = ((uint8)Time.RTC_Sec%10)+48;
000104 e59d1028 LDR r1,[sp,#0x28]
000108 e20100ff AND r0,r1,#0xff
00010c e3a0100a MOV r1,#0xa
000110 ebfffffe BL __aeabi_idivmod
000114 e2810030 ADD r0,r1,#0x30
000118 e5cd0023 STRB r0,[sp,#0x23]
;;;434 Display[8] = '\0';
00011c e3a00000 MOV r0,#0
000120 e5cd0024 STRB r0,[sp,#0x24]
;;;435 DisplayDATE[0] =((uint8) Time.RTC_Year/1000)+48;
000124 e59d103c LDR r1,[sp,#0x3c]
000128 e20100ff AND r0,r1,#0xff
00012c e3a01ffa MOV r1,#0x3e8
000130 ebfffffe BL __aeabi_idivmod
000134 e2800030 ADD r0,r0,#0x30
000138 e5cd0010 STRB r0,[sp,#0x10]
;;;436 Time.RTC_Mday=Time.RTC_Mday%1000;
00013c e3a01ffa MOV r1,#0x3e8
000140 e59d0034 LDR r0,[sp,#0x34]
000144 ebfffffe BL __aeabi_uidivmod
000148 e58d1034 STR r1,[sp,#0x34]
;;;437 DisplayDATE[1] =((uint8) Time.RTC_Year/100)+48;
00014c e59d103c LDR r1,[sp,#0x3c]
000150 e20100ff AND r0,r1,#0xff
000154 e3a01064 MOV r1,#0x64
000158 ebfffffe BL __aeabi_idivmod
00015c e2800030 ADD r0,r0,#0x30
000160 e5cd0011 STRB r0,[sp,#0x11]
;;;438 Time.RTC_Mday=Time.RTC_Mday%100;
000164 e3a01064 MOV r1,#0x64
000168 e59d0034 LDR r0,[sp,#0x34]
00016c ebfffffe BL __aeabi_uidivmod
000170 e58d1034 STR r1,[sp,#0x34]
;;;439 DisplayDATE[2] =((uint8) Time.RTC_Year/10)+48;
000174 e59d103c LDR r1,[sp,#0x3c]
000178 e20100ff AND r0,r1,#0xff
00017c e3a0100a MOV r1,#0xa
000180 ebfffffe BL __aeabi_idivmod
000184 e2800030 ADD r0,r0,#0x30
000188 e5cd0012 STRB r0,[sp,#0x12]
;;;440 Time.RTC_Mday=Time.RTC_Mday%10;
00018c e3a0100a MOV r1,#0xa
000190 e59d0034 LDR r0,[sp,#0x34]
000194 ebfffffe BL __aeabi_uidivmod
000198 e58d1034 STR r1,[sp,#0x34]
;;;441 DisplayDATE[3] =((uint8)Time.RTC_Year)+48;
00019c e59d003c LDR r0,[sp,#0x3c]
0001a0 e2800030 ADD r0,r0,#0x30
0001a4 e5cd0013 STRB r0,[sp,#0x13]
;;;442 DisplayDATE[4]=':';
0001a8 e3a0003a MOV r0,#0x3a
0001ac e5cd0014 STRB r0,[sp,#0x14]
;;;443 DisplayDATE[5] = ((uint8)Time.RTC_Mon/10)+48;
0001b0 e59d1038 LDR r1,[sp,#0x38]
0001b4 e20100ff AND r0,r1,#0xff
0001b8 e3a0100a MOV r1,#0xa
0001bc ebfffffe BL __aeabi_idivmod
0001c0 e2800030 ADD r0,r0,#0x30
0001c4 e5cd0015 STRB r0,[sp,#0x15]
;;;444 DisplayDATE[6] = ((uint8)Time.RTC_Mon%10)+48;
0001c8 e59d1038 LDR r1,[sp,#0x38]
0001cc e20100ff AND r0,r1,#0xff
0001d0 e3a0100a MOV r1,#0xa
0001d4 ebfffffe BL __aeabi_idivmod
0001d8 e2810030 ADD r0,r1,#0x30
0001dc e5cd0016 STRB r0,[sp,#0x16]
;;;445 DisplayDATE[7]=':';
0001e0 e3a0003a MOV r0,#0x3a
0001e4 e5cd0017 STRB r0,[sp,#0x17]
;;;446 DisplayDATE[8] = ((uint8)Time.RTC_Mday/10)+48;
0001e8 e59d1034 LDR r1,[sp,#0x34]
0001ec e20100ff AND r0,r1,#0xff
0001f0 e3a0100a MOV r1,#0xa
0001f4 ebfffffe BL __aeabi_idivmod
0001f8 e2800030 ADD r0,r0,#0x30
0001fc e5cd0018 STRB r0,[sp,#0x18]
;;;447 DisplayDATE[9] = ((uint8)Time.RTC_Mday%10)+48;
000200 e59d1034 LDR r1,[sp,#0x34]
000204 e20100ff AND r0,r1,#0xff
000208 e3a0100a MOV r1,#0xa
00020c ebfffffe BL __aeabi_idivmod
000210 e2810030 ADD r0,r1,#0x30
000214 e5cd0019 STRB r0,[sp,#0x19]
;;;448 DisplayDATE[10] = '\0';
000218 e3a00000 MOV r0,#0
00021c e5cd001a STRB r0,[sp,#0x1a]
;;;449 GUI_PutString(8, 15, "Date is:"); //
000220 e28f2e2f ADR r2,|L1.1304|
000224 e3a0100f MOV r1,#0xf
000228 e3a00008 MOV r0,#8
00022c ebfffffe BL GUI_PutString
;;;450 GUI_PutString(8, 25, &DisplayDATE[0]);
000230 e28d2010 ADD r2,sp,#0x10
000234 e3a01019 MOV r1,#0x19
000238 e3a00008 MOV r0,#8
00023c ebfffffe BL GUI_PutString
;;;451 GUI_PutString(8, 30, "Time is:"); //
000240 e28f2fb7 ADR r2,|L1.1316|
000244 e3a0101e MOV r1,#0x1e
000248 e3a00008 MOV r0,#8
00024c ebfffffe BL GUI_PutString
;;;452 GUI_PutString(8, 40, &Display[0]);
000250 e28d201c ADD r2,sp,#0x1c
000254 e3a01028 MOV r1,#0x28
000258 e3a00008 MOV r0,#8
00025c ebfffffe BL GUI_PutString
;;;453 // GUI_Picture(0, 0,97,66,BMP);
;;;454
;;;455 OSTimeDly(100);
000260 e3a00064 MOV r0,#0x64
000264 ebfffffe BL OSTimeDly
|L1.616|
000268 eaffff81 B |L1.116| ;421
;;;456 // Wait_Signal0 = OSSemPost(DispSem); /*发送信号量 */
;;;457 }
;;;458 }
ENDP
Task3 PROC
;;;365 void Task3(void *pdata)
;;;366 {
00026c e92d4070 PUSH {r4-r6,lr}
000270 e1a05000 MOV r5,r0
;;;367 uint8 *snd="12a";
000274 e28f4fad ADR r4,|L1.1328|
;;;368
;;;369 pdata = pdata;
000278 e1a00000 MOV r0,r0
;;;370
;;;371 while(1)
00027c ea000008 B |L1.676|
;;;372 {
;;;373 UART0_SendStr(snd);
|L1.640|
000280 e1a00004 MOV r0,r4
000284 ebfffffe BL UART0_SendStr
;;;374 IO1CLR =(1<<25);
000288 e3a00402 MOV r0,#0x2000000
00028c e59f12a0 LDR r1,|L1.1332|
000290 e581001c STR r0,[r1,#0x1c]
;;;375 IO1CLR =(1<<23);
000294 e3a00502 MOV r0,#0x800000
000298 e581001c STR r0,[r1,#0x1c]
;;;376 // IO0CLR=(1<<11);
;;;377
;;;378 OSTimeDly(100);
00029c e3a00064 MOV r0,#0x64
0002a0 ebfffffe BL OSTimeDly
|L1.676|
0002a4 eafffff5 B |L1.640| ;371
;;;379 }
;;;380 }
ENDP
Task2 PROC
;;;350 void Task2(void *pdata)
;;;351 {
0002a8 e92d4070 PUSH {r4-r6,lr}
0002ac e1a06000 MOV r6,r0
;;;352 int temp;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -