sys.c 398 B

12345678910111213141516171819202122232425
  1. #include "sys.h"
  2. //THUMB指令不支持汇编内联
  3. //采用如下方法实现执行汇编指令WFI
  4. void WFI_SET(void)
  5. {
  6. __ASM volatile("wfi");
  7. }
  8. //关闭所有中断
  9. void INTX_DISABLE(void)
  10. {
  11. __ASM volatile("cpsid i");
  12. }
  13. //开启所有中断
  14. void INTX_ENABLE(void)
  15. {
  16. __ASM volatile("cpsie i");
  17. }
  18. //设置栈顶地址
  19. //addr:栈顶地址
  20. __asm void MSR_MSP(u32 addr)
  21. {
  22. MSR MSP, r0 //set Main Stack value
  23. BX r14
  24. }