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

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

?? core_cm3.c

?? STM32有很強大的支持
?? C
?? 第 1 頁 / 共 2 頁
字號:
/******************************************************************************
 * @file:    core_cm3.c
 * @purpose: CMSIS Cortex-M3 Core Peripheral Access Layer Source File
 * @version: V1.10
 * @date:    24. Feb. 2009
 *----------------------------------------------------------------------------
 *
 * Copyright (C) 2009 ARM Limited. All rights reserved.
 *
 * ARM Limited (ARM) is supplying this software for use with Cortex-Mx 
 * 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 ( __CC_ARM   ) /*------------------RealView Compiler -----------------*/

/**
 * @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  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
}


#if (__ARMCC_VERSION < 400000)

/**
 * @brief  Remove the exclusive lock created by ldrex
 *
 * @param  none
 * @return none
 *
 * Removes the exclusive lock which is created by ldrex.
 */
__ASM void __CLREX(void)
{
  clrex
}

/**
 * @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
}

#endif /* __ARMCC_VERSION  */ 


#elif (defined (__ICCARM__)) /*------------------ ICC Compiler -------------------*/
#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
 *

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产呦萝稀缺另类资源| 国产a精品视频| 欧美精品乱人伦久久久久久| 激情都市一区二区| 日日夜夜免费精品视频| 国产精品视频一二三| 国产不卡一区视频| 精品美女在线播放| 欧美伊人久久久久久久久影院| 欧美三级电影网| 91久久精品一区二区三| 国产乱人伦偷精品视频免下载| 日韩欧美视频在线| 欧美日韩精品福利| 狠狠色综合播放一区二区| 亚洲人成亚洲人成在线观看图片| 日韩va欧美va亚洲va久久| 久久久亚洲精品一区二区三区| 日韩av一区二| 日韩福利视频网| 欧美岛国在线观看| 日韩午夜在线观看| 国产夫妻精品视频| 成人三级在线视频| 91在线视频播放地址| 在线视频中文字幕一区二区| 天堂一区二区在线| 国产亚洲一区字幕| 在线视频一区二区免费| 欧美一级日韩一级| 久久精品一区二区三区av| 成人欧美一区二区三区黑人麻豆| 日韩小视频在线观看专区| 日韩欧美国产电影| 日本道免费精品一区二区三区| 国产揄拍国内精品对白| 夜夜操天天操亚洲| 视频一区中文字幕国产| 国产精品一区二区黑丝| 五月婷婷久久丁香| 国产精品91一区二区| 在线观看91视频| 99re热视频精品| 国产精品视频一二三| 午夜精品福利在线| 97国产一区二区| 久久久综合九色合综国产精品| 欧美精品久久99久久在免费线| 色综合久久中文综合久久牛| 精品粉嫩aⅴ一区二区三区四区| 欧美日韩三级视频| 欧美极品少妇xxxxⅹ高跟鞋| 午夜久久久久久久久| 91亚洲精品久久久蜜桃网站| 久久久蜜臀国产一区二区| 亚洲mv大片欧洲mv大片精品| 99国产精品久久久久久久久久| jlzzjlzz国产精品久久| 久久久午夜精品| 韩国三级中文字幕hd久久精品| 美女任你摸久久| 男人的天堂亚洲一区| 欧美日韩一区二区三区高清| 亚洲男人的天堂av| 色欧美片视频在线观看| 亚洲精品乱码久久久久久久久| 视频一区视频二区中文字幕| 色哟哟一区二区三区| 中文字幕第一区二区| 一区二区三区在线看| 91久久香蕉国产日韩欧美9色| 中文字幕在线不卡一区 | 91精品国产综合久久小美女| 欧美另类z0zxhd电影| 偷拍日韩校园综合在线| 中文字幕免费观看一区| 精品奇米国产一区二区三区| 国产亚洲精久久久久久| 日韩一区二区中文字幕| 国产精品你懂的在线欣赏| 欧美无人高清视频在线观看| 成人亚洲一区二区一| 欧美一卡二卡三卡四卡| 99精品一区二区三区| 久久成人18免费观看| 亚洲国产日韩av| 成人欧美一区二区三区黑人麻豆| 成人激情免费网站| 精品中文字幕一区二区| 日韩成人一区二区三区在线观看| 国产一区二区三区四| 国产精品国模大尺度视频| a级高清视频欧美日韩| 亚洲国产成人av| 欧美激情在线观看视频免费| 在线日韩av片| 国产精品久久久久久久久免费丝袜 | 欧美电影一区二区| 欧美日韩亚州综合| 国产精品一区久久久久| 亚洲在线观看免费视频| 久久综合久久综合亚洲| 亚洲一卡二卡三卡四卡无卡久久| 粉嫩在线一区二区三区视频| 亚洲成人自拍一区| 亚洲日本一区二区| 久久久久久影视| 91麻豆精品国产91久久久使用方法 | 精品电影一区二区| 欧美日韩一卡二卡三卡 | 国产精品国产三级国产aⅴ中文| 调教+趴+乳夹+国产+精品| 专区另类欧美日韩| 成人免费毛片片v| 国产一区亚洲一区| 韩国在线一区二区| 亚洲国产成人私人影院tom| 国产午夜久久久久| 国产精品欧美精品| 亚洲精品乱码久久久久久| 午夜久久久久久久久久一区二区| 久久久精品综合| 亚洲欧洲国产日本综合| 亚洲精品视频自拍| 日本伊人色综合网| ㊣最新国产の精品bt伙计久久| 99精品欧美一区| 91浏览器在线视频| 日韩欧美在线1卡| 最近日韩中文字幕| 天堂资源在线中文精品| 成人久久18免费网站麻豆| 欧美三级电影网站| 国产精品毛片a∨一区二区三区| 欧美日韩国产在线播放网站| xvideos.蜜桃一区二区| 综合婷婷亚洲小说| 免费成人小视频| 欧美亚洲综合另类| 欧美高清在线一区| 久久精品国内一区二区三区 | 亚洲人成网站色在线观看| 欧美成人国产一区二区| 亚洲天天做日日做天天谢日日欢| 国产午夜精品一区二区| 亚洲成av人片一区二区梦乃 | 欧美精品一区二区三区蜜桃视频| 欧美日韩国产成人在线91| 国产精品久久久久婷婷二区次| 久久嫩草精品久久久精品| 免费欧美在线视频| 日本视频一区二区三区| 欧美性猛交xxxx黑人交| 国产精品污网站| 亚洲精品水蜜桃| 99热在这里有精品免费| 国产精品白丝在线| 国产69精品久久久久777| 国产欧美日韩精品在线| 国产不卡视频在线观看| 国产欧美综合在线观看第十页| 国产精品久久久久影院亚瑟| 亚洲天堂福利av| 一本大道av一区二区在线播放| 欧美高清视频在线高清观看mv色露露十八 | 国产欧美精品区一区二区三区| 欧美性生活影院| 国产欧美一区二区三区网站| 美女一区二区在线观看| 欧美日韩中字一区| 亚洲午夜日本在线观看| www.亚洲人| 国产精品盗摄一区二区三区| 激情欧美一区二区| 精品中文字幕一区二区小辣椒 | 亚洲成av人片www| 91日韩一区二区三区| 国产精品久久一级| 日韩成人av影视| 日韩女优av电影在线观看| www.欧美.com| 久久精品国产亚洲高清剧情介绍 | 欧美一级理论片| 国内精品写真在线观看| 成人综合婷婷国产精品久久| 91免费观看视频在线| 国产精品色一区二区三区| 在线亚洲精品福利网址导航| 国产高清一区日本| 亚洲精品免费一二三区| 欧美成人三级在线| 亚洲欧美自拍偷拍色图| 欧美系列日韩一区| 免费成人在线视频观看| 国产欧美精品国产国产专区| 在线观看www91| 伊人一区二区三区| 亚洲成在人线在线播放| 日韩你懂的电影在线观看| 免费欧美在线视频|