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

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

?? core_cm0.c

?? LPC1114_例程和教程
?? C
?? 第 1 頁 / 共 2 頁
字號:
/*********************************************************************************************************
** @file:    core_cm0.c
** @purpose: CMSIS Cortex-M0 Core Peripheral Access Layer Source File
** @version: V1.0
** @date:    12. Nov. 2008
**--------------------------------------------------------------------------------------------------------
**
** Copyright (C) 2008 ARM Limited. All rights reserved.
**
** ARM Limited (ARM) is supplying this software for use with Cortex-M0 
** processor based microcontrollers.  This file can be freely distributed 
** within development tools that are supporting such ARM based processors. 
**
** 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.
**
*********************************************************************************************************/
#include <stdint.h>

/*********************************************************************************************************
  define compiler specific symbols
*********************************************************************************************************/
#if defined ( __CC_ARM   )
  #define __ASM            __asm                                        /*!< asm keyword for armcc      */
  #define __INLINE         __inline                                     /*!< inline keyword for armcc   */

#elif defined ( __ICCARM__ )
  #define __ASM           __asm                                         /*!< asm keyword for iarcc      */
  #define __INLINE        inline                                        /*!< inline keyword for iarcc.  */
                                                                        /*!< Only avaiable in High      */
                                                                        /*!< optimization mode!         */
  #define __nop           __no_operation                                /*!< no operation intrinsic in  */
                                                                        /*!< iarcc                      */

#elif defined   (  __GNUC__  )
  #define __ASM             asm                                         /*!< asm keyword for gcc        */
  #define __INLINE          inline                                      /*!< inline keyword for gcc     */
#endif



#if (defined (__ARMCC_VERSION)) && (__ARMCC_VERSION < 400000)

/*********************************************************************************************************
** @brief  Return the Process Stack Pointer
**
** @param  none
** @return uint32_t ProcessStackPointer
**
** Return the actual process stack pointer
*********************************************************************************************************/
__ASM uint32_t __get_PSP(void)
{
    mrs r0, psp
    bx lr
}

/*********************************************************************************************************
** @brief  Set the Process Stack Pointer
**
** @param  uint32_t Process Stack Pointer
** @return none
**
** Assign the value ProcessStackPointer to the MSP 
** (process stack pointer) Cortex processor register
*********************************************************************************************************/
__ASM void __set_PSP(uint32_t topOfProcStack)
{
    msr psp, r0
    bx lr
}

/*********************************************************************************************************
** @brief  Return the Main Stack Pointer
**
** @param  none
** @return uint32_t Main Stack Pointer
**
** Return the current value of the MSP (main stack pointer)
** Cortex processor register
*********************************************************************************************************/
__ASM uint32_t __get_MSP(void)
{
    mrs r0, msp
    bx lr
}

/*********************************************************************************************************
** @brief  Set the Main Stack Pointer
**
** @param  uint32_t Main Stack Pointer
** @return none
**
** Assign the value mainStackPointer to the MSP 
** (main stack pointer) Cortex processor register
*********************************************************************************************************/
__ASM void __set_MSP(uint32_t mainStackPointer)
{
    msr msp, r0
    bx lr
}

/*********************************************************************************************************
** @brief  Return the Base Priority value
**
** @param  none
** @return uint32_t BasePriority
**
** Return the content of the base priority register
*********************************************************************************************************/
__ASM uint32_t  __get_BASEPRI(void)
{
    mrs r0, basepri
    bx lr
}

/*********************************************************************************************************
** @brief  Set the Base Priority value
**
** @param  uint32_t BasePriority
** @return none
**
** Set the base priority register
*********************************************************************************************************/
__ASM void __set_BASEPRI(uint32_t basePri)
{
    msr basepri, r0
    bx lr
}

/*********************************************************************************************************
** @brief  Return the Priority Mask value
**
** @param  none
** @return uint32_t PriMask
**
** Return the state of the priority mask bit from the priority mask
** register
*********************************************************************************************************/
__ASM uint32_t __get_PRIMASK(void)
{
    mrs r0, primask
    bx lr
}

/*********************************************************************************************************
** @brief  Set the Priority Mask value
**
** @param  uint32_t PriMask
** @return none
**
** Set the priority mask bit in the priority mask register
*********************************************************************************************************/
__ASM void __set_PRIMASK(uint32_t priMask)
{
    msr primask, r0
    bx lr
}

/*********************************************************************************************************
** @brief  Return the Fault Mask value
**
** @param  none
** @return uint32_t FaultMask
**
** Return the content of the fault mask register
*********************************************************************************************************/
__ASM uint32_t  __get_FAULTMASK(void)
{
    mrs r0, faultmask
    bx lr
}

/*********************************************************************************************************
** @brief  Set the Fault Mask value
**
** @param  uint32_t faultMask value
** @return none
**
** Set the fault mask register
*********************************************************************************************************/
__ASM void __set_FAULTMASK(uint32_t faultMask)
{
    msr faultmask, r0
    bx lr
}

/*********************************************************************************************************
** @brief  Return the Control Register value
** 
** @param  none
** @return uint32_t Control value
**
** Return the content of the control register
*********************************************************************************************************/
__ASM uint32_t  __get_CONTROL(void)
{
    mrs r0, control
    bx lr
}

/*********************************************************************************************************
** @brief  Set the Control Register value
**
** @param  uint32_t Control value
** @return none
**
** Set the control register
*********************************************************************************************************/
__ASM void __set_CONTROL(uint32_t control)
{
    msr control, r0
    bx lr
}

/*********************************************************************************************************
** @brief  Reverse byte order in unsigned short value
**
** @param  uint16_t value to reverse
** @return uint32_t reversed value
**
** Reverse byte order in unsigned short value
*********************************************************************************************************/
__ASM uint32_t __REV16(uint16_t value)
{
    rev16 r0, r0
    bx lr
}

/*********************************************************************************************************
** @brief  Reverse byte order in signed short value with sign extension to integer
**
** @param  int16_t value to reverse
** @return int32_t reversed value
**
** Reverse byte order in signed short value with sign extension to integer
*********************************************************************************************************/
__ASM int32_t __REVSH(int16_t value)
{
    revsh r0, r0
    bx lr
}



#elif (defined (__ICCARM__))
#pragma diag_suppress=Pe940

/*********************************************************************************************************
** @brief  Return the Process Stack Pointer
**
** @param  none
** @return uint32_t ProcessStackPointer
**
** Return the actual process stack pointer
*********************************************************************************************************/
uint32_t __get_PSP(void)
{
    __ASM("mrs r0, psp");
    __ASM("bx lr");
}

/*********************************************************************************************************
** @brief  Set the Process Stack Pointer
**
** @param  uint32_t Process Stack Pointer
** @return none
**
** Assign the value ProcessStackPointer to the MSP 
** (process stack pointer) Cortex processor register
*********************************************************************************************************/
void __set_PSP(uint32_t topOfProcStack)
{
    __ASM("msr psp, r0");
    __ASM("bx lr");
}

/*********************************************************************************************************
** @brief  Return the Main Stack Pointer
**
** @param  none
** @return uint32_t Main Stack Pointer
**
** Return the current value of the MSP (main stack pointer)
** Cortex processor register
*********************************************************************************************************/
uint32_t __get_MSP(void)
{
    __ASM("mrs r0, msp");
    __ASM("bx lr");
}

/*********************************************************************************************************
** @brief  Set the Main Stack Pointer
**
** @param  uint32_t Main Stack Pointer
** @return none
**
** Assign the value mainStackPointer to the MSP 
** (main stack pointer) Cortex processor register
*********************************************************************************************************/
void __set_MSP(uint32_t topOfMainStack)
{
    __ASM("msr msp, r0");
    __ASM("bx lr");
}

/*********************************************************************************************************
** @brief  Reverse byte order in unsigned short value
**
** @param  uint16_t value to reverse
** @return uint32_t reversed value
**
** Reverse byte order in unsigned short value
*********************************************************************************************************/
uint32_t __REV16(uint16_t value)
{
    __ASM("rev16 r0, r0");
    __ASM("bx lr");
}

/*********************************************************************************************************
** @brief  Reverse bit order of value
**
** @param  uint32_t value to reverse
** @return uint32_t reversed value
**
** Reverse bit order of value
*********************************************************************************************************/
uint32_t __RBIT(uint32_t value)
{
    __ASM("rbit r0, r0");
    __ASM("bx lr");
}

/*********************************************************************************************************
** @brief  LDR Exclusive
**
** @param  uint8_t* address
** @return uint8_t value of (*address)
**
** Exclusive LDR command
*********************************************************************************************************/
uint8_t __LDREXB(uint8_t *addr)
{
    __ASM("ldrexb r0, [r0]");
    __ASM("bx lr"); 
}

/*********************************************************************************************************
** @brief  LDR Exclusive
**
** @param  uint16_t* address
** @return uint16_t value of (*address)
**
** Exclusive LDR command
*********************************************************************************************************/
uint16_t __LDREXH(uint16_t *addr)
{
    __ASM("ldrexh r0, [r0]");
    __ASM("bx lr");
}

/*********************************************************************************************************
** @brief  LDR Exclusive
**
** @param  uint32_t* address
** @return uint32_t value of (*address)
**
** Exclusive LDR command
*********************************************************************************************************/
uint32_t __LDREXW(uint32_t *addr)
{
    __ASM("ldrex r0, [r0]");
    __ASM("bx lr");
}

/*********************************************************************************************************
** @brief  STR Exclusive
**
** @param  uint8_t* address
** @param  uint8_t value to store
** @return uint32_t successful / failed
**
** Exclusive STR command
*********************************************************************************************************/
uint32_t __STREXB(uint8_t value, uint8_t *addr)
{
    __ASM("strexb r0, r0, [r1]");

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色国产综合视频| 91麻豆视频网站| 日韩av一级电影| 亚洲成av人片在线| 亚洲一区免费在线观看| 一个色妞综合视频在线观看| 日韩一区欧美一区| 亚洲人成网站在线| 亚洲欧美日韩国产一区二区三区| 国产精品欧美一区二区三区| 最好看的中文字幕久久| 亚洲欧美日韩一区二区| 一级特黄大欧美久久久| 亚洲va欧美va人人爽| 奇米精品一区二区三区四区| 激情成人综合网| 成人污视频在线观看| 99久久精品国产观看| 欧美亚洲高清一区二区三区不卡| 欧美色图免费看| 精品久久久久久久久久久久久久久久久| 日韩一区二区三区在线| 久久久精品国产99久久精品芒果| 亚洲欧洲av一区二区三区久久| 亚洲乱码中文字幕综合| 亚洲一卡二卡三卡四卡| 九九热在线视频观看这里只有精品| 国产精品一区二区三区四区| 成人午夜av影视| 91福利精品视频| 精品久久久久一区二区国产| 中文字幕在线观看一区| 日韩**一区毛片| 国产成人亚洲综合a∨猫咪| 在线视频欧美精品| 欧美成人欧美edvon| 中文字幕亚洲电影| 日韩av中文在线观看| a级精品国产片在线观看| 欧美一级片免费看| 综合电影一区二区三区| 乱一区二区av| 欧美色中文字幕| 中文字幕 久热精品 视频在线| 午夜精品久久久久影视| 国产+成+人+亚洲欧洲自线| 欧美三级视频在线播放| 国产精品日日摸夜夜摸av| 日韩电影免费一区| 91免费视频网址| 久久综合狠狠综合久久综合88| 亚洲欧美韩国综合色| 高清国产一区二区| 欧美一区二区三区喷汁尤物| 一区二区三区免费网站| 国产一区二区三区在线观看免费| 欧美调教femdomvk| 国产精品麻豆视频| 国产一区中文字幕| 69堂成人精品免费视频| 亚洲综合精品久久| 99精品视频中文字幕| 国产精品无遮挡| 久久成人免费日本黄色| 欧美久久久一区| 亚洲一二三四区不卡| 91亚洲资源网| 国产精品高潮呻吟| 国产福利精品一区| 精品99999| 精品一区二区久久久| 日韩一区二区三区精品视频| 天使萌一区二区三区免费观看| 99国产精品国产精品毛片| 国产日韩精品一区二区三区| 国产真实乱对白精彩久久| 欧美一区二区三区人| 免费在线看成人av| 欧美一级片免费看| 青青草97国产精品免费观看无弹窗版| 欧美吻胸吃奶大尺度电影| 亚洲最大成人综合| 欧美色中文字幕| 午夜伦欧美伦电影理论片| 69久久夜色精品国产69蝌蚪网 | 蜜臀精品一区二区三区在线观看| 欧美三级欧美一级| 天天色综合天天| 日韩欧美区一区二| 麻豆国产精品视频| 欧美激情综合五月色丁香小说| 福利一区二区在线| 国产精品久久久久久久浪潮网站| 不卡在线视频中文字幕| 亚洲免费观看高清完整版在线 | 欧美日韩国产综合草草| 日韩av高清在线观看| 久久综合久久鬼色中文字| 国产成人夜色高潮福利影视| 亚洲乱码国产乱码精品精小说| 欧美性生交片4| 久久er99精品| 一区在线中文字幕| 欧美日韩性生活| 国产在线精品视频| 中文字幕亚洲精品在线观看| 91精品国产综合久久精品图片| 精品在线视频一区| 成人免费在线播放视频| 欧美日韩免费一区二区三区视频| 日本在线观看不卡视频| 中文字幕不卡在线| 欧美日韩在线免费视频| 国模少妇一区二区三区| 夜夜揉揉日日人人青青一国产精品| 7777精品伊人久久久大香线蕉最新版| 激情小说欧美图片| 亚洲自拍偷拍av| 久久久国产精品午夜一区ai换脸| 欧美三区在线观看| 大尺度一区二区| 欧美aⅴ一区二区三区视频| 国产精品拍天天在线| 91在线视频播放地址| 久久99国产精品尤物| 一片黄亚洲嫩模| 国产精品私人自拍| 欧美一级久久久| 色就色 综合激情| 国产一区二区福利视频| 奇米精品一区二区三区在线观看| 亚洲色图在线看| 久久影院视频免费| 51精品国自产在线| 日本精品视频一区二区三区| 国产精品一品二品| 看电影不卡的网站| 天天亚洲美女在线视频| 亚洲欧洲综合另类在线| 国产亚洲va综合人人澡精品| 在线不卡一区二区| 欧美四级电影网| 99国产精品99久久久久久| 精品亚洲国产成人av制服丝袜| 亚洲成人精品影院| 一区二区三区美女视频| 亚洲国产高清在线| 国产区在线观看成人精品| 欧美va日韩va| 欧美成人高清电影在线| 欧美一级日韩不卡播放免费| 欧美欧美欧美欧美| 欧美日韩在线电影| 欧美在线免费播放| 一本久久综合亚洲鲁鲁五月天| 成人午夜视频免费看| 成人毛片在线观看| 粗大黑人巨茎大战欧美成人| 成人免费高清视频在线观看| 国产成人午夜电影网| 波多野结衣亚洲| 丁香啪啪综合成人亚洲小说| 国产98色在线|日韩| 成人综合婷婷国产精品久久蜜臀| 国产69精品久久久久毛片| 成人一级黄色片| 91在线免费播放| 欧美在线小视频| 91精品国产丝袜白色高跟鞋| 欧美日本精品一区二区三区| 日韩欧美一级在线播放| 久久综合九色综合欧美亚洲| 国产精品三级视频| 一区二区在线看| 图片区小说区国产精品视频| 免费成人在线影院| 国产在线精品一区二区不卡了| 国产福利一区在线观看| 91在线码无精品| 69堂国产成人免费视频| 久久久亚洲国产美女国产盗摄| 国产精品家庭影院| 午夜欧美视频在线观看 | 国产99久久久久久免费看农村| 成人三级在线视频| 在线亚洲一区观看| 日韩一区二区三区在线观看| 国产欧美一区二区精品久导航| 亚洲精品欧美激情| 青椒成人免费视频| 99久久精品一区二区| 在线观看国产精品网站| 日韩区在线观看| 亚洲少妇最新在线视频| 免费观看成人av| 成人免费精品视频| 6080日韩午夜伦伦午夜伦| 国产精品人妖ts系列视频| 亚洲成在线观看| 成人激情免费视频|