os_cpu.h

来自「small rtos在PHILIP ARM LPC2104上实现的一些例程。」· C头文件 代码 · 共 90 行

H
90
字号
/*********************************************************************************************************
**				                               Small RTOS 51
**                                   The Real-Time Kernel For Keil c51
**
**                                  (c) Copyright 2002-2003, chenmingji
**                                           All Rights Reserved
**
**                                                  V1.20.0
**
**
**--------------文件信息--------------------------------------------------------------------------------
**文   件   名: OS_CPU.h
**创   建   人: 陈明计
**版        本: V1.20.0
**最后修改日期:  2003年8月17日
**描       述: Small RTOS与CPU(既pc2106/lpc2105/lpc2104)相关的C语言头文件,定义一些与CPU相关的宏。
**
**--------------历史版本信息----------------------------------------------------------------------------
** 创建人: 陈明计
** 版  本: V1.20.0
** 日 期: 2003年8月17日
** 描 述: 原始版本
**
**--------------当前版本修订------------------------------------------------------------------------------
** 修改人: 
** 日 期:
** 描 述:
**
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
#define idata                                   /* 非keil c51时必须加止这一句                               */
#define data                                    /* 非keil c51时必须加止这一句                               */
#define xdata                                   /* 非keil c51时必须加止这一句                               */
#define reentrant                               /* 非keil c51时必须加止这一句                               */
#define small                                   /* 非keil c51时必须加止这一句                               */
#define code                                    /* 非keil c51时必须加止这一句                               */


/**********************************************************************************************************
*                    定义与编译器无关的数据类型
**********************************************************************************************************/

typedef unsigned char  uint8;                    /* 无符号8位整型变量                        */
typedef signed   char  int8;                    /* 有符号8位整型变量                        */
typedef unsigned short uint16;                  /* 无符号16位整型变量                       */
typedef signed   short int16;                   /* 有符号16位整型变量                       */
typedef unsigned int   uint32;                  /* 无符号32位整型变量                       */
typedef signed   int   int32;                   /* 有符号32位整型变量                       */


/* *********************************************************************************************************
*                    与ARM7体系结构相关的一些定义
**********************************************************************************************************/

extern void OSCPUInit(void);
extern void OSTaskStkInit(void (*task)(void), void *ptos, uint8 TaskID);
extern void OSTaskStkDel(uint8 TaskID) small;

#ifndef NULL
#define NULL 0
#endif

__swi(0x00) void OS_TASK_SW(void);              /*  任务级任务切换函数          */

__swi(0x02) void OS_ENTER_CRITICAL(void);       /*  关中断                      */
__swi(0x03) void OS_EXIT_CRITICAL(void);        /*  开中断                      */


__swi(0x80) void ChangeToSYSMode(void);         /*  任务切换到系统模式          */
__swi(0x81) void ChangeToUSRMode(void);         /*  任务切换到用户模式          */
__swi(0x82) void TaskIsARM(uint8 TaskID);       /*  任务代码是ARM代码           */
__swi(0x83) void TaskIsTHUMB(uint8 TaskID);     /*  任务代码是THUMB             */

extern void OSIntCtxSw(void);

#define     USR32Mode       0x10                /*  用户模式                    */
#define     SYS32Mode       0x1f                /*  系统模式                    */
#define     NoInt           0x80

#ifndef USER_USING_MODE
#define	USER_USING_MODE	USR32Mode               /*  任务缺省模式                 */
#endif

#define OSIntCtxSw()


/*********************************************************************************************************
**                            End Of File
********************************************************************************************************/

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?