sys.c 845 B

12345678910111213141516171819202122232425262728293031323334353637
  1. #include "sys.h"
  2. //////////////////////////////////////////////////////////////////////////////////
  3. //本程序只供学习使用,未经作者许可,不得用于其它任何用途
  4. //ALIENTEK STM32开发板
  5. //系统中断分组设置化
  6. //正点原子@ALIENTEK
  7. //技术论坛:www.openedv.com
  8. //修改日期:2012/9/10
  9. //版本:V1.4
  10. //版权所有,盗版必究。
  11. //Copyright(C) 正点原子 2009-2019
  12. //All rights reserved
  13. //********************************************************************************
  14. //THUMB指令不支持汇编内联
  15. //采用如下方法实现执行汇编指令WFI
  16. void WFI_SET(void)
  17. {
  18. __ASM volatile("wfi");
  19. }
  20. //关闭所有中断
  21. void INTX_DISABLE(void)
  22. {
  23. __ASM volatile("cpsid i");
  24. }
  25. //开启所有中断
  26. void INTX_ENABLE(void)
  27. {
  28. __ASM volatile("cpsie i");
  29. }
  30. //设置栈顶地址
  31. //addr:栈顶地址
  32. //__asm void MSR_MSP(u32 addr)
  33. //{
  34. // MSR MSP, r0 //set Main Stack value
  35. // BX r14
  36. //}