⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 os_cpu.h

📁 开发环境:IAR3.10 本程序成功将ucos2移植到MSP430F149上
💻 H
字号:
/*
*********************************************************************************************************
*                                                uC/OS-II
*                                          The Real-Time Kernel
*
*                              (c) Copyright 2002, Micrium, Inc., Weston, FL
*                                           All Rights Reserved
*
*                                               TI MSP430 
*
*
* File         : OS_CPU.H
* By           : Alley Zhou(zzy@lierda.com)
*                Jean J. Labrosse
*********************************************************************************************************
*/

#ifdef  OS_CPU_GLOBALS
#define OS_CPU_EXT
#else
#define OS_CPU_EXT  extern
#endif

/*
*********************************************************************************************************
*                                              数据类型
*                                         
*********************************************************************************************************
*/

typedef unsigned char  BOOLEAN;
typedef unsigned char  INT8U;                    /* 无符号  8 bit                    */
typedef signed   char  INT8S;                    /* 有符号  8 bit                    */
typedef unsigned int   INT16U;                   /* 无符号  16 bit                   */
typedef signed   int   INT16S;                   /* 有符号  16 bit                   */
typedef unsigned long  INT32U;                   /* 无符号  32 bit                   */
typedef signed   long  INT32S;                   /* 有符号  32 bit                   */
typedef float          FP32;                     /* 单精度浮点数                     */
typedef double         FP64;                     /* 双精度浮点数                     */

typedef unsigned int   OS_STK;                   /* 堆栈宽度16位                     */
typedef unsigned int   OS_CPU_SR;                /* 状态寄存器宽度16位               */

/* 
*********************************************************************************************************
*                                             TI MSP430
*
* 方法 #1:   用简单指令开关中断。
*            注意,用方法1关闭中断,从调用函数返回后中断会重新打开!
*
*
* 方法 #2:   中断的势能与否与先前的中断状态有关,比如,在进入临界段前中断势能关闭的话,
*            退出临界段时中断势能仍然关闭。
*
* 方法 #3    中断势能与否与先前的中断状态有关。先将状态寄存器SR存储到局部变量CPU_SR中,
*            然后关闭中断,UCOS-II在需要关闭中断的地方都分配一个局部变量CPU_SR,
*            最后通过将CPU_SR的值复制到状态寄存器来恢复中断势能状态。
*********************************************************************************************************
*/
#define  OS_CRITICAL_METHOD    3


#if      OS_CRITICAL_METHOD == 1
#define  OS_ENTER_CRITICAL()		_DINT()				  /* 关中断                        */
#define  OS_EXIT_CRITICAL()			_EINT()				  /* 开中断                        */
#endif

#if      OS_CRITICAL_METHOD == 2
#define  OS_ENTER_CRITICAL()                              /* 关中断                        */
#define  OS_EXIT_CRITICAL()                               /* 开中断                        */
#endif

#if      OS_CRITICAL_METHOD == 3
#define  OS_ENTER_CRITICAL()  (cpu_sr = OSCPUSaveSR())    /* 关中断                        */
#define  OS_EXIT_CRITICAL()   (OSCPURestoreSR(cpu_sr))    /* 开中断                        */
#endif

/*
*********************************************************************************************************
*                                             MSP430
*********************************************************************************************************
*/

#define  OS_STK_GROWTH        1                       /* MSP430 的堆栈从高到底             */

#define  OS_TASK_SW()         OSCtxSw()				  /* 任务级任务切换函数                */

/*
*********************************************************************************************************
*                                           全局变量
*********************************************************************************************************
*/

OS_CPU_EXT  OS_STK  *OSISRStkPtr;                    /* 中断服务程序堆栈指针               */

/*
*********************************************************************************************************
*                                            函数声明
*********************************************************************************************************
*/

OS_CPU_SR  OSCPUSaveSR(void);
void       OSCPURestoreSR(OS_CPU_SR cpu_sr);

⌨️ 快捷键说明

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