标签:系统 system 汇编语言 mcu IV int 汇编 ltm 中断
使用汇编语言实现微秒精准延时及复位功能,移植方便
asm.c
#include "asm.h" __asm void SysCtlDelay(u32 ulCount) { subs r0, #1; bne SysCtlDelay; bx lr; } __asm void SystemReset(void) { MOV R0, #1 //; MSR FAULTMASK, R0 //; 清除FAULTMASK 禁止一切中断产生 LDR R0, =0xE000ED0C //; LDR R1, =0x05FA0004 //; STR R1, [R0] //; 系统软件复位 }
asm.h
#ifndef __ASM_H #define __ASM_H #include "main.h" extern void SysCtlDelay(u32 ulCount); extern void SystemReset(void); #endif
delay.c
void DelayUs(u16 us) { SysCtlDelay(12*us); } void DelayMs(u16 ms) { int i; for(i=0;i<ms;i++) { HAL_DelayUs(1000); } } void MCU_Reset(void) { SystemReset(); }
标签:系统 system 汇编语言 mcu IV int 汇编 ltm 中断
原文地址:https://www.cnblogs.com/fly2199/p/9154365.html