User`s guide
www.uTasker.com 
µ
Tasker – AT91SAM7X Tutorial 
V1.4
uTaskerV1.4_SAM7X.doc/0.03  34/36  31.07.2009
This transmission activation takes place in the file sam7x.c in the function fnStartEthTx() 
so search for it and set a break point there. Once the program reaches this point it will stop 
and you can see which registers are set up and verify that all is correct. 
Here you will also see that the simulator comes into play once the data is ready and the 
registers have been set up correctly. This code, which will not be discussed here, basically 
tries to behave as the EMAC transmitter does by interpreting the register set up and 
transmitting the data buffer contents to your local network. 
9.  Off-Line Simulation 
Normally the simulator, or the target, will have responded to the ping request very quickly 
and the ping test would have been successful. We, being human beings, are rather slow and 
we probably took several minutes to work our way through the code before your ping reply 
was finally sent back. This was of course much too late as the ping test has already 
terminated, informing that the test failed. 
This is not only a problem with the ping test but with many protocols since they use timers 
and expect replies within quite a short time, otherwise an error is assumed and links break 
down. Debugging of such protocols can become quite hard work due to this fact. 
This is where the µTasker can save the day again since it supports operation in OFF-LINE 
mode. This means simply that it can interpret Wireshark recordings as if they were real data 
from the network. Since we previously made a recording we can try this out right now! 
A. Prepare a break point 
I suggest that you set a break point in the ICMP routine itself since we have already seen 
how the message arrives there ad this will avoid false triggers due to broadcast frames in 
the mean time. Let the project run again by hitting F5. 
B. Open the Wireshark recording 
In the menu Wireshark select Load Wireshark/Ethereal file to play back. 
Then select the ping.eth file which was previously recorded. If the simulation is 
repeated, the command Replay last File can be used instead – this is only valid 
after the simulator is terminated normally. 
Perform this action and the Wireshark file will be interpreted. The times that frames arrived 
will be respected – if there is a gap or 1s between two frames then these two frames will also 
arrive with a 1s gap. You will see that the recorded ping will be received via the receive 
Ethernet interrupt routine and be passed up through the software until the breakpoint in the 
ICMP routine is encountered. The difference is that the break point and stepping in code can 
not disturb the protocol since also the recording is stopped. 
This can be a great advantage when debugging protocols! 
Before terminating this discussion there are a few points which should be noted, so here is a 
list of all relevant details which could be of use or interest. 










