📄 arm_00_ossystemidle.lst
字号:
ARM COMPILER V2.50a, ARM_00_OSSystemIdle 25/08/06 23:22:56 PAGE 1
ARM COMPILER V2.50a, COMPILATION OF MODULE ARM_00_OSSystemIdle
OBJECT MODULE PLACED IN ARM_00_OSSystemIdle.OBJ
COMPILER INVOKED BY: C:\Keil\ARM\BIN\CA.exe ARM_00_OSSystemIdle.c THUMB DEBUG TABS(4)
stmt level source
1 /**********************************************************************************************
2 ARM_00_OSSystemIdle.c file
3
4 作者:Computer-lov
5 建立日期:2006-5-13
6 修改日期:2006-5-15
7 最后修改时间:2006-08-25
8 版本:V1.0
9 版权所有,盗版必究。
10 任何技术问题可到我的博客上留言: http://computer00.21ic.org
11 Copyright(C) Computer-lov 2006-2016
12 All rights reserved
13 **********************************************************************************************/
14
15 #include "CPU.H"
16
17 #include "my_type.h"
18
19 #include "ARM_00_OS_TaskSwitch.H"
20 #include "ARM_00_OS_Core.H"
21 #include "UART.H"
22 #include "KEYS.H"
23 #include "Task.h"
24
25
26 /**********************************************************************************************
27 功能:系统空闲任务。
28 入口参数:无。
29 返回:无。
30 备注:操作系统必须从系统空闲任务开始运行。并且系统空闲任务永远不能挂起或者延时。
31 **********************************************************************************************/
32 void OSSystemIdle(void)
33 {
34 1 prints("",1); //显示任务被启动
35 1 prints(OSCurrentPcb->Title,0);
36 1 prints(" Start..........................",1);
37 1
38 1 OSAddDevice(OS_PRINTER_DEVICE_ID);
39 1
40 1 OSTaskCreat((uint32)OSTaskManager,256,1,OS_THUMB_MODE,"TaskManager"); //创建任务管理器任务
41 1
42 1 OSTaskCreat((uint32)Task3,256,8,OS_THUMB_MODE,"Task3"); //创建任务3
43 1 OSTaskCreat((uint32)Task4,256,8,OS_THUMB_MODE,"Task4"); //创建任务4
44 1 OSTaskCreat((uint32)Task5,256,3,OS_THUMB_MODE,"Task5");
45 1
46 1 KEYBoardInit(); //初始化键盘
47 1
48 1 OSExitCritical(); //退出临界段
49 1
50 1 while(1)
51 1 {
52 2 PCON=1; //处理器进入空闲模式,节省能源。绿色环保。
53 2 }
54 1 }
55 //////////////////////////////////End of function//////////////////////////////////////////////
56
57
58
59
ARM COMPILER V2.50a, ARM_00_OSSystemIdle 25/08/06 23:22:56 PAGE 2
60
61
ARM COMPILER V2.50a, ARM_00_OSSystemIdle 25/08/06 23:22:56 PAGE 3
ASSEMBLY LISTING OF GENERATED OBJECT CODE
*** EXTERNALS:
EXTERN DATA (OSCurrentPcb)
EXTERN CODE16 (OSTaskManager?T)
EXTERN CODE16 (OSExitCritical?T)
EXTERN CODE16 (OSTaskCreat?T)
EXTERN CODE16 (OSAddDevice?T)
EXTERN CODE16 (prints?T)
EXTERN CODE16 (KEYBoardInit?T)
EXTERN CODE16 (Task3?T)
EXTERN CODE16 (Task4?T)
EXTERN CODE16 (Task5?T)
*** PUBLICS:
PUBLIC OSSystemIdle?T
*** DATA SEGMENT '?CON?ARM_00_OSSystemIdle':
00000000 ??S_6:
00000000 DB 'Task5',0x00
00000006 ??S_5:
00000006 DB 'Task4',0x00
0000000C ??S_4:
0000000C DB 'Task3',0x00
00000012 ??S_3:
00000012 DB 'TaskManager',0x00
0000001E ??S_2:
0000001E DB ' Start..........................',0x00
0000003F ??S_1:
0000003F DB 0x00
*** CODE SEGMENT '?PR?OSSystemIdle?T?ARM_00_OSSystemIdle':
32: void OSSystemIdle(void)
00000000 B500 PUSH {LR}
34: prints("",1); //显示任务被启动
00000002 4800 LDR R0,=??S_1 ; ??S_1
00000004 2101 MOV R1,#0x1
00000006 F7FF BL prints?T ; T=0x0001 (1)
00000008 FFFB BL prints?T ; T=0x0001 (2)
35: prints(OSCurrentPcb->Title,0);
0000000A 4800 LDR R0,=OSCurrentPcb ; OSCurrentPcb
0000000C 6800 LDR R0,[R0,#0x0] ; OSCurrentPcb
0000000E 3034 ADD R0,#0x34
00000010 2100 MOV R1,#0x0
00000012 F7FF BL prints?T ; T=0x0001 (1)
00000014 FFF5 BL prints?T ; T=0x0001 (2)
36: prints(" Start..........................",1);
00000016 4800 LDR R0,=??S_2 ; ??S_2
00000018 2101 MOV R1,#0x1
0000001A F7FF BL prints?T ; T=0x0001 (1)
0000001C FFF1 BL prints?T ; T=0x0001 (2)
38: OSAddDevice(OS_PRINTER_DEVICE_ID);
0000001E 2001 MOV R0,#0x1
00000020 F7FF BL OSAddDevice?T ; T=0x0001 (1)
00000022 FFEE BL OSAddDevice?T ; T=0x0001 (2)
40: OSTaskCreat((uint32)OSTaskManager,256,1,OS_THUMB_MODE,"TaskManager"); //创建任务管理器任务
00000024 4800 LDR R0,=??S_3 ; ??S_3
00000026 B401 PUSH {R0}
00000028 4800 LDR R0,=OSTaskManager?T ; OSTaskManager?T
0000002A 4940 LDR R1,=0x100
0000002C 2201 MOV R2,#0x1
0000002E 2320 MOV R3,#0x20
00000030 F7FF BL OSTaskCreat?T ; T=0x0001 (1)
00000032 FFE6 BL OSTaskCreat?T ; T=0x0001 (2)
00000034 B001 ADD R13,#0x4
42: OSTaskCreat((uint32)Task3,256,8,OS_THUMB_MODE,"Task3"); //创建任务3
ARM COMPILER V2.50a, ARM_00_OSSystemIdle 25/08/06 23:22:56 PAGE 4
00000036 4800 LDR R0,=??S_4 ; ??S_4
00000038 B401 PUSH {R0}
0000003A 4800 LDR R0,=Task3?T ; Task3?T
0000003C 4940 LDR R1,=0x100
0000003E 2208 MOV R2,#0x8
00000040 2320 MOV R3,#0x20
00000042 F7FF BL OSTaskCreat?T ; T=0x0001 (1)
00000044 FFDD BL OSTaskCreat?T ; T=0x0001 (2)
00000046 B001 ADD R13,#0x4
43: OSTaskCreat((uint32)Task4,256,8,OS_THUMB_MODE,"Task4"); //创建任务4
00000048 4800 LDR R0,=??S_5 ; ??S_5
0000004A B401 PUSH {R0}
0000004C 4800 LDR R0,=Task4?T ; Task4?T
0000004E 4940 LDR R1,=0x100
00000050 2208 MOV R2,#0x8
00000052 2320 MOV R3,#0x20
00000054 F7FF BL OSTaskCreat?T ; T=0x0001 (1)
00000056 FFD4 BL OSTaskCreat?T ; T=0x0001 (2)
00000058 B001 ADD R13,#0x4
44: OSTaskCreat((uint32)Task5,256,3,OS_THUMB_MODE,"Task5");
0000005A 4800 LDR R0,=??S_6 ; ??S_6
0000005C B401 PUSH {R0}
0000005E 4800 LDR R0,=Task5?T ; Task5?T
00000060 4940 LDR R1,=0x100
00000062 2203 MOV R2,#0x3
00000064 2320 MOV R3,#0x20
00000066 F7FF BL OSTaskCreat?T ; T=0x0001 (1)
00000068 FFCB BL OSTaskCreat?T ; T=0x0001 (2)
0000006A B001 ADD R13,#0x4
46: KEYBoardInit(); //初始化键盘
0000006C F7FF BL KEYBoardInit?T ; T=0x0001 (1)
0000006E FFC8 BL KEYBoardInit?T ; T=0x0001 (2)
48: OSExitCritical(); //退出临界段
00000070 F7FF BL OSExitCritical?T ; T=0x0001 (1)
00000072 FFC6 BL OSExitCritical?T ; T=0x0001 (2)
50: while(1)
00000074 L_3:
52: PCON=1; //处理器进入空闲模式,节省能源。绿色环保。
00000074 2101 MOV R1,#0x1
00000076 4800 LDR R0,=0xE01FC0C0
00000078 7001 STRB R1,[R0,#0x0]
53: }
0000007A E7FB B L_3 ; T=0x00000074
54: }
0000007C BC08 POP {R3}
0000007E 4718 BX R3
00000080 ENDP ; 'OSSystemIdle?T'
Module Information Static
----------------------------------
code size = ------
data size = ------
const size = 64
End of Module Information.
ARM COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -