📄 test.lst
字号:
CX51 COMPILER V8.01 TEST 11/28/2005 14:44:50 PAGE 1
CX51 COMPILER V8.01, COMPILATION OF MODULE TEST
OBJECT MODULE PLACED IN .\Keil\test.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\CX51.EXE test.c ROM(HUGE) BROWSE DEBUG PRINT(.\Keil\test.lst) OBJECT(.\Keil\test.ob
-j)
line level source
1 #include <rtx51tny.h>
2 #include <reg669.h>
3 #include <intrins.h>
4 #define TASK_INIT 0 /* 初始化任务(包括超时处理和脉冲、遥信采样) */
5 #define TASK_CLOCK 1 /* 时钟秒任务 */
6 #define TASK_I2C 2 /* I2C通信、计算、控制任务 */
7 #define TASK_FK2004 3
8
9 #define TASK_SPI 4 /* SPI总线处理任务 */
10
11 struct task_def{
12 void (*taskfunc)(void); // 任务函数地址
13 };
14
15 void task_init (void);
16 void task_clock (void);
17 void task_i2c (void);
18 void task_fk2004 (void);
19 void task_spi (void);
20 struct task_def const far TASK_ENTRY[]={
21 {*task_init},
22 {*task_clock},
23 {*task_i2c},
24 {*task_fk2004},
25 {*task_spi}
26 };
27 unsigned long far sz = TASK_ENTRY; /* 消除告警 */
28 void task_clock (void) /* 任务1: */
29 {
30 1 while(1) {
31 2 os_wait(K_TMO,100,0);
32 2 T2 = ~T2; /* 此处T2连接到一灯,用来监视程序的运行
33 2 正常运行时 T2 每秒变换一次
34 2 显示在 板子上的 L21
35 2 */
36 2 }
37 1 }
38 void task_i2c (void) /* 任务2: */
39 { while(1) os_wait(K_TMO,10,0);
40 1 }
41 void task_fk2004 (void) /* 任务3: */
42 { while(1) os_wait(K_SIG,10,0);
43 1 }
44 void task_spi (void) /* 任务4: */
45 { while(1) os_wait(K_TMO,10,0);
46 1 }
47 /* 以下三个中断:仅仅在此定义并未让其执行
48 仿真时不正常,若去掉则正常
49 */
50 void serial(void) interrupt 4 //UART0
51 {
52 1
53 1 }
54 void serial1(void) interrupt 10 //UART1
CX51 COMPILER V8.01 TEST 11/28/2005 14:44:50 PAGE 2
55 {
56 1
57 1 }
58 void i2c_isr(void) interrupt 11 //I2C
59 {
60 1 }
61 /* 我的程序中用到 Keil 的 RTX TINY51 Ver2
62 针对89C669我做了一些改动,我在模拟仿真时操作系统运行正常
63
64 */
65 void task_init()
66 { if(0){
67 2 // ENABLE UART0
68 2 SCON = 0x50; /* mode 1: 8-bit UART, enable receiver */
69 2 TMOD |= 0x20; /* timer 1 mode 2: 8-Bit reload */
70 2 TH1 = 0xfd;
71 2 TR1 = 1;
72 2 ES0 = 1;
73 2 // ENABLE UART1
74 2 S1STAT = 0x00;
75 2 S1CON = 0x00;
76 2 REN_1 = 1;
77 2 SM0_1 = 1;
78 2 SM1_1 = 0;
79 2 BRGCON = 0x00;
80 2 BRGR1 = 0x10;
81 2 BRGR0 = 0x10;
82 2 BRGCON = 0x01;
83 2 ES1R = 1;
84 2
85 2 // ENABLE I2C
86 2 EI2C = 1; // disable I2C interrupts
87 2
88 2 EA = 1;
89 2 }
90 1
91 1 os_create_task (TASK_CLOCK); /* 启动时钟任务 */
92 1
93 1 os_create_task (TASK_I2C); /* 启动20毫秒(脉冲采样\I2C通信)任务*/
94 1
95 1 os_create_task (TASK_FK2004); /* 启动负控规约解释任务 */
96 1
97 1 os_create_task (TASK_SPI); /* 轮次控制任务 */
98 1 while(1) os_wait(K_TMO,2,0);
99 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 118 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- ----
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
EDATA SIZE = ---- ----
HDATA SIZE = 4 ----
XDATA CONST SIZE = ---- ----
FAR CONST SIZE = 15 ----
END OF MODULE INFORMATION.
CX51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -