2.10.5. Watchdog

Use Watchdog to prevent a failure in your program locking up your system. If your program fails to access Watchdog before a predetermined time, Watchdog halts ARMulator and returns control to the debugger.

Note

This is a generic model of a watchdog timer. It is supplied to help users model their system environment. It does not model any actual hardware supplied by ARM.

The Watchdog configuration is controlled by a section in peripherals.ami. It has the following items:

{Default_WatchDog=WatchDog
Range:Base=0xb0000000
KeyValue=0x12345678
WatchPeriod=0x80000
IRQPeriod=3000
IntNumber=16
StartOnReset=True
RunAfterBark=TrueWAITS=0
}

Range:Base specifies the area in memory into which the watchdog registers are mapped.

This is a two-timer watchdog.

If StartOnReset is True, the first timer starts on reset. If StartOnReset is False, the first timer starts only when your program writes the configured key value to the KeyValue register. This is located at the address given in the Range:Base line (0xB0000000).

The first timer generates an IRQ after WatchPeriod memory cycles, and starts the second timer. The second timer times out after IRQPeriod memory cycles, if your program has not written the configured key value to the KeyValue register. Configure IRQPeriod to a suitable value to allow your program to react to the IRQ.

If RunAfterBark is True, Watchdog halts ARMulator if the second timer times out. You can continue to execute, or debug.

If RunAfterBark is False, Watchdog halts ARMulator and returns control to the debugger.

IntNumber specifies the interrupt line number that Watchdog is attached to.

WAITS specifies the number of wait states that accessing the watchdog imposes on the processor. The maximum is 30.

Copyright © 1999-2001 ARM Limited. All rights reserved.ARM DUI0058D
Non-Confidential