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

📄 targetos.h

📁 ATMEL单片机可用的文件系统源代码
💻 H
字号:
/***********************************************************************/
/*                                                                     */
/*   Module:  targetos.h                                               */
/*   Release: 2004.5                                                   */
/*   Version: 2004.1                                                   */
/*   Purpose: Centralizes definitions used throughout                  */
/*                                                                     */
/*---------------------------------------------------------------------*/
/*                                                                     */
/*               Copyright 2004, Blunk Microsystems                    */
/*                      ALL RIGHTS RESERVED                            */
/*                                                                     */
/*   Licensees have the non-exclusive right to use, modify, or extract */
/*   this computer program for software development at a single site.  */
/*   This program may be resold or disseminated in executable format   */
/*   only. The source code may not be redistributed or resold.         */
/*                                                                     */
/***********************************************************************/
#ifndef TARGETOS_H
#define TARGETOS_H

#ifdef __cplusplus
extern "C"
{
#endif

/***********************************************************************/
/* TargetOS Configuration                                              */
/***********************************************************************/
/*
** Error message strings are included if TRUE
*/
#define OS_INC_ERR_STRINGS      TRUE

/*
** Parameter errors are detected if TRUE
*/
#define OS_PARM_CHECK   TRUE    /* TRUE or FALSE */

/***********************************************************************/
/* General Definitions                                                 */
/***********************************************************************/
#define i8      char
#define i16     short
#define i32     int

#define ui8     unsigned char
#define ui16    unsigned short
#define ui32    unsigned int

#define vi8     volatile char
#define vi16    volatile short
#define vi32    volatile int

#define vui8    volatile unsigned char
#define vui16   volatile unsigned short
#define vui32   volatile unsigned int

#define uint    unsigned int
#define ssize_t int
#define size_t  unsigned int

#define TRUE    1
#define FALSE   0
#define ESC     0x1B

#define REG_8(addr)     (*(volatile ui8  *)(addr))
#define REG16(addr)     (*(volatile ui16 *)(addr))
#define REG32(addr)     (*(volatile ui32 *)(addr))

#define min(a, b)       (((a) < (b)) ? (a) : (b))
#define max(a, b)       (((a) > (b)) ? (a) : (b))

#define SEQ_GE(a, b)    ((i32)((a) - (b)) >= 0)
#define SEQ_GT(a, b)    ((i32)((a) - (b)) > 0)
#define SEQ_LE(a, b)    ((i32)((a) - (b)) <= 0)
#define SEQ_LT(a, b)    ((i32)((a) - (b)) < 0)

#define wr16_le(value, addr)                    \
  *((ui8 *)(addr) + 0) = (ui8)(value >> 0);     \
  *((ui8 *)(addr) + 1) = (ui8)(value >> 8);

#define wr24_le(value, addr)                    \
  *((ui8 *)(addr) + 0) = (ui8)(value >> 0);     \
  *((ui8 *)(addr) + 1) = (ui8)(value >> 8);     \
  *((ui8 *)(addr) + 2) = (ui8)(value >> 16);

#define wr32_le(value, addr)                    \
  *((ui8 *)(addr) + 0) = (ui8)(value >> 0);     \
  *((ui8 *)(addr) + 1) = (ui8)(value >> 8);     \
  *((ui8 *)(addr) + 2) = (ui8)(value >> 16);    \
  *((ui8 *)(addr) + 3) = (ui8)(value >> 24);

#define wr16_be(value, addr)                    \
  *((ui8 *)(addr) + 0) = (ui8)(value >> 8);     \
  *((ui8 *)(addr) + 1) = (ui8)(value >> 0);

#define wr24_be(value, addr)                    \
  *((ui8 *)(addr) + 1) = (ui8)(value >> 16);    \
  *((ui8 *)(addr) + 2) = (ui8)(value >> 8);     \
  *((ui8 *)(addr) + 3) = (ui8)(value >> 0);

#define wr32_be(value, addr)                    \
  *((ui8 *)(addr) + 0) = (ui8)(value >> 24);    \
  *((ui8 *)(addr) + 1) = (ui8)(value >> 16);    \
  *((ui8 *)(addr) + 2) = (ui8)(value >> 8);     \
  *((ui8 *)(addr) + 3) = (ui8)(value >> 0);

#define EOF       (-1)

#ifdef __cplusplus
}
#endif

#endif /* TARGETOS_H */

⌨️ 快捷键说明

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