stm32_ota/SYSTEM/SYS/sys.c

50 lines
1.8 KiB
C

#include "sys.h"
/********************************************************************************
* @file sys.c
* @author 晏诚科技 Mr.Wang
* @version V1.0.0
* @date 11-Dec-2018
* @brief STM32汇编指令相关操作
******************************************************************************
*******************************************************************************/
/**************************************************************************************************
* 名 称: void WFI_SET(void)
* 功能说明: THUMB指令不支持汇编内联,采用如下方法实现执行汇编指令WFI
*************************************************************************************************/
void WFI_SET(void)
{
__ASM volatile("wfi");
}
/**************************************************************************************************
* 名 称: void INTX_DISABLE(void)
* 功能说明: 关闭所有中断
*************************************************************************************************/
void INTX_DISABLE(void)
{
__ASM volatile("cpsid i");
}
/**************************************************************************************************
* 名 称: void INTX_ENABLE(void)
* 功能说明: 开启所有中断
*************************************************************************************************/
void INTX_ENABLE(void)
{
__ASM volatile("cpsie i");
}
/**************************************************************************************************
* 名 称: __asm void MSR_MSP(u32 addr)
* 功能说明: 设置栈顶地址
* 入口参数:
* @param1 addr: 栈顶地址
*************************************************************************************************/
__asm void MSR_MSP(u32 addr)
{
MSR MSP, r0 //set Main Stack value
BX r14
}