basictyp.h

来自「ertfs文件系统里面既有完整ucos程序」· C头文件 代码 · 共 142 行

H
142
字号
#ifndef __BASIC_TYPE_H__
#define __BASIC_TYPE_H__

/*
   *************************************************************************
    basic typedefs
   *************************************************************************
*/
typedef signed char       INT8;
typedef signed short      INT16;
typedef signed long       INT32;
typedef signed char *     PINT8;
typedef signed short *    PINT16;
typedef signed long *     PINT32;

typedef unsigned char       UINT8;
typedef unsigned short      UINT16;
typedef unsigned long       UINT32;
typedef unsigned char *     PUINT8;
typedef unsigned short *    PUINT16;
typedef unsigned long *     PUINT32;


typedef unsigned char                 BOOLEAN;


/*
   *************************************************************************
    basic typedefs for structures
   *************************************************************************
*/
#ifdef BIG_ENDIAN
typedef union {
    struct 
    {
        INT8    Type;
        INT8    Index;
    } Descriptor;

    struct 
    {
        INT8 tx0;  // MSB for 8051 Keil C
        INT8 tx1;   
        INT8 endp;   
        INT8 c0;   // LSB for 8051 Keil C
    } chars;

    struct 
    {
        INT8 c3;  // MSB for 8051 Keil C
        INT8 c2;   
        INT8 c1;   
        INT8 c0;   // LSB for 8051 Keil C
    } chars0;

    struct
    {
        INT16 i1;    // MSW for 8051 keil C
        INT16 i0;    // LSW for 8051 Keil C
    } ints;

    INT32 u0;

} FLEXI_INT32;

typedef union  {
    struct 
    {
        INT8 c1;   // MSB for 8051 Keil C
        INT8 c0;   // LSB for 8051 Keil C
    } chars;

    INT16 i0;
} FLEXI_INT16, * PFLEXI_INT16;

#else // Little Endian

typedef __packed union {
    __packed struct 
    {
        INT8    Type;
        INT8    Index;
    } Descriptor;

    __packed struct 
    {
        INT8 endp;   
        INT8 c0;   
        INT8 tx0;  
        INT8 tx1;   
    } chars;

    __packed struct 
    {
        INT8 c0;	// LSB
        INT8 c1;   
        INT8 c2;   
        INT8 c3;	// MSB 
    } chars0;

    __packed struct
    {
        INT16 i0;    // LSW 
        INT16 i1;    // MSW 
    } ints;

    INT32 u0;

} FLEXI_INT32;

typedef union  {
    struct 
    {
        INT8 c0;   // LSB for 8051 Keil C
        INT8 c1;   // MSB for 8051 Keil C
    } chars;

    INT16 i0;
} FLEXI_INT16, * PFLEXI_INT16;
#endif 


#define DATA_SEG    data
#define BDATA_SEG   bdata
#define IDATA_SEG   idata
#define XDATA_SEG   xdata

#ifdef  GLOBAL_EXT
#define BIT_EXT     sbit
#define STRUC_EXT   
#define INT8_EXT    INT8
#define INT16_EXT   INT16
#define INT32_EXT   INT32
#else
#define BIT_EXT     extern bit
#define STRUC_EXT   extern 
#define INT8_EXT    extern INT8
#define INT16_EXT   extern INT16
#define INT32_EXT   extern INT32
#endif

#endif

⌨️ 快捷键说明

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