📄 main.txt
字号:
00077c e28d2018 ADD r2,sp,#0x18
000780 e3a01000 MOV r1,#0
000784 e59f01a8 LDR r0,|L1.2356|
000788 e5900000 LDR r0,[r0,#0] ; KeyMbox
00078c ebfffffe BL OSMboxPend
000790 e1a04000 MOV r4,r0
;;;242
;;;243 if( ((int)key==KEY_LEFT)||
000794 e3540001 CMP r4,#1
000798 0a000001 BEQ |L1.1956|
;;;244 ((int)key==KEY_RIGHT) )
00079c e3540002 CMP r4,#2
0007a0 1a000001 BNE |L1.1964|
;;;245 { select = 1- select;
|L1.1956|
0007a4 e2650001 RSB r0,r5,#1
0007a8 e20050ff AND r5,r0,#0xff
;;;246 }
;;;247
;;;248 if((int)key==KEY_OK)
|L1.1964|
0007ac e3540004 CMP r4,#4
0007b0 1a000004 BNE |L1.1992|
;;;249 { GUI_WindowsHide(&message); // 清除窗口显示
0007b4 e1a0000d MOV r0,sp
0007b8 ebfffffe BL GUI_WindowsHide
;;;250 return;
;;;251 }
;;;252 OSTimeDly(10);
;;;253 }
;;;254 }
0007bc e28dd01c ADD sp,sp,#0x1c
0007c0 e8bd4030 POP {r4,r5,lr}
0007c4 e12fff1e BX lr
|L1.1992|
0007c8 e3a0000a MOV r0,#0xa ;252
0007cc ebfffffe BL OSTimeDly ;252
|L1.2000|
0007d0 eaffffda B |L1.1856| ;229
ENDP
MenuIcoInit PROC
;;;267
;;;268 for(i=0; i<8; i++)
0007d4 e3a00000 MOV r0,#0
0007d8 ea000014 B |L1.2096|
;;;269 { /* 初始化为末选中状态 */
;;;270 mainmenu[i].state = 0;
|L1.2012|
0007dc e3a01000 MOV r1,#0
0007e0 e0802080 ADD r2,r0,r0,LSL #1
0007e4 e51f32b0 LDR r3,|L1.1340|
0007e8 e0832182 ADD r2,r3,r2,LSL #3
0007ec e5c21010 STRB r1,[r2,#0x10]
;;;271
;;;272 /* 连接相应的图标数据 */
;;;273 mainmenu[i].icodat = (uint8 *) pic_all[i][0];
0007f0 e59f1154 LDR r1,|L1.2380|
0007f4 e7911180 LDR r1,[r1,r0,LSL #3]
0007f8 e0802080 ADD r2,r0,r0,LSL #1
0007fc e0832182 ADD r2,r3,r2,LSL #3
000800 e5821008 STR r1,[r2,#8]
;;;274 mainmenu[i].title = (uint8 *) pic_all[i][1];
000804 e59f1140 LDR r1,|L1.2380|
000808 e0811180 ADD r1,r1,r0,LSL #3
00080c e5911004 LDR r1,[r1,#4]
000810 e0802080 ADD r2,r0,r0,LSL #1
000814 e0832182 ADD r2,r3,r2,LSL #3
000818 e582100c STR r1,[r2,#0xc]
;;;275
;;;276 /* 连接菜单功能函数 */
;;;277 mainmenu[i].Function = ( void(*) (void) ) DemoMessage;
00081c e24f1f4a ADR r1,|L1.1788|
000820 e0802080 ADD r2,r0,r0,LSL #1
000824 e0832182 ADD r2,r3,r2,LSL #3
000828 e5821014 STR r1,[r2,#0x14]
00082c e2800001 ADD r0,r0,#1 ;268
|L1.2096|
000830 e3500008 CMP r0,#8 ;268
000834 baffffe8 BLT |L1.2012| ;268
;;;278 }
;;;279 }
000838 e12fff1e BX lr
ENDP
Task0 PROC
;;;309 void Task0(void *pdata)
;;;310 {
|L1.2108|
00083c e92d4070 PUSH {r4-r6,lr}
000840 e1a05000 MOV r5,r0
;;;311 uint8 select;
;;;312 pdata = pdata;
000844 e1a00000 MOV r0,r0
;;;313 TargetInit ();
000848 ebfffffe BL TargetInit
;;;314
;;;315
;;;316 /* 初始化ZLG/GUI */
;;;317 GUI_Initialize();
00084c ebfffffe BL GUI_Initialize
;;;318 GUI_SetColor(1, 0) ;
000850 e3a01000 MOV r1,#0
000854 e3a00001 MOV r0,#1
000858 ebfffffe BL GUI_SetColor
;;;319
;;;320 /* 图标菜单初始化 */
;;;321 MenuIcoInit();
00085c ebfffffe BL MenuIcoInit
;;;322
;;;323 /* 显示窗口 */
;;;324 DrawMainWindow();
000860 ebfffffe BL DrawMainWindow
;;;325
;;;326 /* 循环调用图标菜单操作,并执行相应功能 */
;;;327 while(1)
000864 ea00000b B |L1.2200|
;;;328 { select = SelectMenuIco(); // 选择菜单
|L1.2152|
000868 ebfffffe BL SelectMenuIco
00086c e1a04000 MOV r4,r0
;;;329
;;;330 if(select<8)
000870 e3540008 CMP r4,#8
000874 aa000005 BGE |L1.2192|
;;;331 { (*mainmenu[select].Function)(); // 执行功能
000878 e0841084 ADD r1,r4,r4,LSL #1
00087c e51f2348 LDR r2,|L1.1340|
000880 e0821181 ADD r1,r2,r1,LSL #3
000884 e5910014 LDR r0,[r1,#0x14]
000888 e1a0e00f MOV lr,pc
00088c e12fff10 BX r0
;;;332 }
;;;333 OSTimeDly(1);
|L1.2192|
000890 e3a00001 MOV r0,#1
000894 ebfffffe BL OSTimeDly
|L1.2200|
000898 eafffff2 B |L1.2152| ;327
;;;334
;;;335 }
;;;336
;;;337
;;;338 }
ENDP
main PROC
;;;55 int main(void)
;;;56 {
00089c e92d4010 PUSH {r4,lr}
;;;57 OSInit ();
0008a0 ebfffffe BL OSInit
;;;58 TargetInit();
0008a4 ebfffffe BL TargetInit
;;;59
;;;60 OSTaskCreate (Task0,(void *)0,&TaskStk0[TaskStkLengh-1],3);
0008a8 e3a03003 MOV r3,#3
0008ac e59f209c LDR r2,|L1.2384|
0008b0 e3a01000 MOV r1,#0
0008b4 e24f0080 ADR r0,|L1.2108|
0008b8 ebfffffe BL OSTaskCreate
;;;61 OSTaskCreate (Task1,(void *)0,&TaskStk1[TaskStkLengh-1],6) ;
0008bc e3a03006 MOV r3,#6
0008c0 e59f208c LDR r2,|L1.2388|
0008c4 e3a01000 MOV r1,#0
0008c8 e59f0088 LDR r0,|L1.2392|
0008cc ebfffffe BL OSTaskCreate
;;;62 OSTaskCreate (Task2,(void *)0,&TaskStk2[TaskStkLengh-1],4) ;
0008d0 e3a03004 MOV r3,#4
0008d4 e59f2080 LDR r2,|L1.2396|
0008d8 e3a01000 MOV r1,#0
0008dc e59f007c LDR r0,|L1.2400|
0008e0 ebfffffe BL OSTaskCreate
;;;63 OSTaskCreate (Task3,(void *)0,&TaskStk3[TaskStkLengh-1],5) ;
0008e4 e3a03005 MOV r3,#5
0008e8 e59f2074 LDR r2,|L1.2404|
0008ec e3a01000 MOV r1,#0
0008f0 e59f0070 LDR r0,|L1.2408|
0008f4 ebfffffe BL OSTaskCreate
;;;64 OSTaskCreate (RTC_TASK,(void *)0,&RTC_Stk[TaskStkLengh-1],7) ;
0008f8 e3a03007 MOV r3,#7
0008fc e59f2068 LDR r2,|L1.2412|
000900 e3a01000 MOV r1,#0
000904 e59f0064 LDR r0,|L1.2416|
000908 ebfffffe BL OSTaskCreate
;;;65 KeyMbox = OSMboxCreate(NULL); // 建立一个邮箱,用于传递按键消息
00090c e3a00000 MOV r0,#0
000910 ebfffffe BL OSMboxCreate
000914 e59f1018 LDR r1,|L1.2356|
000918 e5810000 STR r0,[r1,#0] ; KeyMbox
;;;66 AD_INIT();
00091c ebfffffe BL AD_INIT
;;;67 OSStart ();
000920 ebfffffe BL OSStart
;;;68
;;;69 return 0;
000924 e3a00000 MOV r0,#0
000928 e8bd4010 POP {r4,lr}
;;;70 }
00092c e12fff1e BX lr
|L1.2352|
000930 00000007 DCD ||.data|| + 7
|L1.2356|
000934 00000000 DCD KeyMbox
|L1.2360|
000938 00000006 DCD ||.data|| + 6
|L1.2364|
00093c 4c4c4548 DCB "HELL"
000940 0000004f DCB "O\0\0\0"
|L1.2372|
000944 6f6d6544 DCB "Demo"
000948 00000000 DCB "\0\0\0\0"
|L1.2380|
00094c 00000000 DCD pic_all
|L1.2384|
000950 000000fc DCD TaskStk0 + 252
|L1.2388|
000954 000000fc DCD TaskStk1 + 252
|L1.2392|
000958 00000000 DCD Task1
|L1.2396|
00095c 000000fc DCD TaskStk2 + 252
|L1.2400|
000960 00000000 DCD Task2
|L1.2404|
000964 000000fc DCD TaskStk3 + 252
|L1.2408|
000968 00000000 DCD Task3
|L1.2412|
00096c 000000fc DCD RTC_Stk + 252
|L1.2416|
000970 00000000 DCD RTC_TASK
ENDP
AREA ||.data||, DATA, ALIGN=2
KeyMbox
DCD 0x00000000
||s_start_no@DrawSelectMenuIco_0||
DCB 0xff
||s_select_old@DrawSelectMenuIco_1||
DCB 0xff
||s_menu_start@SelectMenuIco_0||
DCB 0x00
||s_select@SelectMenuIco_1||
DCB 0x00
AREA ||.bss.5||, NOINIT, ALIGN=2
mainmenu
% 192
TaskStk0
% 256
TaskStk1
% 256
TaskStk2
% 256
TaskStk3
% 256
RTC_Stk
% 256
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -