📄 arm_00_os_main.lst
字号:
ARM COMPILER V2.50a, ARM_00_OS_main 16/05/06 14:55:44 PAGE 1
ARM COMPILER V2.50a, COMPILATION OF MODULE ARM_00_OS_main
OBJECT MODULE PLACED IN ARM_00_OS_main.OBJ
COMPILER INVOKED BY: C:\Keil\ARM\BIN\CA.exe ARM_00_OS_main.c THUMB WARNINGLEVEL(3) BROWSE DEBUG TABS(4)
stmt level source
1 /**********************************************************************************************
2 本程序只供学习使用,不得用于其它任何用途,否则后果自负。
3
4 ARM_00_OS_main.c file
5
6 ADuC702x上的操作系统——ARM_00_OS
7
8 作者:Computer-lov
9 建立日期:2006-5-1
10 修改日期:2006-5-15
11 版本:V1.0
12 版权所有,盗版必究。
13 任何技术问题可到我的博客上留言: http://computer00.21ic.org
14 Copyright(C) Computer-lov 2006-2016
15 All rights reserved
16 **********************************************************************************************/
17
18 #include <ADuC7027.H>
19 #include "My_type.h"
20 #include "LED.H"
21 #include "interrupt.h"
22 #include "ARM_00_OS_TaskSwitch.H"
23 #include "ARM_00_OS_Core.H"
24 #include "UART.H"
25 #include "KEYS.H"
26
27 /*********************************************************************************************/
28 void SysClkInit(void)
29 {
30 1 PLLKEY1=0xAA;
31 1 PLLCON=0x01; //PLL配置
32 1 PLLKEY2=0x55;
33 1 POWKEY1=0x01;
34 1 POWCON=0x00; //CPU时钟配置为41.78MHz
35 1 POWKEY2=0xF4;
36 1 }
37 ///////////////////////////////////////////////////////////////////////////////////////////////
38
39 /**********************************************************************************************
40 main函数
41 **********************************************************************************************/
42 void main(void)
43 {
44 1
45 1 DisEnableInterrupt(OS_I_Bit | OS_F_Bit); //关中断
46 1
47 1 SysClkInit(); //系统时钟初始化
48 1
49 1 UART_init(); //串口初始化
50 1
51 1 DelayXms(100); //延迟100ms
52 1
53 1 cls(); //清屏
54 1
55 1 prints("SystemStart",1); //显示开机信息
56 1
57 1 OSInit(); //操作系统初始化
58 1
59 1 DelayXms(2000); //延时2S
ARM COMPILER V2.50a, ARM_00_OS_main 16/05/06 14:55:44 PAGE 2
60 1
61 1 OSEnterCritical(); //进入临界段
62 1
63 1 EnableInterrupt(OS_I_Bit | OS_F_Bit); //开中断
64 1
65 1 OSTickInit(); //系统时钟节拍初始化
66 1
67 1 OSStart((uint32)OSSystemIdle,OS_THUMB_MODE); //系统开始运行
68 1
69 1 }
70 //////////////////////////////////End of function//////////////////////////////////////////////
ARM COMPILER V2.50a, ARM_00_OS_main 16/05/06 14:55:44 PAGE 3
ASSEMBLY LISTING OF GENERATED OBJECT CODE
*** EXTERNALS:
EXTERN CODE16 (DisEnableInterrupt?T)
EXTERN CODE16 (EnableInterrupt?T)
EXTERN CODE16 (OSStart?T)
EXTERN CODE16 (OSInit?T)
EXTERN CODE16 (OSTickInit?T)
EXTERN CODE16 (OSSystemIdle?T)
EXTERN CODE16 (OSEnterCritical?T)
EXTERN CODE16 (UART_init?T)
EXTERN CODE16 (prints?T)
EXTERN CODE16 (cls?T)
EXTERN CODE16 (DelayXms?T)
EXTERN NUMBER (__startup)
*** PUBLICS:
PUBLIC SysClkInit?T
PUBLIC main
*** DATA SEGMENT '?CON?ARM_00_OS_main':
00000000 ??S_1:
00000000 DB 'SystemStart',0x00
*** CODE SEGMENT '?PR?SysClkInit?T?ARM_00_OS_main':
30: PLLKEY1=0xAA;
00000000 21AA MOV R1,#0xAA
00000002 4800 LDR R0,=0xFFFF0410
00000004 6001 STR R1,[R0,#0x0]
31: PLLCON=0x01; //PLL配置
00000006 2101 MOV R1,#0x1
00000008 4800 LDR R0,=0xFFFF0414
0000000A 6001 STR R1,[R0,#0x0]
32: PLLKEY2=0x55;
0000000C 2255 MOV R2,#0x55
0000000E 4800 LDR R0,=0xFFFF0418
00000010 6002 STR R2,[R0,#0x0]
33: POWKEY1=0x01;
00000012 4800 LDR R0,=0xFFFF0404
00000014 6001 STR R1,[R0,#0x0]
34: POWCON=0x00; //CPU时钟配置为41.78MHz
00000016 2100 MOV R1,#0x0
00000018 4800 LDR R0,=0xFFFF0408
0000001A 6001 STR R1,[R0,#0x0]
35: POWKEY2=0xF4;
0000001C 21F4 MOV R1,#0xF4
0000001E 4800 LDR R0,=0xFFFF040C
00000020 6001 STR R1,[R0,#0x0]
36: }
00000022 4770 BX R14
00000024 ENDP ; 'SysClkInit?T'
*** CODE SEGMENT '?PR?main?ARM_00_OS_main':
42: void main(void)
00000000 B500 PUSH {LR}
45: DisEnableInterrupt(OS_I_Bit | OS_F_Bit); //关中断
00000002 20C0 MOV R0,#0xC0
00000004 DF00 SWI 0x0 ; DisEnableInterrupt?T
47: SysClkInit(); //系统时钟初始化
00000006 F7FF BL SysClkInit?T ; T=0x0001 (1)
00000008 FFFB BL SysClkInit?T ; T=0x0001 (2)
49: UART_init(); //串口初始化
0000000A F7FF BL UART_init?T ; T=0x0001 (1)
0000000C FFF9 BL UART_init?T ; T=0x0001 (2)
51: DelayXms(100); //延迟100ms
0000000E 2064 MOV R0,#0x64
00000010 F7FF BL DelayXms?T ; T=0x0001 (1)
ARM COMPILER V2.50a, ARM_00_OS_main 16/05/06 14:55:44 PAGE 4
00000012 FFF6 BL DelayXms?T ; T=0x0001 (2)
53: cls(); //清屏
00000014 F7FF BL cls?T ; T=0x0001 (1)
00000016 FFF4 BL cls?T ; T=0x0001 (2)
55: prints("SystemStart",1); //显示开机信息
00000018 4800 LDR R0,=??S_1 ; ??S_1
0000001A 2101 MOV R1,#0x1
0000001C F7FF BL prints?T ; T=0x0001 (1)
0000001E FFF0 BL prints?T ; T=0x0001 (2)
57: OSInit(); //操作系统初始化
00000020 F7FF BL OSInit?T ; T=0x0001 (1)
00000022 FFEE BL OSInit?T ; T=0x0001 (2)
59: DelayXms(2000); //延时2S
00000024 4800 LDR R0,=0x7D0
00000026 F7FF BL DelayXms?T ; T=0x0001 (1)
00000028 FFEB BL DelayXms?T ; T=0x0001 (2)
61: OSEnterCritical(); //进入临界段
0000002A F7FF BL OSEnterCritical?T ; T=0x0001 (1)
0000002C FFE9 BL OSEnterCritical?T ; T=0x0001 (2)
63: EnableInterrupt(OS_I_Bit | OS_F_Bit); //开中断
0000002E 20C0 MOV R0,#0xC0
00000030 DF01 SWI 0x1 ; EnableInterrupt?T
65: OSTickInit(); //系统时钟节拍初始化
00000032 F7FF BL OSTickInit?T ; T=0x0001 (1)
00000034 FFE5 BL OSTickInit?T ; T=0x0001 (2)
67: OSStart((uint32)OSSystemIdle,OS_THUMB_MODE); //系统开始运行
00000036 4800 LDR R0,=OSSystemIdle?T ; OSSystemIdle?T
00000038 2120 MOV R1,#0x20
0000003A DF02 SWI 0x2 ; OSStart?T
69: }
0000003C BC08 POP {R3}
0000003E 4718 BX R3
00000040 ENDP ; 'main'
Module Information Static
----------------------------------
code size = ------
data size = ------
const size = 12
End of Module Information.
ARM COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -