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

📄 os_cpu.h

📁 ucos ii 在linux移植说明 包括详细文档
💻 H
字号:
/*
*********************************************************************************************************
*                                                uC/OS-II
*                                          The Real-Time Kernel
*                                               Linux Port
*
* File: os_cpu_c.c
* By: Philip Mitchell* Email: mitchell_philip@hotmail.com
* Version: v1.00
*
*********************************************************************************************************
*/

#ifndef OS_CPU_LINUX_PORT
#ifdef OS_CPU_GLOBALS#define OS_CPU_EXT#else#define OS_CPU_EXT extern#endif#include <signal.h>#include <stddef.h>/***********************************************************************************************************                                              DATA TYPES*                                         (Compiler Specific)**********************************************************************************************************/typedef unsigned char  		BOOLEAN;
typedef unsigned char  		INT8U;
typedef signed   char  		INT8S;
typedef unsigned short int  INT16U;
typedef signed   short int  INT16S;
typedef unsigned int  		INT32U;
typedef signed   int  		INT32S;
typedef float          		FP32;
typedef INT32U  			OS_STK;
//typedef sigset_t			OS_CPU_SR;#ifndef OS_CPU_SR#define OS_CPU_SR	sigset_t new_cpu_sr; int#endif
/***********************************************************************************************************                                          Processor Specifics**********************************************************************************************************/#define OS_SYSTEM_RESET_EN	0
/* Extra functionality of this port. It is a user definable system reset function */
#if OS_SYSTEM_RESET_EN > 0
void OSSystemReset(void);
#endif/* Extra functionality of this port. Minimum stack size. Pthreads creates its own stack for each thread(task) but a minimum size is needed internally for the ports use. */int OSMinStkSize();
#define OS_CRITICAL_METHOD 3
/* Block interrupts by blocking the alarm signal */
#define OS_ENTER_CRITICAL() { sigset_t mask; sigemptyset( &mask ); sigaddset( &mask, SIGALRM ); sigprocmask( SIG_SETMASK, &mask, &new_cpu_sr ); }
/* Unblock the alarm signal */
#define OS_EXIT_CRITICAL() { sigprocmask(SIG_SETMASK, &new_cpu_sr, NULL); }

/* Stack grows high to low */
#define  OS_STK_GROWTH      1

/* OS_TASK_SW below performs task switching exactly as the alarm signal does */
#define OS_TASK_SW() { OSCtxSw(); } 

#endif /* OS_CPU_LINUX_PORT */

⌨️ 快捷键说明

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