How "Non-Intrusive" is the S08 BDM?

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

How "Non-Intrusive" is the S08 BDM?

2,581 Views
peg
Senior Contributor IV
Hi,
 
I have an application on a S08GT that spends most of its time executing ISR's. When the machine that generates these interrupts goes beyond its rated speed the first error that occurs is that a compare register is loaded with a value that is behind where the counter is instead of in front of it (because the interrupt that does this is delayed by others). This I am quite aware of.
 
However recently I was making these ISR's even longer and during subsequent testing with a BDM debugger querying some memory locations this problem was occuring at much slower speeds than I had been previously observed.
 
The ISR's were trimmed back to as they were prevoiously but the problem remained, the machine would only go at half the speed it would before before this problem occurred.
 
After much testing it was found that the problem only occurred while the debugger was connected.
 
Now I thought that a debugger connected to a processor running in user mode and simply executing what I thought would be "non-intrusive" READ_BYTE commands would not have any impact on the user programme. But the response by the BDM to these commands seems to be stealing cycles from the user programme.
 
Should this be occurring?
If so then they are NOT non-intrusive at all!
Can anybody shed any light on this?
 
Regards
David
 
Labels (1)
0 Kudos
Reply
3 Replies

882 Views
Alban
Senior Contributor II
Hi Peg,
 
There is a new Application Note with a table indicating if the command is intrusive or not, among other things:
 
 
Cheers,
Alban.
 
0 Kudos
Reply

882 Views
peg
Senior Contributor IV
Hello,
 
It seems that these non-intrusive commands are of the more modern "fat-free" kind of "non" rather than the "old fashioned" kind of non that actually meant "a prefix that means not".
 
However this does not explain the level of "intrusion" that I was seeing.
 
Yes Alban I have seen this document, it does not provide any more technical details than were already available but probably serves as a good introduction. Written by a mate of yours then?
 
Unfortunately, the machine I was testing is now much closer to you Alban, than me, so I can't do anymore direct testing on this at the moment. I will be sure to let you know what I find when  can get my hands on another.
 
Regards
David
 
 
0 Kudos
Reply

882 Views
RockyRoad
Contributor III
David -
 
A BDM Read will always steal one cycle. If you calculate the number of CPU cycles that it takes to complete a READ_BYTE command (33) x cycles per bit (16) it is 528 CPU cycles. This is the fastest that you could complete a READ_BYTE. Within that time you steal one cycle, so the hit is 1 out 528 cycles.
 
As long as the debugger is truly in user mode, then this is the worst case hit for READ_BYTE in user mode.
 
- Rocky