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

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

?? core_cmfunc.h

?? LPC1788的USBHOST的FATFS移植
?? H
?? 第 1 頁 / 共 2 頁
字號:
/**************************************************************************//**
 * @file     core_cmFunc.h
 * @brief    CMSIS Cortex-M Core Function Access Header File
 * @version  V2.01
 * @date     06. December 2010
 *
 * @note
 * Copyright (C) 2009-2010 ARM Limited. All rights reserved.
 *
 * @par
 * ARM Limited (ARM) is supplying this software for use with Cortex-M
 * processor based microcontrollers.  This file can be freely distributed
 * within development tools that are supporting such ARM based processors.
 *
 * @par
 * THIS SOFTWARE IS PROVIDED "AS IS".  NO WARRANTIES, WHETHER EXPRESS, IMPLIED
 * OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF
 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE.
 * ARM SHALL NOT, IN ANY CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR
 * CONSEQUENTIAL DAMAGES, FOR ANY REASON WHATSOEVER.
 *
 ******************************************************************************/

#ifndef __CORE_CMFUNC_H__
#define __CORE_CMFUNC_H__

/* ###########################  Core Function Access  ########################### */
/** \ingroup  CMSIS_Core_FunctionInterface
    \defgroup CMSIS_Core_RegAccFunctions CMSIS Core Register Access Functions
  @{
 */

#if defined ( __CC_ARM   ) /*------------------ RealView Compiler ----------------*/
/* ARM armcc specific functions */

/* intrinsic void __enable_irq();     */
/* intrinsic void __disable_irq();    */

/** \brief  Get Control Register

    This function returns the content of the Control Register.

    \return               Control Register value
 */
#if       (__ARMCC_VERSION <  400000)
extern          uint32_t __get_CONTROL(void);
#else  /* (__ARMCC_VERSION >= 400000) */
static __INLINE uint32_t __get_CONTROL(void)
{
  register uint32_t __regControl         __ASM("control");
  return(__regControl);
}
#endif /*  __ARMCC_VERSION  */


/** \brief  Set Control Register

    This function writes the given value to the Control Register.

    \param [in]    control  Control Register value to set
 */
#if       (__ARMCC_VERSION <  400000)
extern          void __set_CONTROL(uint32_t control);
#else  /* (__ARMCC_VERSION >= 400000) */
static __INLINE void __set_CONTROL(uint32_t control)
{
  register uint32_t __regControl         __ASM("control");
  __regControl = control;
}
#endif /*  __ARMCC_VERSION  */


/** \brief  Get ISPR Register

    This function returns the content of the ISPR Register.

    \return               ISPR Register value
 */
#if       (__ARMCC_VERSION <  400000)
extern          uint32_t __get_IPSR(void);
#else  /* (__ARMCC_VERSION >= 400000) */
static __INLINE uint32_t __get_IPSR(void)
{
  register uint32_t __regIPSR          __ASM("ipsr");
  return(__regIPSR);
}
#endif /*  __ARMCC_VERSION  */


/** \brief  Get APSR Register

    This function returns the content of the APSR Register.

    \return               APSR Register value
 */
#if       (__ARMCC_VERSION <  400000)
extern          uint32_t __get_APSR(void);
#else  /* (__ARMCC_VERSION >= 400000) */
static __INLINE uint32_t __get_APSR(void)
{
  register uint32_t __regAPSR          __ASM("apsr");
  return(__regAPSR);
}
#endif /*  __ARMCC_VERSION  */


/** \brief  Get xPSR Register

    This function returns the content of the xPSR Register.

    \return               xPSR Register value
 */
#if       (__ARMCC_VERSION <  400000)
extern          uint32_t __get_xPSR(void);
#else  /* (__ARMCC_VERSION >= 400000) */
static __INLINE uint32_t __get_xPSR(void)
{
  register uint32_t __regXPSR          __ASM("xpsr");
  return(__regXPSR);
}
#endif /*  __ARMCC_VERSION  */


/** \brief  Get Process Stack Pointer

    This function returns the current value of the Process Stack Pointer (PSP).

    \return               PSP Register value
 */
#if       (__ARMCC_VERSION <  400000)
extern          uint32_t __get_PSP(void);
#else  /* (__ARMCC_VERSION >= 400000) */
static __INLINE uint32_t __get_PSP(void)
{
  register uint32_t __regProcessStackPointer  __ASM("psp");
  return(__regProcessStackPointer);
}
#endif /*  __ARMCC_VERSION  */


/** \brief  Set Process Stack Pointer

    This function assigns the given value to the Process Stack Pointer (PSP).

    \param [in]    topOfProcStack  Process Stack Pointer value to set
 */
#if       (__ARMCC_VERSION <  400000)
extern          void __set_PSP(uint32_t topOfProcStack);
#else  /* (__ARMCC_VERSION >= 400000) */
static __INLINE void __set_PSP(uint32_t topOfProcStack)
{
  register uint32_t __regProcessStackPointer  __ASM("psp");
  __regProcessStackPointer = topOfProcStack;
}
#endif /*  __ARMCC_VERSION  */


/** \brief  Get Main Stack Pointer

    This function returns the current value of the Main Stack Pointer (MSP).

    \return               MSP Register value
 */
#if       (__ARMCC_VERSION <  400000)
extern          uint32_t __get_MSP(void);
#else  /* (__ARMCC_VERSION >= 400000) */
static __INLINE uint32_t __get_MSP(void)
{
  register uint32_t __regMainStackPointer     __ASM("msp");
  return(__regMainStackPointer);
}
#endif /*  __ARMCC_VERSION  */


/** \brief  Set Main Stack Pointer

    This function assigns the given value to the Main Stack Pointer (MSP).

    \param [in]    topOfMainStack  Main Stack Pointer value to set
 */
#if       (__ARMCC_VERSION <  400000)
extern          void __set_MSP(uint32_t topOfMainStack);
#else  /* (__ARMCC_VERSION >= 400000) */
static __INLINE void __set_MSP(uint32_t topOfMainStack)
{
  register uint32_t __regMainStackPointer     __ASM("msp");
  __regMainStackPointer = topOfMainStack;
}
#endif /*  __ARMCC_VERSION  */


/** \brief  Get Priority Mask

    This function returns the current state of the priority mask bit from the Priority Mask Register.

    \return               Priority Mask value
 */
#if       (__ARMCC_VERSION <  400000)
extern          uint32_t __get_PRIMASK(void);
#else  /* (__ARMCC_VERSION >= 400000) */
static __INLINE uint32_t __get_PRIMASK(void)
{
  register uint32_t __regPriMask         __ASM("primask");
  return(__regPriMask);
}
#endif /*  __ARMCC_VERSION  */


/** \brief  Set Priority Mask

    This function assigns the given value to the Priority Mask Register.

    \param [in]    priMask  Priority Mask
 */
#if       (__ARMCC_VERSION <  400000)
extern          void __set_PRIMASK(uint32_t priMask);
#else  /* (__ARMCC_VERSION >= 400000) */
static __INLINE void __set_PRIMASK(uint32_t priMask)
{
  register uint32_t __regPriMask         __ASM("primask");
  __regPriMask = (priMask);
}
#endif /*  __ARMCC_VERSION  */


#if       (__CORTEX_M >= 0x03)

/** \brief  Enable FIQ

    This function enables FIQ interrupts by clearing the F-bit in the CPSR.
    Can only be executed in Privileged modes.
 */
#define __enable_fault_irq                __enable_fiq


/** \brief  Disable FIQ

    This function disables FIQ interrupts by setting the F-bit in the CPSR.
    Can only be executed in Privileged modes.
 */
#define __disable_fault_irq               __disable_fiq


/** \brief  Get Base Priority

    This function returns the current value of the Base Priority register.

    \return               Base Priority register value
 */
#if       (__ARMCC_VERSION <  400000)
extern          uint32_t __get_BASEPRI(void);
#else  /* (__ARMCC_VERSION >= 400000) */
static __INLINE uint32_t  __get_BASEPRI(void)
{
  register uint32_t __regBasePri         __ASM("basepri");
  return(__regBasePri);
}
#endif /*  __ARMCC_VERSION  */


/** \brief  Set Base Priority

    This function assigns the given value to the Base Priority register.

    \param [in]    basePri  Base Priority value to set
 */
#if       (__ARMCC_VERSION <  400000)
extern          void __set_BASEPRI(uint32_t basePri);
#else  /* (__ARMCC_VERSION >= 400000) */
static __INLINE void __set_BASEPRI(uint32_t basePri)
{
  register uint32_t __regBasePri         __ASM("basepri");
  __regBasePri = (basePri & 0xff);
}
#endif /*  __ARMCC_VERSION  */


/** \brief  Get Fault Mask

    This function returns the current value of the Fault Mask register.

    \return               Fault Mask register value
 */
#if       (__ARMCC_VERSION <  400000)
extern          uint32_t __get_FAULTMASK(void);
#else  /* (__ARMCC_VERSION >= 400000) */
static __INLINE uint32_t __get_FAULTMASK(void)
{
  register uint32_t __regFaultMask       __ASM("faultmask");
  return(__regFaultMask);
}
#endif /*  __ARMCC_VERSION  */


/** \brief  Set Fault Mask

    This function assigns the given value to the Fault Mask register.

    \param [in]    faultMask  Fault Mask value to set
 */
#if       (__ARMCC_VERSION <  400000)
extern          void __set_FAULTMASK(uint32_t faultMask);
#else  /* (__ARMCC_VERSION >= 400000) */
static __INLINE void __set_FAULTMASK(uint32_t faultMask)
{
  register uint32_t __regFaultMask       __ASM("faultmask");
  __regFaultMask = (faultMask & 1);
}
#endif /*  __ARMCC_VERSION  */

#endif /* (__CORTEX_M >= 0x03) */


#if       (__CORTEX_M == 0x04)

/** \brief  Get FPSCR

    This function returns the current value of the Floating Point Status/Control register.

    \return               Floating Point Status/Control register value
 */
static __INLINE uint32_t __get_FPSCR(void)
{
#if (__FPU_PRESENT == 1)
  register uint32_t __regfpscr         __ASM("fpscr");
  return(__regfpscr);
#else
   return(0);
#endif
}


/** \brief  Set FPSCR

    This function assigns the given value to the Floating Point Status/Control register.

    \param [in]    fpscr  Floating Point Status/Control value to set
 */
static __INLINE void __set_FPSCR(uint32_t fpscr)
{
#if (__FPU_PRESENT == 1)
  register uint32_t __regfpscr         __ASM("fpscr");
  __regfpscr = (fpscr);
#endif
}

#endif /* (__CORTEX_M == 0x04) */


 #elif (defined (__ICCARM__)) /*---------------- ICC Compiler ---------------------*/
/* IAR iccarm specific functions */

#if defined (__ICCARM__)
  #include <intrinsics.h>                     /* IAR Intrinsics   */
#endif

#pragma diag_suppress=Pe940

/** \brief  Enable IRQ Interrupts

  This function enables IRQ interrupts by clearing the I-bit in the CPSR.
  Can only be executed in Privileged modes.
 */
#define __enable_irq                              __enable_interrupt


/** \brief  Disable IRQ Interrupts

  This function disables IRQ interrupts by setting the I-bit in the CPSR.
  Can only be executed in Privileged modes.
 */
#define __disable_irq                             __disable_interrupt


/* intrinsic unsigned long __get_CONTROL( void ); (see intrinsic.h) */
/* intrinsic void __set_CONTROL( unsigned long ); (see intrinsic.h) */


#if (__VER__) < 6020000
/** \brief  Get ISPR Register

    This function returns the content of the ISPR Register.

    \return               ISPR Register value
 */
static uint32_t __get_IPSR(void)
{
  __ASM("mrs r0, ipsr");
}
#endif

#if (__VER__) < 6020000
/** \brief  Get APSR Register

    This function returns the content of the APSR Register.

    \return               APSR Register value
 */
static uint32_t __get_APSR(void)
{
  __ASM("mrs r0, apsr");
}
#endif

/** \brief  Get xPSR Register

    This function returns the content of the xPSR Register.

    \return               xPSR Register value
 */
static uint32_t __get_xPSR(void)
{
  __ASM("mrs r0, psr");           // assembler does not know "xpsr"
}


#if (__VER__) < 6020000
/** \brief  Get Process Stack Pointer

    This function returns the current value of the Process Stack Pointer (PSP).

    \return               PSP Register value
 */
static uint32_t __get_PSP(void)
{
  __ASM("mrs r0, psp");
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
99精品视频在线观看| 99re这里只有精品视频首页| 精品影视av免费| 国产成人啪午夜精品网站男同| av成人动漫在线观看| 欧美日韩免费观看一区二区三区 | 国产成人亚洲精品狼色在线| 欧洲在线/亚洲| 日本不卡一区二区| 成人性生交大合| 欧美日韩国产a| 国产精品久久久爽爽爽麻豆色哟哟| 日韩毛片精品高清免费| 免费精品视频在线| 国产成人精品网址| 欧美一级爆毛片| 亚洲精品精品亚洲| 成人一区二区三区在线观看| 欧美日韩视频在线一区二区| 国产精品久久综合| 九九在线精品视频| 欧美一区在线视频| 一区二区三区资源| 国产精品自拍一区| 欧美一区二区美女| 亚洲综合免费观看高清完整版| 中文字幕高清不卡| 欧美日产国产精品| 精品一区二区三区av| 日本韩国一区二区三区| 国产欧美日韩另类视频免费观看| 亚洲一区二区三区四区五区中文| 国产成人免费视频网站 | 2020日本不卡一区二区视频| 亚洲国产欧美一区二区三区丁香婷| 国产·精品毛片| 国产亚洲成aⅴ人片在线观看| 水野朝阳av一区二区三区| 国产麻豆精品95视频| 精品国产成人在线影院 | 久久五月婷婷丁香社区| 五月天国产精品| 91免费版在线| 91精品久久久久久久久99蜜臂| 欧美成人乱码一区二区三区| 中文字幕一区二区在线播放| 国产综合久久久久影院| 欧美草草影院在线视频| 日本视频中文字幕一区二区三区| 欧美日韩精品欧美日韩精品| 亚洲高清免费视频| 欧美日韩高清影院| 丝袜美腿亚洲色图| 日韩免费福利电影在线观看| 日本 国产 欧美色综合| 91精品国产综合久久久久久久| 偷拍自拍另类欧美| 欧美猛男男办公室激情| 日韩影院免费视频| 精品少妇一区二区三区免费观看| 青草国产精品久久久久久| 欧美日韩久久不卡| 蜜臀va亚洲va欧美va天堂| 精品乱人伦一区二区三区| 日本国产一区二区| 波多野结衣中文字幕一区 | 91麻豆精品国产91久久久久久久久 | 色哟哟一区二区| 亚洲综合在线电影| 9191成人精品久久| 亚洲福中文字幕伊人影院| 在线亚洲人成电影网站色www| 亚洲国产精品久久一线不卡| 欧美精品久久99久久在免费线| 日本中文一区二区三区| 久久久亚洲高清| 一本久久精品一区二区| 18欧美亚洲精品| 欧美少妇性性性| 国产一区二区美女诱惑| 欧美军同video69gay| 久久久午夜精品| 精品欧美久久久| 国产在线精品一区二区不卡了 | 亚洲精品在线免费观看视频| 日韩国产精品久久久| 国产欧美日韩视频在线观看| 国产一区二区h| 国产精品理论片| 欧美男女性生活在线直播观看| 国产一二精品视频| 亚洲国产日韩一区二区| 久久久久一区二区三区四区| 一本大道久久精品懂色aⅴ| 免费一级欧美片在线观看| 亚洲三级在线观看| 欧美videofree性高清杂交| 色久综合一二码| 日韩av在线免费观看不卡| 日韩毛片视频在线看| 色呦呦网站一区| 中文av一区特黄| 欧美一三区三区四区免费在线看| 国产一区二区三区免费播放| 国产欧美日韩综合| 色狠狠一区二区三区香蕉| 麻豆国产欧美一区二区三区| 国产精品福利av| 欧美大胆一级视频| 欧美性一级生活| av在线不卡免费看| 久久国产夜色精品鲁鲁99| 亚洲永久精品大片| 久久久久久亚洲综合| 国产一区二区免费看| 亚洲一区二区四区蜜桃| 国产精品国产成人国产三级| 精品成人一区二区| 日韩三级高清在线| 欧美精品在线观看播放| 欧美性高清videossexo| 国产精品一区专区| 波多野结衣视频一区| 国产精品1区2区3区在线观看| 麻豆国产一区二区| 日本中文字幕一区二区视频| 亚洲成a人片在线观看中文| 一区二区在线免费观看| 自拍偷拍国产亚洲| 日韩美女视频一区二区| 久久精品夜色噜噜亚洲aⅴ| 久久久亚洲高清| 国产欧美日本一区二区三区| 欧美精品一区二区三区在线播放| 日韩一区二区电影在线| 91精品国产一区二区人妖| 欧美一区二区三区色| 91精品国产入口| 日韩精品一区二区三区四区 | 日本大胆欧美人术艺术动态| 亚洲成人精品一区二区| 中文字幕中文乱码欧美一区二区| 亚洲欧美经典视频| 亚洲影院免费观看| 日韩高清国产一区在线| 蜜桃视频在线一区| 国产麻豆午夜三级精品| 成人av在线资源| 色成年激情久久综合| 欧美精品一卡二卡| 日韩欧美你懂的| 26uuu国产日韩综合| 亚洲日本一区二区三区| 亚洲18色成人| 久久99精品国产| 久久成人综合网| 99久久免费精品高清特色大片| 欧美色精品在线视频| 7777精品伊人久久久大香线蕉经典版下载| 欧美理论电影在线| 精品99999| 亚洲欧美另类综合偷拍| 日本欧洲一区二区| www.一区二区| 91精品国产麻豆| 中文字幕不卡的av| 国产精品精品国产色婷婷| 老司机午夜精品99久久| 不卡一区在线观看| 3d成人h动漫网站入口| 久久久亚洲高清| 亚洲一区二区欧美激情| 韩国三级电影一区二区| 日本韩国欧美三级| 久久久电影一区二区三区| 一区二区三区中文在线| 国产高清精品网站| 欧美日韩精品一区视频| 国产精品水嫩水嫩| 毛片一区二区三区| 91极品视觉盛宴| 国产亚洲欧美一级| 亚洲成人av一区| 色天天综合久久久久综合片| 精品第一国产综合精品aⅴ| 一区二区三区精品在线| 国产精品1区2区3区在线观看| 精品视频999| 日韩理论片中文av| 国产乱码一区二区三区| 91久久线看在观草草青青| 亚洲欧洲精品一区二区三区| 麻豆中文一区二区| 欧美色爱综合网| 亚洲免费电影在线| eeuss国产一区二区三区| 精品人伦一区二区色婷婷| 天天影视涩香欲综合网| 成年人国产精品| 欧美国产日韩亚洲一区|