📄 serial.lst
字号:
26 =2 extern char strcmp (char *s1, char *s2);
27 =2 extern char strncmp (char *s1, char *s2, int n);
28 =2
29 =2 extern char *strcpy (char *s1, char *s2);
30 =2 extern char *strncpy (char *s1, char *s2, int n);
31 =2
32 =2 extern int strlen (char *);
33 =2
34 =2 extern char *strchr (const char *s, char c);
35 =2 extern int strpos (const char *s, char c);
36 =2 extern char *strrchr (const char *s, char c);
37 =2 extern int strrpos (const char *s, char c);
38 =2
39 =2 extern int strspn (char *s, char *set);
40 =2 extern int strcspn (char *s, char *set);
41 =2 extern char *strpbrk (char *s, char *set);
42 =2 extern char *strrpbrk (char *s, char *set);
43 =2 extern char *strstr (char *s, char *sub);
44 =2 extern char *strtok (char *str, const char *set);
45 =2
46 =2 extern char memcmp (void *s1, void *s2, int n);
47 =2 extern void *memcpy (void *s1, void *s2, int n);
48 =2 extern void *memchr (void *s, char val, int n);
49 =2 extern void *memccpy (void *s1, void *s2, char val, int n);
50 =2 extern void *memmove (void *s1, void *s2, int n);
51 =2 extern void *memset (void *s, char val, int n);
52 =2 #pragma RESTORE
53 =2
54 =2 #endif
27 =1 #include <ctype.h>
1 =2 /*--------------------------------------------------------------------------
C51 COMPILER V8.08 SERIAL 08/06/2008 16:11:38 PAGE 5
2 =2 CTYPE.H
3 =2
4 =2 Prototypes for character functions.
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 __CTYPE_H__
10 =2 #define __CTYPE_H__
11 =2
12 =2 #pragma SAVE
13 =2 #pragma REGPARMS
14 =2 extern bit isalpha (unsigned char);
15 =2 extern bit isalnum (unsigned char);
16 =2 extern bit iscntrl (unsigned char);
17 =2 extern bit isdigit (unsigned char);
18 =2 extern bit isgraph (unsigned char);
19 =2 extern bit isprint (unsigned char);
20 =2 extern bit ispunct (unsigned char);
21 =2 extern bit islower (unsigned char);
22 =2 extern bit isupper (unsigned char);
23 =2 extern bit isspace (unsigned char);
24 =2 extern bit isxdigit (unsigned char);
25 =2 extern unsigned char tolower (unsigned char);
26 =2 extern unsigned char toupper (unsigned char);
27 =2 extern unsigned char toint (unsigned char);
28 =2
29 =2 #define _tolower(c) ( (c)-'A'+'a' )
30 =2 #define _toupper(c) ( (c)-'a'+'A' )
31 =2 #define toascii(c) ( (c) & 0x7F )
32 =2 #pragma RESTORE
33 =2
34 =2 #endif
28 =1 #include <stdlib.h>
1 =2 /*--------------------------------------------------------------------------
2 =2 STDLIB.H
3 =2
4 =2 Standard functions.
5 =2 Copyright (c) 1988-2005 Keil Elektronik GmbH and Keil Software, Inc.
6 =2 All rights reserved.
7 =2 --------------------------------------------------------------------------*/
8 =2
9 =2 #ifndef __STDLIB_H__
10 =2 #define __STDLIB_H__
11 =2
12 =2 #ifndef _SIZE_T
=2 #define _SIZE_T
=2 typedef unsigned int size_t;
=2 #endif
16 =2
17 =2 #ifndef NULL
=2 #define NULL ((void *) 0L)
=2 #endif
20 =2
21 =2 #ifndef _WCHAR_T_DEFINED_
22 =2 #define _WCHAR_T_DEFINED_
23 =2 typedef char wchar_t;
24 =2 #endif
25 =2
26 =2
27 =2 #pragma SAVE
28 =2 #pragma REGPARMS
C51 COMPILER V8.08 SERIAL 08/06/2008 16:11:38 PAGE 6
29 =2
30 =2 extern int abs (int val);
31 =2 extern long labs (long val);
32 =2
33 =2 extern float atof (char *s1);
34 =2 extern long atol (char *s1);
35 =2 extern int atoi (char *s1);
36 =2 extern int rand ();
37 =2 extern void srand (int);
38 =2
39 =2 extern float strtod (char *, char **);
40 =2 extern long strtol (char *, char **, unsigned char);
41 =2 extern unsigned long strtoul (char *, char **, unsigned char);
42 =2
43 =2 #define _MALLOC_MEM_ xdata
44 =2
45 =2 extern void init_mempool (void _MALLOC_MEM_ *p, unsigned int size);
46 =2 extern void _MALLOC_MEM_ *malloc (unsigned int size);
47 =2 extern void free (void _MALLOC_MEM_ *p);
48 =2 extern void _MALLOC_MEM_ *realloc (void _MALLOC_MEM_ *p, unsigned int size);
49 =2 extern void _MALLOC_MEM_ *calloc (unsigned int size, unsigned int len);
50 =2
51 =2 #pragma RESTORE
52 =2
53 =2 #endif
29 =1
30 =1 #include "uCosii\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 * 改编 : 杨屹 gdtyy@ri.gdt.com.cn 巨龙公司系统集成开发部
15 =2 * 改编 : 钟文青,升级到ucOS-II V2.51
16 =2 *********************************************************************************************************
17 =2 */
18 =2
19 =2 #ifndef __OS_CPU_H
20 =2 #define __OS_CPU_H
21 =2
22 =2 #ifdef OS_CPU_GLOBALS
=2 #define OS_CPU_EXT
=2 #else
25 =2 #define OS_CPU_EXT extern
26 =2 #endif
27 =2
28 =2 /*
29 =2 *********************************************************************************************************
30 =2 * 数据类型
31 =2 * (编译器相关)
32 =2 *********************************************************************************************************
33 =2 */
34 =2
35 =2 //详见C51.PDF第176页
C51 COMPILER V8.08 SERIAL 08/06/2008 16:11:38 PAGE 7
36 =2 typedef unsigned char BOOLEAN; //注意:不要使用bit定义,因为在结构体里无法使用
37 =2 typedef unsigned char INT8U; //无符号8位数
38 =2 typedef signed char INT8S; //有符号8位数
39 =2 typedef unsigned int INT16U; //无符号16位数
40 =2 typedef signed int INT16S; //有符号16位数
41 =2 typedef unsigned long INT32U; //无符号32位数
42 =2 typedef signed long INT32S; //有符号32位数
43 =2 typedef float FP32; //单精度浮点数
44 =2 typedef double FP64; //双精度浮点数
45 =2
46 =2 typedef unsigned char OS_STK; //栈单元宽度为8比特
47 =2 typedef unsigned char OS_CPU_SR; /* Define size of CPU status register (PSW = 8 bits) */
48 =2
49 =2 #define BYTE INT8S //兼容以前版本的数据类型
50 =2 #define UBYTE INT8U //uC/OS-II可以不用这些数据类型
51 =2 #define WORD INT16S
52 =2 #define UWORD INT16U
53 =2 #define LONG INT32S
54 =2 #define ULONG INT32U
55 =2
56 =2 /*
57 =2 *********************************************************************************************************
58 =2 * 处理器相关代码 MCU-51 (大模式)
59 =2 * 针对51单片机,只使用方法1(直接开关中断)
60 =2 *********************************************************************************************************
61 =2 */
62 =2
63 =2 #define OS_CRITICAL_METHOD 1
64 =2
65 =2 #if OS_CRITICAL_METHOD == 1
66 =2 #define OS_ENTER_CRITICAL() EA=0 //关中断
67 =2 #define OS_EXIT_CRITICAL() EA=1 //开中断
68 =2 #endif
69 =2
70 =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 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 */
=2 #define OS_EXIT_CRITICAL() __asm DB 0D0H, 0D0H, 092H, 0AFH
=2 #endif
82 =2
83 =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
87 =2
88 =2
89 =2 #define OS_STK_GROWTH 0 //MCU-51堆栈从下往上增长 1=向下,0=向上
90 =2
91 =2 #define OS_TASK_SW() OSCtxSw() //因为MCU-51没有软中断指令,所以用程序调用代替。两者的堆栈格式相同,
92 =2 //RETI指令复位中断系统,RET则没有。实践表明,对于MCU-51,用子程序调
93 =2 //用入栈,用中断返回指令RETI出栈是没有问题的,反之中断入栈RET出栈则
94 =2 //不行。总之,对于入栈,子程序调用与中断调用效果是一样的,可以混用。
95 =2 //在没有中断发生的情况下复位中断系统也不会影响系统正常运行。
96 =2 //详见《uC/OS-II》第八章193页第12行
C51 COMPILER V8.08 SERIAL 08/06/2008 16:11:38 PAGE 8
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -