亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? compiler_defs.h

?? 一個采用C8051F020+CH372實現的帶USB功能的流量測控系統
?? H
字號:
//-----------------------------------------------------------------------------
// compiler_defs.h
//-----------------------------------------------------------------------------
// Copyright 2007, Silicon Laboratories, Inc.
// http://www.silabs.com
//
// Program Description:
//
// Macro definitions to accomodate 8051 compiler differences in specifying
// special function registers and other 8051-specific features.
// **Important Note**: This header file should be included before including
// a device-specific header file such as C8051F300_defs.h.
//
// Target:         C8051xxxx
// Tool chain:     Generic
// Command Line:   None
//
// Release 1.4 - 07 AUG 2007 (PKC)
//    -Removed FID and fixed formatting.
// Release 1.3 - 30 SEP 2007 (TP)
//    -Added INTERRUPT_PROTO_USING to properly support ISR context switching
//     under SDCC.
// Release 1.2 - (BW)
//    -Added support for U8,U16,U32,S8,S16,S32,UU16,UU32 data types
// Release 1.1 - (BW)
//    -Added support for INTERRUPT, INTERRUPT_USING, INTERRUPT_PROTO,
//     SEGMENT_VARIABLE, VARIABLE_SEGMENT_POINTER,
//     SEGMENT_VARIABLE_SEGMENT_POINTER, and LOCATED_VARIABLE
// Release 1.0 - 29 SEP 2006 (PKC)
//    -Initial revision

//-----------------------------------------------------------------------------
// Header File Preprocessor Directive
//-----------------------------------------------------------------------------

#ifndef COMPILER_DEFS_H
#define COMPILER_DEFS_H

//-----------------------------------------------------------------------------
// Macro definitions
//-----------------------------------------------------------------------------

// The following macro definitions have been adapted from SDCC file compiler.h
// This file is free software; you can redistribute it and/or modify it
// under the terms of the GNU Lesser General Public License as published by
// the Free Software Foundation; either version 2.1 of the License, or
// (at your option) any later version.

// This header file is designed to accommodate 8051 compiler differences in
// specifying special function registers. The following compilers are supported:
// SDCC, Keil, Raisonance, IAR, Hi-Tech, Tasking, Crossware, Wickenh鋟ser.

// SBIT and SFR define special bit and special function registers at the given
// address. SFR16 and SFR32 define sfr combinations at adjacent addresses in
// little-endian format. SFR16E and SFR32E define sfr combinations without
// prerequisite byte order or adjacency. None of these multi-byte sfr
// combinations will guarantee the order in which they are accessed when read
// or written.

// SDCC - Small Device C Compiler
// http://sdcc.sf.net

#if defined SDCC

# define SBIT(name, addr, bit)  __sbit  __at(addr+bit)             name
# define SFR(name, addr)        __sfr   __at(addr)                 name
# define SFR16(name, addr)      __sfr16 __at(((addr+1)<<8) | addr) name
# define SFR16E(name, fulladdr) __sfr16 __at(fulladdr)             name
# define SFR32(name, addr)      __sfr32 __at(((addr+3)<<24) | ((addr+2)<<16) | ((addr+1)<<8) | addr) name
# define SFR32E(name, fulladdr) __sfr32 __at(fulladdr)             name

# define INTERRUPT(name, vector) void name (void) interrupt (vector)
# define INTERRUPT_USING(name, vector, regnum) void name (void) interrupt (vector) using (regnum)
# define INTERRUPT_PROTO(name, vector) void name (void) interrupt (vector)
# define INTERRUPT_PROTO_USING(name, vector, regnum) void name (void) interrupt (vector) using (regnum)

// Note:  the preprocessor does not like the "__" inserted before the segment identifiers, so they have been removed,
// but things still work properly.
# define SEGMENT_VARIABLE(name, vartype, locsegment) locsegment vartype name
# define VARIABLE_SEGMENT_POINTER(name, vartype, targsegment) targsegment vartype * name
# define SEGMENT_VARIABLE_SEGMENT_POINTER(name, vartype, targsegment, locsegment) targsegment vartype * locsegment name
# define LOCATED_VARIABLE(name, vartype, locsegment, addr, init) locsegment at (addr) vartype name = init

# define LSB 0
# define MSB 1

# define b0 0
# define b1 1
# define b2 2
# define b3 3

typedef unsigned char U8;
typedef unsigned int U16;
typedef unsigned long U32;

typedef char S8;
typedef int S16;
typedef long S32;

typedef union UU16
{
   U16 U16;
   S16 S16;
   U8 U8[2];
   S8 S8[2];
} UU16;

typedef union UU32
{
   U32 U32;
   S32 S32;
   UU16 UU16[2];
   U16 U16[2];
   S16 S16[2];
   U8 U8[4];
   S8 S8[4];
} UU32;

//-----------------------------------------------------------------------------

// Keil C51
// http://www.keil.com

#elif defined __C51__

# define SBIT(name, addr, bit)  sbit  name = addr^bit
# define SFR(name, addr)        sfr   name = addr
# define SFR16(name, addr)      sfr16 name = addr
# define SFR16E(name, fulladdr) /* not supported */
# define SFR32(name, fulladdr)  /* not supported */
# define SFR32E(name, fulladdr) /* not supported */

# define INTERRUPT(name, vector) void name (void) interrupt vector
# define INTERRUPT_USING(name, vector, regnum) void name (void) interrupt vector using regnum
# define INTERRUPT_PROTO(name, vector) void name (void)
# define INTERRUPT_PROTO_USING(name, vector, regnum) void name (void)

# define SEGMENT_VARIABLE(name, vartype, locsegment) vartype locsegment name
# define VARIABLE_SEGMENT_POINTER(name, vartype, targsegment) vartype targsegment * name
# define SEGMENT_VARIABLE_SEGMENT_POINTER(name, vartype, targsegment, locsegment) vartype targsegment * locsegment name
# define LOCATED_VARIABLE(name, vartype, locsegment, addr, init) vartype locsegment name _at_ addr

# define LSB 1
# define MSB 0

# define b0 3
# define b1 2
# define b2 1
# define b3 0

typedef unsigned char U8;
typedef unsigned int U16;
typedef unsigned long U32;

typedef char S8;
typedef int S16;
typedef long S32;

typedef union UU16
{
   U16 U16;
   S16 S16;
   U8 U8[2];
   S8 S8[2];
} UU16;

typedef union UU32
{
   U32 U32;
   S32 S32;
   UU16 UU16[2];
   U16 U16[2];
   S16 S16[2];
   U8 U8[4];
   S8 S8[4];
} UU32;

//-----------------------------------------------------------------------------

// Raisonance
// http://www.raisonance.com

#elif defined __RC51__
# define SBIT(name, addr, bit)  at (addr+bit) sbit         name
# define SFR(name, addr)        sfr at addr                name
# define SFR16(name, addr)      sfr16 at addr              name
# define SFR16E(name, fulladdr) /* not supported */
# define SFR32(name, fulladdr)  /* not supported */
# define SFR32E(name, fulladdr) /* not supported */

//-----------------------------------------------------------------------------

// IAR 8051
// http://www.iar.com

#elif defined __ICC8051__

# include "stdbool.h"

// the 'bool' business, including the "stdbool.h" include are BS
# define bit bool

# define SBIT(name, addr, bit)  __no_init __bit volatile bool name @ (addr+bit)
# define SFR(name, addr)        __sfr __no_init volatile unsigned char name @ addr
# define SFR16(name, addr)      __sfr __no_init volatile unsigned int  name @ addr
# define SFR16E(name, fulladdr) /* not supported */
# define SFR32(name, fulladdr)  __sfr __no_init volatile unsigned long name @ addr
# define SFR32E(name, fulladdr) /* not supported */

// interrupts also require #pragma's for vector address and register bank, in addition to
// the below macros (untested)
# define INTERRUPT(name, vector) __interrupt void name (void)
# define INTERRUPT_USING(name, vector, regnum) __interrupt void name (void)
# define INTERRUPT_PROTO(name, vector)

// memory attributes not allowed on autovariables or parameters, therefore
// the following segment-specified macros are not supported by the compiler

# define SEGMENT_VARIABLE(name, vartype, locsegment) vartype __locsegment name ;
# define VARIABLE_SEGMENT_POINTER(name, vartype, targsegment) vartype __targsegment * name ;
# define SEGMENT_VARIABLE_SEGMENT_POINTER(name, vartype, targsegment, locsegment) vartype __targsegment * __locsegment name ;
# define LOCATED_VARIABLE(name, vartype, locsegment, addr) __locsegment vartype name @ addr ;

//-----------------------------------------------------------------------------

// Tasking / Altium
// http://www.altium.com/tasking

#elif defined _CC51
# define SBIT(name, addr, bit)  _sfrbit  name _at(addr+bit)
# define SFR(name, addr)        _sfrbyte name _at(addr)
# define SFR16(name, addr)      /* not supported */
# define SFR16E(name, fulladdr) /* not supported */
# define SFR32(name, fulladdr)  /* not supported */
# define SFR32E(name, fulladdr) /* not supported */

//-----------------------------------------------------------------------------

// Hi-Tech 8051
// http://www.htsoft.com

#elif defined HI_TECH_C
# define SBIT(name, addr, bit)  volatile bit           name @ (addr+bit)
# define SFR(name, addr)        volatile unsigned char name @ addr
# define SFR16(name, addr)      /* not supported */
# define SFR16E(name, fulladdr) /* not supported */
# define SFR32(name, fulladdr)  /* not supported */
# define SFR32E(name, fulladdr) /* not supported */

//-----------------------------------------------------------------------------

// Crossware
// http://www.crossware.com

#elif defined _XC51_VER
# define SBIT(name, addr, bit)  _sfrbit  name = (addr+bit)
# define SFR(name, addr)        _sfr     name = addr
# define SFR16(name, addr)      _sfrword name = addr
# define SFR16E(name, fulladdr) /* not supported */
# define SFR32(name, fulladdr)  /* not supported */
# define SFR32E(name, fulladdr) /* not supported */

//-----------------------------------------------------------------------------

// Wickenh鋟ser
// http://www.wickenhaeuser.de

#elif defined __UC__
# define SBIT(name, addr, bit)  unsigned char bit  name @ (addr+bit)
# define SFR(name, addr)        near unsigned char name @ addr
# define SFR16(name, addr)      /* not supported */
# define SFR16E(name, fulladdr) /* not supported */
# define SFR32(name, fulladdr)  /* not supported */
# define SFR32E(name, fulladdr) /* not supported */

//-----------------------------------------------------------------------------

// Default
// Unknown compiler

#elif
# define SBIT(name, addr, bit)  volatile bool
# define SFR(name, addr)        volatile unsigned char
# define SFR16(name, addr)      volatile short
# define SFR16E(name, fulladdr) volatile short
# define SFR32(name, fulladdr)  volatile int
# define SFR32E(name, fulladdr) volatile int

#endif

//-----------------------------------------------------------------------------
// Header File PreProcessor Directive
//-----------------------------------------------------------------------------

#endif                                 // #define COMPILER_DEFS_H

//-----------------------------------------------------------------------------
// End Of File
//-----------------------------------------------------------------------------

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
狠狠v欧美v日韩v亚洲ⅴ| 一区在线观看免费| 在线观看视频欧美| 国产精品国产三级国产| 国产+成+人+亚洲欧洲自线| 久久久久九九视频| 福利一区二区在线观看| 欧美激情一区三区| 91美女在线看| 偷拍一区二区三区四区| 日韩欧美国产综合一区| 国产盗摄女厕一区二区三区| 欧美国产日韩a欧美在线观看| 成人h动漫精品一区二区 | 91久久精品一区二区| 亚洲综合区在线| 欧美一区二区三区四区高清| 国产一区美女在线| 亚洲激情第一区| 91精品国产综合久久精品| 国产又粗又猛又爽又黄91精品| 国产精品免费久久| 欧美日韩视频在线一区二区 | 欧美一区二区网站| 国产一区二区不卡老阿姨| 中文字幕五月欧美| 欧美一级欧美一级在线播放| 九九久久精品视频| 一区二区三区在线视频观看58| 欧美一区三区二区| 91丝袜美腿高跟国产极品老师 | 国产一区二区三区视频在线播放| 国产精品伦理一区二区| 欧美精品v日韩精品v韩国精品v| 精品一区二区三区视频| 亚洲三级电影网站| 精品福利一二区| 欧美日韩一区久久| 成人精品免费看| 麻豆91小视频| 亚洲综合久久久| 欧美国产精品一区二区三区| 欧美乱妇一区二区三区不卡视频| 成人中文字幕合集| 美日韩一区二区| 一区二区三区精品视频在线| 国产日韩亚洲欧美综合| 欧美一区二区大片| 在线观看视频91| 成人精品在线视频观看| 国产在线不卡视频| 免费看精品久久片| 一区二区三区**美女毛片| 欧美国产在线观看| 精品福利一区二区三区| 欧美自拍偷拍一区| 9人人澡人人爽人人精品| 久久精品久久99精品久久| 亚洲香蕉伊在人在线观| 亚洲色图制服诱惑 | 国产激情一区二区三区四区| 青青草成人在线观看| 亚洲免费观看在线视频| 国产精品毛片久久久久久 | 久久精品夜色噜噜亚洲aⅴ| 欧美精品第1页| 欧美日韩一区国产| 欧美性受xxxx黑人xyx| 色综合久久中文字幕综合网| 成人中文字幕电影| 成人av午夜影院| 成人精品免费视频| 成人av电影在线网| 成人免费的视频| 成人免费不卡视频| 99久久免费精品| 91亚洲国产成人精品一区二三 | 久久天堂av综合合色蜜桃网| 91精品国产欧美一区二区| 欧美精品久久久久久久多人混战 | 成人avav影音| 91丨porny丨户外露出| 91视频免费观看| 91福利国产精品| 欧美在线短视频| 欧美人体做爰大胆视频| 欧美一区国产二区| 精品国产乱码久久久久久浪潮| 精品国产精品网麻豆系列| 国产日韩高清在线| 一区在线播放视频| 亚洲在线观看免费| 奇米色一区二区三区四区| 男人的j进女人的j一区| 337p亚洲精品色噜噜狠狠| 欧美日韩国产一区二区三区地区| 91精品国模一区二区三区| 欧美videossexotv100| 国产精品久久网站| 亚洲国产精品成人综合| 综合av第一页| 午夜电影久久久| 国产乱码精品一区二区三区av| 成人少妇影院yyyy| 欧美影院一区二区| 精品国产亚洲在线| 亚洲欧洲成人精品av97| 天天影视网天天综合色在线播放| 奇米在线7777在线精品| 成人涩涩免费视频| 欧美日韩国产免费| 国产欧美一区二区三区在线看蜜臀 | 成人国产在线观看| 91在线小视频| 91麻豆精品国产自产在线观看一区| 欧美高清视频一二三区| 国产日韩精品一区二区三区在线| 依依成人综合视频| 久久99精品久久久久久动态图| 福利电影一区二区| 欧美日韩国产乱码电影| 国产肉丝袜一区二区| 亚洲资源中文字幕| 国模少妇一区二区三区| 在线中文字幕一区二区| 日韩精品专区在线影院重磅| 亚洲日本在线视频观看| 九九九精品视频| 在线观看国产日韩| 久久精品亚洲一区二区三区浴池| 亚洲色图在线播放| 国产伦精品一区二区三区免费迷 | 国产精品99久| 91精品国产综合久久精品麻豆 | 精品国产一区二区三区四区四 | 日本三级韩国三级欧美三级| 成人av电影观看| 精品福利av导航| 亚洲国产一区二区在线播放| 国产成人午夜99999| 6080国产精品一区二区| 亚洲天堂2016| 国产麻豆视频精品| 91精品国产综合久久福利| 一区二区三区在线视频观看| 国产精品亚洲а∨天堂免在线| 欧美日韩激情在线| 亚洲精品国产a久久久久久| 国产99精品在线观看| 日韩一区二区在线看| 亚洲一卡二卡三卡四卡五卡| 成人黄色一级视频| 国产日本欧美一区二区| 国模套图日韩精品一区二区| 91精品国产免费| 亚洲成av人影院| 在线视频国内自拍亚洲视频| 亚洲天堂中文字幕| 北条麻妃国产九九精品视频| 国产亚洲午夜高清国产拍精品| 老司机一区二区| 日韩欧美一区二区视频| 秋霞国产午夜精品免费视频| 欧美亚洲动漫制服丝袜| 亚洲精品成人精品456| 91亚洲午夜精品久久久久久| 亚洲天堂免费看| 色激情天天射综合网| 亚洲欧美日韩在线| 色呦呦国产精品| 亚洲精品国产a| 欧美日韩亚洲另类| 热久久国产精品| 欧美不卡激情三级在线观看| 久久狠狠亚洲综合| 久久蜜臀精品av| 国产 日韩 欧美大片| 欧美激情一区三区| 99国产欧美另类久久久精品| 日韩一区在线免费观看| 在线观看av一区| 秋霞午夜鲁丝一区二区老狼| 日韩三级免费观看| 国产精品亚洲一区二区三区妖精 | 国产精品免费视频观看| 99热这里都是精品| 一个色综合av| 欧美一区二区三区喷汁尤物| 精品一区二区三区在线观看| 日本一区二区三区视频视频| 一本色道久久综合精品竹菊| 亚洲高清三级视频| 日韩精品一区二区三区四区| 国产成人av福利| 一区二区高清免费观看影视大全 | 精品一区二区三区久久久| 久久久99精品久久| 色呦呦国产精品| 日本亚洲最大的色成网站www| 久久久一区二区三区|