watchdog.asm
来自「bf533平台图像采集程序」· 汇编 代码 · 共 101 行
ASM
101 行
#include <defBF532.h>
.section L1_code;
.global _BF533_WDOG_WRITE_CNT;
.global _BF533_WDOG_WRITE_CTL;
.global _BF533_WDOG_WRITE_STAT;
.global _BF533_WDOG_INTERRUPT_enable;
.global _BF533_WDOG_RESTART;
_BF533_WDOG_WRITE_CNT:
p0.h = hi(WDOG_CNT);
p0.l = lo(WDOG_CNT);
r0.l = 0xffff;
r0.h = 0xffff;
[p0] = r0;
SSYNC;
_BF533_WDOG_WRITE_CNT.END:
RTS;
_BF533_WDOG_WRITE_CTL:
p0.h = hi(WDOG_CTL);
p0.l = lo(WDOG_CTL);
r0.l = 0x0000;//0x04//0x0AD0;//generate reset event
w[p0] = r0.l;
SSYNC;
_BF533_WDOG_WRITE_CTL.END:
RTS;
_BF533_WDOG_RESTART:
p0.h = hi(WDOG_CTL);
p0.l = lo(WDOG_CTL);
r0.l = 0x0AD0;//stop watchdog count
w[p0] = r0.l;
r0.l = 0x8004;//clear watchdog timer expired bit
w[p0] = r0.l;
SSYNC;
_BF533_WDOG_RESTART.END:
RTS;
_BF533_WDOG_WRITE_STAT:
p0.h = hi(WDOG_STAT);
p0.l = lo(WDOG_STAT);
r0 = 0x0000(z);//generate reset event
[p0] = r0;
SSYNC;
_BF533_WDOG_WRITE_STAT.END:
RTS;
_BF533_WDOG_INTERRUPT_enable:
p0.h = hi(SIC_IAR2);
p0.l = lo(SIC_IAR2);
r0 =[p0];
r1.h= 0x6000;//IVG13
r1.l= 0x0000;//IVG13
r0=r0|r1;
[p0] = r0;
p0.h = hi(SIC_IMASK);
p0.l = lo(SIC_IMASK);
r0 =[p0];
r1.l= 0x0000;
r1.h= 0x0080;
r0=r0|r1;
[p0] = r0;
SSYNC;
_BF533_WDOG_INTERRUPT_enable.END:
RTS;
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?