#include "sys.h" /********************************************************************************* ___ _ _____ _____ _ _ _____ _____ _ __ / _ \ | | |_ _|| ___|| \ | ||_ _|| ___|| | / / / /_\ \| | | | | |__ | \| | | | | |__ | |/ / | _ || | | | | __| | . ` | | | | __| | \ | | | || |_____| |_ | |___ | |\ | | | | |___ | |\ \ \_| |_/\_____/\___/ \____/ \_| \_/ \_/ \____/ \_| \_/ * ****************************************************************************** * 本程序只供学习使用,未经作者许可,不得用于其它任何用途 * ALIENTEK Pandora STM32L475 IOT开发板 * 系统时钟初始化 * 包括时钟设置/中断管理/GPIO设置等 * 正点原子@ALIENTEK * 技术论坛:www.openedv.com * 创建日期:2016/1/5 * 版本:V1.0 * 版权所有,盗版必究。 * Copyright(C) 广州市星翼电子科技有限公司 2014-2024 * All rights reserved * ****************************************************************************** * 版本修改说明 * 无 * ******************************************************************************/ /** * @brief THUMB指令不支持汇编内联、 * 采用如下方法实现执行汇编指令WFI * * @param void * * @return __asm */ __asm void WFI_SET(void) { WFI; } /** * @brief 关闭所有中断(但是不包括fault和NMI中断) * * @param void * * @return __asm */ __asm void INTX_DISABLE(void) { CPSID I BX LR } /** * @brief 开启所有中断 * * @param void * * @return __asm */ __asm void INTX_ENABLE(void) { CPSIE I BX LR } /** * @brief 设置栈顶地址 * * @param addr 栈顶地址 * * @return __asm */ __asm void MSR_MSP(u32 addr) { MSR MSP, r0 //set Main Stack value BX r14 }