p0.h=hi(SWRST);
p0.l=lo(SWRST);
r6 = w[p0] (z);
CC = bittst(r6, bitpos(RESET_WDOG));
if !CC jump _reset.no_watchdog_reset;
/* optionally, warn at system level or host device here */
_reset.no_watchdog_reset:
/* optionally, set NOBOOT bit to avoid reboot in case */
p0.h=hi(SYSCR);
p0.l=lo(SYSCR);
r0 = w[p0](z);
bitset(r0,bitpos(NOBOOT));
w[p0] = r0;
/* start watchdog timer, reset if expires */
p0.h = hi(WDOG_CNT);
p0.l = lo(WDOG_CNT);
r0.h = hi(WDOGPERIOD);
r0.l = lo(WDOGPERIOD);
[p0] = r0;
p0.l = lo(WDOG_CTL);
r0.l = WDEN | WDEV_RESET;
w[p0] = r0;
...
jump _main;
_reset.end:
The subroutine shown in
the watchdog. Note that the value written to the
not matter.
ADSP-BF50x Blackfin Processor Hardware Reference
Listing 12-2
can be called by software to service
Watchdog Timer
register does
WDOG_STAT
12-9
Need help?
Do you have a question about the ADSP-BF506F and is the answer not in the manual?
Questions and answers