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

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

?? core_cm0.c

?? CortexM0上移植UCOS-II
?? C
?? 第 1 頁 / 共 2 頁
字號:


/**
 * @brief  STR Exclusive
 *
 * @param  uint16_t *address
 * @param  uint16_t value to store
 * @return uint32_t successful / failed
 *
 * Exclusive STR command
 */
uint32_t __STREXH(uint16_t value, uint16_t *addr)
{
  __ASM("strexh r0, r0, [r1]");
  __ASM("bx lr");
}


/**
 * @brief  STR Exclusive
 *
 * @param  uint32_t *address
 * @param  uint32_t value to store
 * @return uint32_t successful / failed
 *
 * Exclusive STR command
 */
uint32_t __STREXW(uint32_t value, uint32_t *addr)
{
  __ASM("strex r0, r0, [r1]");
  __ASM("bx lr");
}




#pragma diag_default=Pe940




#elif (defined (__GNUC__))

/**
 * @brief  Return the Control Register value
* 
*  @param  none
*  @return uint32_t Control value
 *
 * Return the content of the control register
 */
uint32_t __get_CONTROL(void)
{
  uint32_t result=0;
  __ASM volatile ("MRS %0, control" : "=r" (result) );
  return(result);
}

/**
 * @brief  Set the Control Register value
 *
 * @param  uint32_t Control value
 * @return none
 *
 * Set the control register
 */
void __set_CONTROL(uint32_t control)
{
  __ASM volatile ("MSR control, %0" : : "r" (control) );
}

/**
 * @brief  Return the Process Stack Pointer
 *
 * @param  none
 * @return uint32_t ProcessStackPointer
 *
 * Return the actual process stack pointer
 */
uint32_t __get_PSP(void)
{
  uint32_t result=0;
  
  __ASM volatile ("MRS %0, psp" : "=r" (result) );
  return(result);
}

/**
 * @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 volatile ("MSR psp, %0" : : "r" (topOfProcStack) );
}

/**
 * @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)
{
  uint32_t result=0;

  __ASM volatile ("MRS %0, msp" : "=r" (result) );
  return(result);
}

/**
 * @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 volatile ("MSR msp, %0" : : "r" (topOfMainStack) );
}

/**
 * @brief  Return the Base Priority value
 *
 * @param  none
 * @return uint32_t BasePriority
 *
 * Return the content of the base priority register
 */
uint32_t __get_BASEPRI(void)
{
  uint32_t result=0;
  
  __ASM volatile ("MRS %0, basepri_max" : "=r" (result) );
  return(result);
}

/**
 * @brief  Set the Base Priority value
 *
 * @param  uint32_t BasePriority
 * @return none
 *
 * Set the base priority register
 */
void __set_BASEPRI(uint32_t value)
{
  __ASM volatile ("MSR basepri, %0" : : "r" (value) );
}

/**
 * @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
 */
uint32_t __get_PRIMASK(void)
{
  uint32_t result=0;
  
  __ASM volatile ("MRS %0, primask" : "=r" (result) );
  return(result);
}

/**
 * @brief  Set the Priority Mask value
 *
 * @param  uint32_t PriMask
 * @return none
 *
 * Set the priority mask bit in the priority mask register
 */
void __set_PRIMASK(uint32_t priMask)
{
  __ASM volatile ("MSR primask, %0" : : "r" (priMask) );
}

/**
 * @brief  Return the Fault Mask value
 *
 * @param  none
 * @return uint32_t FaultMask
 *
 * Return the content of the fault mask register
 */
uint32_t __get_FAULTMASK(void)
{
  uint32_t result=0;
  
  __ASM volatile ("MRS %0, faultmask" : "=r" (result) );
  return(result);
}

/**
 * @brief  Set the Fault Mask value
 *
 * @param  uint32_t faultMask value
 * @return none
 *
 * Set the fault mask register
 */
void __set_FAULTMASK(uint32_t faultMask)
{
  __ASM volatile ("MSR faultmask, %0" : : "r" (faultMask) );
}

/**
 * @brief  Reverse byte order in integer value
 *
 * @param  uint32_t value to reverse
 * @return uint32_t reversed value
 *
 * Reverse byte order in integer value
 */
uint32_t __REV(uint32_t value)
{
  uint32_t result=0;
  
   __ASM volatile ("rev %0, %1" : "=r" (result) : "r" (value) );
   return(result);
}

/**
 * @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)
{
  uint32_t result=0;
  
   __ASM volatile ("rev16 %0, %1" : "=r" (result) : "r" (value) );
   return(result);
}


/**
 * @brief  Reverse byte order in signed short value with sign extension to integer
 *
 * @param  int32_t value to reverse
 * @return int32_t reversed value
 *
 * Reverse byte order in signed short value with sign extension to integer
 */
int32_t __REVSH(int16_t value)
{
  uint32_t result=0;
  
   __ASM volatile ("revsh %0, %1" : "=r" (result) : "r" (value) );
   return(result);
}


/**
 * @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)
{
  uint32_t result=0;
  
   __ASM volatile ("rbit %0, %1" : "=r" (result) : "r" (value) );
   return(result);
}


/**
 * @brief  LDR Exclusive
 *
 * @param  uint8_t* address
 * @return uint8_t value of (*address)
 *
 * Exclusive LDR command
 */
uint8_t __LDREXB(uint8_t *addr)
{
    uint8_t result=0;
  
   __ASM volatile ("ldrexb %0, [%1]" : "=r" (result) : "r" (addr) );
   return(result);
}

/**
 * @brief  LDR Exclusive
 *
 * @param  uint16_t* address
 * @return uint16_t value of (*address)
 *
 * Exclusive LDR command
 */
uint16_t __LDREXH(uint16_t *addr)
{
    uint16_t result=0;
  
   __ASM volatile ("ldrexh %0, [%1]" : "=r" (result) : "r" (addr) );
   return(result);
}


/**
 * @brief  LDR Exclusive
 *
 * @param  uint32_t* address
 * @return uint32_t value of (*address)
 *
 * Exclusive LDR command
 */
uint32_t __LDREXW(uint32_t *addr)
{
    uint32_t result=0;
  
   __ASM volatile ("ldrex %0, [%1]" : "=r" (result) : "r" (addr) );
   return(result);
}


/**
 * @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)
{
   uint32_t result=0;
  
   __ASM volatile ("strexb %0, %2, [%1]" : "=r" (result) : "r" (addr), "r" (value) );
   return(result);
}


/**
 * @brief  STR Exclusive
 *
 * @param  uint16_t *address
 * @param  uint16_t value to store
 * @return uint32_t successful / failed
 *
 * Exclusive STR command
 */
uint32_t __STREXH(uint16_t value, uint16_t *addr)
{
   uint32_t result=0;
  
   __ASM volatile ("strexh %0, %2, [%1]" : "=r" (result) : "r" (addr), "r" (value) );
   return(result);
}


/**
 * @brief  STR Exclusive
 *
 * @param  uint32_t *address
 * @param  uint32_t value to store
 * @return uint32_t successful / failed
 *
 * Exclusive STR command
 */
uint32_t __STREXW(uint32_t value, uint32_t *addr)
{
   uint32_t result=0;
  
   __ASM volatile ("strex %0, %2, [%1]" : "=r" (result) : "r" (addr), "r" (value) );
   return(result);
}




#endif

















?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
51午夜精品国产| 日本伊人色综合网| 亚洲视频一区二区在线| 欧美激情中文字幕一区二区| 26uuu久久综合| 精品久久久久久亚洲综合网| 精品久久人人做人人爱| 久久久亚洲综合| 国产欧美精品一区aⅴ影院| 国产午夜精品一区二区三区嫩草| 久久精子c满五个校花| 国产精品污www在线观看| 中文字幕亚洲一区二区av在线 | 国产精品萝li| 中文字幕一区在线观看视频| 中文字幕视频一区| 亚洲自拍偷拍九九九| 日韩在线观看一区二区| 久久成人精品无人区| 国产精品亚洲第一| 99re视频精品| 欧美日韩中文字幕一区二区| 欧美一区二区三区四区视频| 欧美精品一区二区三区高清aⅴ| 337p日本欧洲亚洲大胆精品| 国产精品视频一区二区三区不卡| 亚洲美女淫视频| 天天亚洲美女在线视频| 韩国成人精品a∨在线观看| 成人国产一区二区三区精品| 欧亚洲嫩模精品一区三区| 91精品免费在线观看| 国产亚洲精品资源在线26u| 亚洲女女做受ⅹxx高潮| 美女在线观看视频一区二区| 丁香桃色午夜亚洲一区二区三区| 欧美在线观看一二区| 日韩欧美综合在线| 中文字幕一区二区三区乱码在线| 丝袜诱惑制服诱惑色一区在线观看| 久久99精品国产91久久来源| 99在线精品一区二区三区| 91精品免费在线| 日本一区二区三区四区在线视频| 亚洲高清三级视频| 国产成人免费视频网站 | 日韩视频一区二区三区在线播放| 国产日韩欧美一区二区三区综合| 一区二区三区中文字幕| 久久99九九99精品| 91国在线观看| 亚洲精品一区二区精华| 亚洲丶国产丶欧美一区二区三区| 国产91综合网| 69成人精品免费视频| 中文字幕在线不卡一区| 蜜臀av性久久久久蜜臀aⅴ| 99精品一区二区三区| 日韩午夜激情电影| 亚洲一区二区在线观看视频| 国产电影精品久久禁18| 制服丝袜中文字幕一区| 国产精品传媒视频| 韩国av一区二区三区四区| 欧美自拍偷拍午夜视频| 国产精品美女视频| 美女视频黄 久久| 精品视频色一区| 亚洲视频免费看| 国产高清视频一区| 日韩欧美激情四射| 夜夜嗨av一区二区三区网页 | 91精品办公室少妇高潮对白| 国产偷国产偷亚洲高清人白洁| 亚洲一区二区三区视频在线播放 | 99久久婷婷国产精品综合| 精品久久久久久久久久久院品网 | 国产激情一区二区三区桃花岛亚洲| 欧美日韩亚洲不卡| 亚洲免费电影在线| 成人综合婷婷国产精品久久免费| 日韩精品中文字幕一区| 五月天视频一区| 在线观看日韩国产| 亚洲欧洲色图综合| 成人性生交大片免费| 国产亚洲一本大道中文在线| 美腿丝袜亚洲综合| 日韩欧美激情四射| 麻豆成人91精品二区三区| 337p亚洲精品色噜噜狠狠| 亚洲图片欧美视频| 欧美日韩在线精品一区二区三区激情| 亚洲人亚洲人成电影网站色| 成人精品视频.| 国产精品色哟哟网站| 成人免费毛片aaaaa**| 久久久久久麻豆| 国产盗摄女厕一区二区三区| 久久噜噜亚洲综合| 大陆成人av片| 亚洲桃色在线一区| 色综合中文字幕国产| 亚洲欧美区自拍先锋| 色一情一伦一子一伦一区| 亚洲天天做日日做天天谢日日欢 | 99久久99久久久精品齐齐| 最新欧美精品一区二区三区| 色综合天天天天做夜夜夜夜做| 中文字幕综合网| 色8久久精品久久久久久蜜| 亚洲视频在线观看一区| 91国偷自产一区二区三区观看| 一区二区在线观看av| 日本乱码高清不卡字幕| 亚洲一区二区在线视频| 欧美一区二区在线播放| 卡一卡二国产精品 | 国产精品乱码人人做人人爱| 丰满亚洲少妇av| 成人免费在线观看入口| 色狠狠综合天天综合综合| 亚洲国产欧美在线| 欧美一级二级在线观看| 国产一区二区按摩在线观看| 中文字幕一区二区三区在线不卡 | 成人app在线观看| 一区二区高清视频在线观看| 欧美老人xxxx18| 久久99精品网久久| 国产精品免费久久| 精品污污网站免费看| 久久国产夜色精品鲁鲁99| 国产欧美精品区一区二区三区 | 精品国产乱码久久久久久浪潮| 国产在线日韩欧美| 亚洲免费观看高清在线观看| 欧美精品色综合| 国产精品一二三区在线| 亚洲人成电影网站色mp4| 欧美一区二区三区四区在线观看 | 91在线无精精品入口| 日韩av一级电影| 国产女人aaa级久久久级| 在线观看亚洲精品| 九九九久久久精品| 一区二区三区美女| 26uuu国产日韩综合| 91在线观看高清| 九一九一国产精品| 亚洲综合免费观看高清完整版在线| 91精品国产高清一区二区三区蜜臀 | 日本欧美在线看| 国产精品视频一二三区| 欧美高清精品3d| 波多野洁衣一区| 免费观看久久久4p| 一区二区三区欧美在线观看| 欧美精品一区二区在线观看| 欧美午夜电影网| 成人午夜又粗又硬又大| 日本aⅴ亚洲精品中文乱码| 中文字幕av在线一区二区三区| 欧美日韩一区二区三区在线看| 成人国产视频在线观看| 老司机午夜精品99久久| 亚洲一区在线观看视频| 国产精品私人影院| 欧美v日韩v国产v| 欧美日韩成人在线一区| 91猫先生在线| 成人免费看视频| 激情国产一区二区 | gogogo免费视频观看亚洲一| 青青青爽久久午夜综合久久午夜| 亚洲乱码国产乱码精品精小说 | 国产在线不卡视频| 日韩激情视频网站| 亚洲一区二区三区不卡国产欧美 | 97精品久久久久中文字幕| 国产主播一区二区| 蜜桃视频免费观看一区| 亚洲午夜久久久久中文字幕久| 亚洲视频精选在线| 国产女人18水真多18精品一级做| 欧美电影免费提供在线观看| 9191国产精品| 欧美精品在线观看一区二区| 一本色道亚洲精品aⅴ| a级精品国产片在线观看| 国产毛片一区二区| 国内精品久久久久影院色| 免费久久99精品国产| 日韩av不卡在线观看| 亚洲一区二区三区四区的| 一区二区三区四区在线免费观看| 国产精品热久久久久夜色精品三区| 久久精品免视看| 亚洲国产精品成人综合| 26uuu亚洲综合色欧美|