The online help indicates that the Watchdog peripheral is simulated for the LPC1788 but it doesn't appear in the Peripherals menu and when the watchdog is accessed the following errors occur:
*** error 65: access violation at 0x40000000 : no 'read' permission *** error 65: access violation at 0x40000004 : no 'write' permission *** error 65: access violation at 0x40000000 : no 'write' permission *** error 65: access violation at 0x40000008 : no 'write' permission
The correct DLLs and parameters are selected in the Debug options for the project, and other peripheral simulation works (e.g. timers, GPIO, UART, PLL, etc.)
Is it known not to work or is there a trick/update to get Watchdog simulation for LPC1788 working?
Thanks for your reply.
I already have the correct parameters from that page set in the project options. However the "Watchdog Timer" is not in the Peripherals menu and there is no way to open the window shown in http://www.keil.com/dd/vtr/5325/3420.htm
The peripherals menu contains:
System Viewer Core Peripherals System Control Block Clocking & Power Control Flash Accelerator Module I/O Control GPIOs GPIO Interrupts External Memory Controller UART CAN SSP Interface I2C Interface Timer Pulse Width Modulator Motor Control Pulse Width Modulator Quadrature Encoder Interface Real Time Clock A/D Converter D/A Converter
There is also no entry in the Memory Map that covers the Watchdog Timer address range.
I have also tried creating a simple project for the same chip, setting the Dialog DLL and parameter as stated on http://www.keil.com/support/docs/3726.htm and I end up with the same set of simulated peripherals in the menu.
Unfortunately, the LPC177x and LPC178x devices are not defined in our simulation database on the webserver. Because of this, you see the sentence "Simulation for this device is provided by the default peripheral simulation driver. Complete peripheral simulation is not available and is not planned to be implemented by ARM." on page http://www.keil.com/dd/chip/5325.htm. In this case, the default driver means a LPC1768 where we have the simulation of the Watchdog timer. That's why it is listed on our webpage.
We actually have a simulation for most LPC177x and LPC178x devices but not for all peripherals. The Watchdog timer for LPC177x and LPC178x devices was never implemented and it is not identical to the LPC175x and LPC176x because it is a windowed-WDT. So in this case you need to map the WDT register area to avoid the 'access violations' or you remove all accesses to the WDT in your application.
Thank you for that information. That clarifies the problem very well.
I've disabled the watchdog accesses when running in simulation using #ifdef round them and a project target for simulation with the appropriate define.
Thanks again.