While waiting for my full license, I'm using the 3.03a evaluation kit, simulating an LPC2114.
The only signal function I have running is this skeleton code:
signal void port0_sig(void) { while (1) { wwatch(PORT0); } }
My program starts with:
int main(void) { IODIR0 = (1<<MUX_A0)|(1<<MUX_A1)|(1<<MUX_A2)| (1<<LED_1)|(1<<LED_2)|(1<<LED_3)|(1<<LED_4); ... }
As soon as the simulator performs the assign of data direction on PORT0, the simulator hangs in an infinite loop and the IDE must be killed from the task manager.
The error behaviour is the same as the documentation mentions if one signal function calls another. However, immediately before the line is processed, the debugger tells the following:
signal state -3 idle Signal = port0_sig (line 89)
My reason for catching writes to PORT0 is that I have a large number of analog signals connected to two 8->1 analog MUXes, and I need to be able to assign different values to AIN0 and AIN1 depending on selected MUX address.
To test the application logic, it is required to be able to vary the analog channels individually.