?? serial.lst
字號:
C51 COMPILER V8.12 SERIAL 01/12/2009 17:44:26 PAGE 1
C51 COMPILER V8.12, COMPILATION OF MODULE SERIAL
OBJECT MODULE PLACED IN .\Obj\serial.obj
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE CodeTest\serial.c LARGE BROWSE INCDIR(.\CodeOS) DEBUG OBJECTEXTEND CODE LIS
-TINCLUDE SYMBOLS PRINT(.\Obj\serial.lst) OBJECT(.\Obj\serial.obj)
line level source
1 #include "uCOS_II.H"
1 =1 /*
2 =1 *********************************************************************************************************
3 =1 * uC/OS-II
4 =1 * The Real-Time Kernel
5 =1 *
6 =1 * (c) Copyright 1992-2002, Jean J. Labrosse, Weston, FL
7 =1 * All Rights Reserved
8 =1 *
9 =1 * File : uCOS_II.H
10 =1 * By : Jean J. Labrosse
11 =1 *********************************************************************************************************
12 =1 */
13 =1
14 =1 /*
15 =1 *********************************************************************************************************
16 =1 * MISCELLANEOUS
17 =1 *********************************************************************************************************
18 =1 */
19 =1 //#include <reg52.h>
20 =1 #include <sst89x5x4.h>
1 =2 /*--------------------------------------------------------------------------
2 =2 SST89x5x4.H
3 =2
4 =2 Header file for 8-bit SST microcontrollers.
5 =2 Copyright (c) 1988-2002 Keil Elektronik GmbH and Keil Software, Inc.
6 =2 All rights reserved.
7 =2 --------------------------------------------------------------------------*/
8 =2
9 =2 #ifndef __SST89x5x4_H__
10 =2 #define __SST89x5x4_H__
11 =2
12 =2 /* BYTE Registers */
13 =2 sfr P0 = 0x80;
14 =2 sfr P1 = 0x90;
15 =2 sfr P2 = 0xA0;
16 =2 sfr P3 = 0xB0;
17 =2 sfr PSW = 0xD0;
18 =2 sfr ACC = 0xE0;
19 =2 sfr B = 0xF0;
20 =2 sfr SP = 0x81;
21 =2 sfr DPL = 0x82;
22 =2 sfr DPH = 0x83;
23 =2 sfr PCON = 0x87;
24 =2 sfr TCON = 0x88;
25 =2 sfr TMOD = 0x89;
26 =2 sfr TL0 = 0x8A;
27 =2 sfr TL1 = 0x8B;
28 =2 sfr TH0 = 0x8C;
29 =2 sfr TH1 = 0x8D;
30 =2 sfr IE = 0xA8;
31 =2 sfr IP = 0xB8;
32 =2 sfr SCON = 0x98;
33 =2 sfr SBUF = 0x99;
C51 COMPILER V8.12 SERIAL 01/12/2009 17:44:26 PAGE 2
34 =2
35 =2 /* 8052 Extensions */
36 =2 sfr T2CON = 0xC8;
37 =2 sfr T2MOD = 0xC9;
38 =2 sfr RCAP2L = 0xCA;
39 =2 sfr RCAP2H = 0xCB;
40 =2 sfr TL2 = 0xCC;
41 =2 sfr TH2 = 0xCD;
42 =2
43 =2 /* 89E564 Extensions */
44 =2 sfr IPA = 0xF8;
45 =2 sfr IEA = 0xE8;
46 =2 sfr SADEN = 0xA9;
47 =2 sfr SPSR = 0xAA;
48 =2 sfr AUXR1 = 0xA2;
49 =2 sfr AUXR = 0x8E;
50 =2 sfr WDTD = 0x85;
51 =2 sfr SPDR = 0x86;
52 =2 sfr SFCF = 0xB1;
53 =2 sfr SFCM = 0xB2;
54 =2 sfr SFAL = 0xB3;
55 =2 sfr SFAH = 0xB4;
56 =2 sfr SFDT = 0xB5;
57 =2 sfr SFST = 0xB6;
58 =2 sfr IPH = 0xB7;
59 =2 sfr SPCR = 0xD5;
60 =2 sfr IPAH = 0xF7;
61 =2
62 =2 /* BIT Registers */
63 =2 /* PSW */
64 =2 sbit CY = PSW^7;
65 =2 sbit AC = PSW^6;
66 =2 sbit F0 = PSW^5;
67 =2 sbit RS1 = PSW^4;
68 =2 sbit RS0 = PSW^3;
69 =2 sbit OV = PSW^2;
70 =2 sbit P = PSW^0; //8052 only
71 =2
72 =2 /* TCON */
73 =2 sbit TF1 = TCON^7;
74 =2 sbit TR1 = TCON^6;
75 =2 sbit TF0 = TCON^5;
76 =2 sbit TR0 = TCON^4;
77 =2 sbit IE1 = TCON^3;
78 =2 sbit IT1 = TCON^2;
79 =2 sbit IE0 = TCON^1;
80 =2 sbit IT0 = TCON^0;
81 =2
82 =2 /* IE */
83 =2 sbit EA = IE^7;
84 =2 sbit ET2 = IE^5; //8052 only
85 =2 sbit ES = IE^4;
86 =2 sbit ET1 = IE^3;
87 =2 sbit EX1 = IE^2;
88 =2 sbit ET0 = IE^1;
89 =2 sbit EX0 = IE^0;
90 =2
91 =2 /* IP */
92 =2 sbit PT2 = IP^5;
93 =2 sbit PS = IP^4;
94 =2 sbit PT1 = IP^3;
95 =2 sbit PX1 = IP^2;
C51 COMPILER V8.12 SERIAL 01/12/2009 17:44:26 PAGE 3
96 =2 sbit PT0 = IP^1;
97 =2 sbit PX0 = IP^0;
98 =2
99 =2 /* P3 */
100 =2 sbit RD = P3^7;
101 =2 sbit WR = P3^6;
102 =2 sbit T1 = P3^5;
103 =2 sbit T0 = P3^4;
104 =2 sbit INT1 = P3^3;
105 =2 sbit INT0 = P3^2;
106 =2 sbit TXD = P3^1;
107 =2 sbit RXD = P3^0;
108 =2
109 =2 /* SCON */
110 =2 sbit SM0 = SCON^7;
111 =2 sbit SM1 = SCON^6;
112 =2 sbit SM2 = SCON^5;
113 =2 sbit REN = SCON^4;
114 =2 sbit TB8 = SCON^3;
115 =2 sbit RB8 = SCON^2;
116 =2 sbit TI = SCON^1;
117 =2 sbit RI = SCON^0;
118 =2
119 =2 /* P1 */
120 =2 sbit T2EX = P1^1; // 8052 only
121 =2 sbit T2 = P1^0; // 8052 only
122 =2
123 =2 /* T2CON */
124 =2 sbit TF2 = T2CON^7;
125 =2 sbit EXF2 = T2CON^6;
126 =2 sbit RCLK = T2CON^5;
127 =2 sbit TCLK = T2CON^4;
128 =2 sbit EXEN2 = T2CON^3;
129 =2 sbit TR2 = T2CON^2;
130 =2 sbit C_T2 = T2CON^1;
131 =2 sbit CP_RL2 = T2CON^0;
132 =2
133 =2 #endif
21 =1 #include "os_cpu.h"
1 =2 /*
2 =2 *********************************************************************************************************
3 =2 * uC/OS-II
4 =2 * 實時內核
5 =2 *
6 =2 * (c) Copyright 1992-1998, Jean J. Labrosse, Plantation, FL
7 =2 * 版權所有
8 =2 *
9 =2 * MCU-51 專用代碼
10 =2 * KEIL C51大模式編譯
11 =2 *
12 =2 * 文件名 : OS_CPU.H
13 =2 * 作者 : Jean J. Labrosse
14 =2 * 改編 : 高偉能(升級到ucOS-II V2.52)
15 =2 *********************************************************************************************************
16 =2 */
17 =2
18 =2 #ifndef _OS_CPU_H_
19 =2 #define _OS_CPU_H_
20 =2
21 =2 #ifdef __C51__
22 =2 #define OS_REENTRANT reentrant
23 =2 #else
C51 COMPILER V8.12 SERIAL 01/12/2009 17:44:26 PAGE 4
=2 #define OS_REENTRANT
=2 #endif
26 =2
27 =2 #ifdef OS_CPU_GLOBALS
=2 #define OS_CPU_EXT
=2 #else
30 =2 #define OS_CPU_EXT extern
31 =2 #endif
32 =2
33 =2 /*
34 =2 *********************************************************************************************************
35 =2 * 數據類型
36 =2 * (編譯器相關)
37 =2 *********************************************************************************************************
38 =2 */
39 =2
40 =2 //詳見C51.PDF第176頁
41 =2 typedef unsigned char BOOLEAN; //注意:不要使用bit定義,因為在結構體里無法使用
42 =2 typedef unsigned char INT8U; //無符號8位數
43 =2 typedef signed char INT8S; //有符號8位數
44 =2 typedef unsigned int INT16U; //無符號16位數
45 =2 typedef signed int INT16S; //有符號16位數
46 =2 typedef unsigned long INT32U; //無符號32位數
47 =2 typedef signed long INT32S; //有符號32位數
48 =2 typedef float FP32; //單精度浮點數
49 =2 typedef double FP64; //雙精度浮點數
50 =2
51 =2 typedef unsigned char OS_STK; //棧單元寬度為8比特
52 =2 typedef unsigned char OS_CPU_SR; /* Define size of CPU status register (PSW = 8 bits) */
53 =2
54 =2 #define BYTE INT8S //兼容以前版本的數據類型
55 =2 #define UBYTE INT8U //uC/OS-II可以不用這些數據類型
56 =2 #define WORD INT16S
57 =2 #define UWORD INT16U
58 =2 #define LONG INT32S
59 =2 #define ULONG INT32U
60 =2
61 =2 /*
62 =2 *********************************************************************************************************
63 =2 * 處理器相關代碼 MCU-51 (大模式)
64 =2 * 針對51單片機,只使用方法1(直接開關中斷)
65 =2 *********************************************************************************************************
66 =2 */
67 =2
68 =2 #define OS_CRITICAL_METHOD 1
69 =2
70 =2 #if OS_CRITICAL_METHOD == 1
71 =2 #define OS_ENTER_CRITICAL() EA=0 //關中斷
72 =2 #define OS_EXIT_CRITICAL() EA=1 //開中斷
73 =2 #endif
74 =2
75 =2 #if OS_CRITICAL_METHOD == 2
=2 /* As an undocumented keyword of keil c. __asm is supported in Keil C v6.20.
=2 . No other means to define assemble language code in a macro, I have to use
=2 it here. If your compiler does not support __asm, use method 1 or 3 then. */
=2 /* A2 AF MOV C, EA*/
=2 /* C2 AF CLR EA */
=2 /* C0 D0 PUSH PSW */
=2 #define OS_ENTER_CRITICAL() __asm DB 0A2H, 0AFH, 0C2H, 0AFH, 0C0H, 0D0H
=2
=2 /* D0 D0 POP PSW */
=2 /* 92 AF MOV EA, C */
C51 COMPILER V8.12 SERIAL 01/12/2009 17:44:26 PAGE 5
=2 #define OS_EXIT_CRITICAL() __asm DB 0D0H, 0D0H, 092H, 0AFH
=2 #endif
88 =2
89 =2 #if OS_CRITICAL_METHOD == 3
=2 #define OS_ENTER_CRITICAL() (cpu_sr = EA, EA=0) /* Disable interrupts */
=2 #define OS_EXIT_CRITICAL() (EA=cpu_sr) /* Enable interrupts */
=2 #endif
93 =2
94 =2
95 =2 #define OS_STK_GROWTH 0 //MCU-51堆棧從下往上增長 1=向下,0=向上
96 =2
97 =2 #define OS_TASK_SW() OSCtxSw() //因為MCU-51沒有軟中斷指令,所以用程序調用代替。兩者的堆棧格式相同,
98 =2 //RETI指令復位中斷系統,RET則沒有。實踐表明,對于MCU-51,用子程序調
99 =2 //用入棧,用中斷返回指令RETI出棧是沒有問題的,反之中斷入棧RET出棧則
100 =2 //不行。總之,對于入棧,子程序調用與中斷調用效果是一樣的,可以混用。
101 =2 //在沒有中斷發生的情況下復位中斷系統也不會影響系統正常運行。
102 =2 //詳見《uC/OS-II》第八章193頁第12行
103 =2
104 =2 #define OS_ISR_PROTO_EXT 1
105 =2 void OSCtxSw(void);
106 =2 void OSTickInit(void); //系統定時器初始化
107 =2 void OSTickISR(void); //系統定時器中斷處理程序
108 =2 #endif //_OS_CPU_H
22 =1 #include "os_cfg.h"
1 =2 /*
2 =2 *********************************************************************************************************
3 =2 * uC/OS-II
4 =2 * The Real-Time Kernel
5 =2 *
6 =2 * (c) Copyright 1992-2001, Jean J. Labrosse, Weston, FL
7 =2 * All Rights Reserved
8 =2 *
9 =2 * uC/OS-II Configuration File for V2.52
10 =2 *
11 =2 * File : OS_CFG.H
12 =2 * By : Jean J. Labrosse
13 =2 *********************************************************************************************************
14 =2 */
15 =2
16 =2 /*
17 =2 *********************************************************************************************************
18 =2 * uC/OS-II CONFIGURATION
19 =2 *********************************************************************************************************
20 =2 */
21 =2 #ifndef _OS_CFG_H_
22 =2 #define _OS_CFG_H_
23 =2
24 =2 //#define MaxStkSize 100 /*根據楊屹的修改,每個任務使用同樣大小的堆棧,這就是每個堆棧的大
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -