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

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

?? compiler.h

?? freertosV4.40 是一種small的嵌入式系統(tǒng)。利于嵌入式開好者入門學習嵌入式操作系統(tǒng)。通過對于源碼的學習可以很好的掌握freertos的運行機制。
?? H
?? 第 1 頁 / 共 3 頁
字號:
/*This file is prepared for Doxygen automatic documentation generation.*/
/*! \file *********************************************************************
 *
 * \brief Compiler file for AVR32.
 *
 * This file defines commonly used types and macros.
 *
 * - Compiler:           IAR EWAVR32 and GNU GCC for AVR32
 * - Supported devices:  All AVR32 devices can be used.
 * - AppNote:
 *
 * \author               Atmel Corporation: http://www.atmel.com \n
 *                       Support and FAQ: http://support.atmel.no/
 *
 ******************************************************************************/

/* Copyright (c) 2007, Atmel Corporation All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions are met:
 *
 * 1. Redistributions of source code must retain the above copyright notice,
 * this list of conditions and the following disclaimer.
 *
 * 2. Redistributions in binary form must reproduce the above copyright notice,
 * this list of conditions and the following disclaimer in the documentation
 * and/or other materials provided with the distribution.
 *
 * 3. The name of ATMEL may not be used to endorse or promote products derived
 * from this software without specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY ATMEL ``AS IS'' AND ANY EXPRESS OR IMPLIED
 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE EXPRESSLY AND
 * SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT,
 * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */


#ifndef _COMPILER_H_
#define _COMPILER_H_

#include <avr32/io.h>
#if __ICCAVR32__
#  include <intrinsics.h>
#endif
#include "preprocessor.h"


//_____ D E C L A R A T I O N S ____________________________________________

#ifdef __AVR32_ABI_COMPILER__ // Automatically defined when compiling for AVR32, not when assembling.

#include <stddef.h>
#include <stdlib.h>


#if __ICCAVR32__

/*! \name Compiler Keywords
 *
 * Port of some keywords from GNU GCC for AVR32 to IAR Embedded Workbench for Atmel AVR32.
 */
//! @{
#define __asm__             asm
#define __inline__          inline
#define __volatile__
//! @}

#endif


/*! \name Usual Types
 */
//! @{
typedef unsigned char           Bool; //!< Boolean.
typedef unsigned char           U8 ;  //!< 8-bit unsigned integer.
typedef unsigned short int      U16;  //!< 16-bit unsigned integer.
typedef unsigned long int       U32;  //!< 32-bit unsigned integer.
typedef unsigned long long int  U64;  //!< 64-bit unsigned integer.
typedef signed char             S8 ;  //!< 8-bit signed integer.
typedef signed short int        S16;  //!< 16-bit signed integer.
typedef signed long int         S32;  //!< 32-bit signed integer.
typedef signed long long int    S64;  //!< 64-bit signed integer.
typedef float                   F32;  //!< 32-bit floating-point number.
typedef double                  F64;  //!< 64-bit floating-point number.
//! @}


/*! \name Status Types
 */
//! @{
typedef Bool                Status_bool_t;  //!< Boolean status.
typedef U8                  Status_t;       //!< 8-bit-coded status.
//! @}


/*! \name Aliasing Aggregate Types
 */
//! @{

//! 16-bit union.
typedef union
{
  U16 u16   ;
  U8  u8 [2];
} Union16;

//! 32-bit union.
typedef union
{
  U32 u32   ;
  U16 u16[2];
  U8  u8 [4];
} Union32;

//! 64-bit union.
typedef union
{
  U64 u64   ;
  U32 u32[2];
  U16 u16[4];
  U8  u8 [8];
} Union64;

//! Union of pointers to 64-, 32-, 16- and 8-bit unsigned integers.
typedef union
{
  U64 *u64ptr;
  U32 *u32ptr;
  U16 *u16ptr;
  U8  *u8ptr ;
} UnionPtr;

//! Union of pointers to volatile 64-, 32-, 16- and 8-bit unsigned integers.
typedef union
{
  volatile U64 *u64ptr;
  volatile U32 *u32ptr;
  volatile U16 *u16ptr;
  volatile U8  *u8ptr ;
} UnionVPtr;

//! Union of pointers to constant 64-, 32-, 16- and 8-bit unsigned integers.
typedef union
{
  const U64 *u64ptr;
  const U32 *u32ptr;
  const U16 *u16ptr;
  const U8  *u8ptr ;
} UnionCPtr;

//! Union of pointers to constant volatile 64-, 32-, 16- and 8-bit unsigned integers.
typedef union
{
  const volatile U64 *u64ptr;
  const volatile U32 *u32ptr;
  const volatile U16 *u16ptr;
  const volatile U8  *u8ptr ;
} UnionCVPtr;

//! Structure of pointers to 64-, 32-, 16- and 8-bit unsigned integers.
typedef struct
{
  U64 *u64ptr;
  U32 *u32ptr;
  U16 *u16ptr;
  U8  *u8ptr ;
} StructPtr;

//! Structure of pointers to volatile 64-, 32-, 16- and 8-bit unsigned integers.
typedef struct
{
  volatile U64 *u64ptr;
  volatile U32 *u32ptr;
  volatile U16 *u16ptr;
  volatile U8  *u8ptr ;
} StructVPtr;

//! Structure of pointers to constant 64-, 32-, 16- and 8-bit unsigned integers.
typedef struct
{
  const U64 *u64ptr;
  const U32 *u32ptr;
  const U16 *u16ptr;
  const U8  *u8ptr ;
} StructCPtr;

//! Structure of pointers to constant volatile 64-, 32-, 16- and 8-bit unsigned integers.
typedef struct
{
  const volatile U64 *u64ptr;
  const volatile U32 *u32ptr;
  const volatile U16 *u16ptr;
  const volatile U8  *u8ptr ;
} StructCVPtr;

//! @}

#endif  // __AVR32_ABI_COMPILER__


//_____ M A C R O S ________________________________________________________

/*! \name Usual Constants
 */
//! @{
#define DISABLE   0
#define ENABLE    1
#define DISABLED  0
#define ENABLED   1
#define OFF       0
#define ON        1
#define FALSE     0
#define TRUE      1
#define KO        0
#define OK        1
#define PASS      0
#define FAIL      1
#define LOW       0
#define HIGH      1
#define CLR       0
#define SET       1
//! @}


#ifdef __AVR32_ABI_COMPILER__ // Automatically defined when compiling for AVR32, not when assembling.

/*! \name Bit-Field Handling
 */
//! @{

/*! \brief Reads the bits of a value specified by a given bit-mask.
 *
 * \param value Value to read bits from.
 * \param mask  Bit-mask indicating bits to read.
 *
 * \return Read bits.
 */
#define Rd_bits( value, mask)        ((value) & (mask))

/*! \brief Writes the bits of a C lvalue specified by a given bit-mask.
 *
 * \param lvalue  C lvalue to write bits to.
 * \param mask    Bit-mask indicating bits to write.
 * \param bits    Bits to write.
 *
 * \return Resulting value with written bits.
 */
#define Wr_bits(lvalue, mask, bits)  ((lvalue) = ((lvalue) & ~(mask)) |\
                                                 ((bits  ) &  (mask)))

/*! \brief Tests the bits of a value specified by a given bit-mask.
 *
 * \param value Value of which to test bits.
 * \param mask  Bit-mask indicating bits to test.
 *
 * \return \c 1 if at least one of the tested bits is set, else \c 0.
 */
#define Tst_bits( value, mask)  (Rd_bits(value, mask) != 0)

/*! \brief Clears the bits of a C lvalue specified by a given bit-mask.
 *
 * \param lvalue  C lvalue of which to clear bits.
 * \param mask    Bit-mask indicating bits to clear.
 *
 * \return Resulting value with cleared bits.
 */
#define Clr_bits(lvalue, mask)  ((lvalue) &= ~(mask))

/*! \brief Sets the bits of a C lvalue specified by a given bit-mask.
 *
 * \param lvalue  C lvalue of which to set bits.
 * \param mask    Bit-mask indicating bits to set.
 *
 * \return Resulting value with set bits.
 */
#define Set_bits(lvalue, mask)  ((lvalue) |=  (mask))

/*! \brief Toggles the bits of a C lvalue specified by a given bit-mask.
 *
 * \param lvalue  C lvalue of which to toggle bits.
 * \param mask    Bit-mask indicating bits to toggle.
 *
 * \return Resulting value with toggled bits.
 */
#define Tgl_bits(lvalue, mask)  ((lvalue) ^=  (mask))

/*! \brief Reads the bit-field of a value specified by a given bit-mask.
 *
 * \param value Value to read a bit-field from.
 * \param mask  Bit-mask indicating the bit-field to read.
 *
 * \return Read bit-field.
 */
#define Rd_bitfield( value, mask)           (Rd_bits( value, mask) >> ctz(mask))

/*! \brief Writes the bit-field of a C lvalue specified by a given bit-mask.
 *
 * \param lvalue    C lvalue to write a bit-field to.
 * \param mask      Bit-mask indicating the bit-field to write.
 * \param bitfield  Bit-field to write.
 *
 * \return Resulting value with written bit-field.
 */
#define Wr_bitfield(lvalue, mask, bitfield) (Wr_bits(lvalue, mask, (U32)(bitfield) << ctz(mask)))

//! @}


/*! \brief This macro is used to test fatal errors.
 *
 * The macro tests if the expression is FALSE. If it is, a fatal error is
 * detected and the application hangs up.
 *
 * \param expr  Expression to evaluate and supposed to be nonzero.
 */
#ifdef _ASSERT_ENABLE_
  #define Assert(expr) \
  {\
    if (!(expr)) while (TRUE);\
  }
#else
  #define Assert(expr)

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲人亚洲人成电影网站色| 久久99在线观看| 欧美韩日一区二区三区四区| 欧美一区二区免费观在线| 色av成人天堂桃色av| 97久久精品人人做人人爽| 国产成人av电影在线观看| 韩国女主播一区二区三区| 美脚の诱脚舐め脚责91| 久久精品久久99精品久久| 欧美aⅴ一区二区三区视频| 日本中文字幕一区| 久久精品久久综合| 国产精品一二三| 成人精品高清在线| 色综合色综合色综合| 欧美日韩综合在线免费观看| 欧美日韩三级在线| 欧美性高清videossexo| 欧美老肥妇做.爰bbww| 精品福利在线导航| 国产精品三级视频| 综合电影一区二区三区| 亚洲一区二区三区四区中文字幕| 亚洲激情男女视频| 日产精品久久久久久久性色| 久久99精品一区二区三区| 国产精品乡下勾搭老头1| eeuss鲁片一区二区三区在线观看| 91福利国产成人精品照片| 91麻豆精品国产91久久久久久| 日韩三级精品电影久久久| 国产日韩av一区| 一区二区成人在线视频| 国模大尺度一区二区三区| 北条麻妃国产九九精品视频| 欧美色视频在线| 久久色中文字幕| 亚洲福利一区二区三区| 国产在线播放一区三区四| 91丝袜美腿高跟国产极品老师| 欧美日韩一区不卡| 欧美激情综合五月色丁香| 亚洲va在线va天堂| 9人人澡人人爽人人精品| 欧美日韩国产首页在线观看| 久久久久国产成人精品亚洲午夜| 亚洲图片一区二区| 懂色av中文字幕一区二区三区| 精品视频在线看| 国产精品青草综合久久久久99| 午夜欧美大尺度福利影院在线看| 大白屁股一区二区视频| 精品日韩99亚洲| 香蕉加勒比综合久久| 91在线看国产| 国产精品色哟哟网站| 国产大片一区二区| 精品久久久久久久久久久久包黑料| 一区二区三区波多野结衣在线观看| 懂色av一区二区夜夜嗨| 欧美婷婷六月丁香综合色| xvideos.蜜桃一区二区| 日韩高清一区在线| 欧美日本一区二区| 亚洲综合精品自拍| 在线观看av一区二区| 亚洲欧美偷拍另类a∨色屁股| 国产不卡视频一区| 国产女主播视频一区二区| 国产一区啦啦啦在线观看| 欧美大片一区二区| 久久激情五月婷婷| 精品免费一区二区三区| 国产综合久久久久影院| 精品福利在线导航| 国产伦理精品不卡| 国产女人18水真多18精品一级做| 国内精品嫩模私拍在线| 久久你懂得1024| 国产成人欧美日韩在线电影| 中文字幕精品一区| 99这里只有久久精品视频| 亚洲欧洲色图综合| 色94色欧美sute亚洲线路一ni | 五月婷婷综合网| 欧美日韩国产综合一区二区三区| 亚洲午夜免费福利视频| 制服丝袜中文字幕一区| 美国欧美日韩国产在线播放| 精品盗摄一区二区三区| 成人激情动漫在线观看| 一区二区三区在线观看国产| 欧美性受xxxx黑人xyx性爽| 午夜电影网一区| 精品国产自在久精品国产| 国产91精品欧美| 一级精品视频在线观看宜春院 | 亚洲成人一区在线| 日韩欧美国产电影| 国产传媒久久文化传媒| 一区二区在线观看免费视频播放| 制服丝袜日韩国产| 国产成人精品亚洲777人妖 | 日本精品裸体写真集在线观看| 亚洲午夜久久久久久久久电影网| 欧美精品久久99久久在免费线| 一区二区在线观看不卡| 日韩精品综合一本久道在线视频| 国产成人av资源| 亚洲18色成人| 中文字幕第一区二区| 欧美日韩国产高清一区| 国产成人精品免费| 亚洲图片欧美综合| 国产日产欧产精品推荐色| 欧美自拍偷拍一区| 国产美女一区二区三区| 亚洲国产sm捆绑调教视频| 久久久一区二区三区捆绑**| 日本黄色一区二区| 成人手机电影网| 久久国产精品第一页| 一区二区三区四区蜜桃| 久久九九久精品国产免费直播| 欧美伊人久久久久久久久影院| 国产一区不卡在线| 亚洲综合一二区| 国产日产欧美一区| 日韩一区二区三区在线视频| 91香蕉视频mp4| 国产高清久久久| 亚洲丶国产丶欧美一区二区三区| 亚洲国产精品国自产拍av| 欧美肥妇bbw| 日本精品视频一区二区| 成人高清在线视频| 国产美女视频91| 国产在线国偷精品免费看| 美女免费视频一区| 日本欧美加勒比视频| 一区二区三区自拍| 亚洲视频一区在线| 自拍偷拍亚洲欧美日韩| 亚洲欧美在线aaa| 国产精品系列在线| 国产精品久久久久久久第一福利 | 国产精品原创巨作av| 奇米亚洲午夜久久精品| 亚洲一二三四久久| 亚洲国产成人av网| 一区二区三区在线播| 日韩理论片网站| 一区二区视频在线看| 一区二区三区在线视频免费| 亚洲美女免费在线| 亚洲一区二区三区四区不卡| 一区二区三区.www| 视频一区在线播放| 免费观看成人鲁鲁鲁鲁鲁视频| 亚洲人成7777| 亚洲福中文字幕伊人影院| 亚洲第一成人在线| 蜜桃久久久久久久| 国产精品亚洲午夜一区二区三区| 国产91色综合久久免费分享| 99国产精品久久久久久久久久久| 91网站黄www| 欧美精品久久一区二区三区| 精品人在线二区三区| 中文字幕精品在线不卡| 一区二区三区四区av| 日本美女视频一区二区| 国产揄拍国内精品对白| 成人白浆超碰人人人人| 欧美专区日韩专区| 久久午夜免费电影| 亚洲免费在线观看视频| 免费高清成人在线| av电影在线观看一区| 福利一区二区在线| 在线观看亚洲专区| 欧美一区二区三区视频免费| 91精品国产免费| 国产精品高清亚洲| 午夜精品一区二区三区免费视频| 久久99久久久久| 91精品办公室少妇高潮对白| 欧美大片国产精品| 一区二区三区在线视频播放| 麻豆一区二区三| 97se狠狠狠综合亚洲狠狠| 日韩精品一区二区三区中文精品| 中文天堂在线一区| 青青国产91久久久久久| av亚洲精华国产精华精| 日韩视频在线一区二区| 一区二区三区在线免费| 国产成人精品影院| 欧美v国产在线一区二区三区|