We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
Hi everyone,
I am debugging an application on a STM32F4 in flash with a ULINK. I read one of the features for the ULINK should be 8 breakpoints, but after the 6th breakpoint I get an error message. Isn't it possible to use all 8 breakpoints? Maybe can I use 8 breakpoints with another device?
Can you help me with this?
Warden
I think if the manufacturer of the tool claims it can do 8 breakpoints, it should be able to do so.
Well, the tool can do it. It's the target that can't.
Being mocked and ridiculed by Keil/ARM support is very irritating.
Then it's a good thing that nothing of the sort actually happened.
OK, Specs are fixed, number of Breaks reduced to 6.
On Ridiculing customers, I think this is what has happend (see above)
<quote> RE: Keil Specs are wrong. 6 !=8
I am sorry you are having so much trouble setting break points on your Cortex M3. This must be very frustrating for you. Maybe you would like to tell us how this makes you feel?
It must also be frustrating that other people do not seem to be having such problems setting break points with the Cortex M3.
We really feel your pain.
Thanks for sharing... </quote>
You're missing the point. Ridiculing may indeed have happened. But it was not, as you claim, ridiculing of customers by support. It was ridiculing of one forum participant by another forum participant.
I do not work for Keil. My opinions were my own. If you have a problem with that then your issue is with me, not with Keil.
I had trouble that someone was getting so bent out of shape with this. It did not seem like Keil was trying to pull a fast one on anyone. I have used, Ulink, Ulink2, ST-Link and Jlink and all of them support 6 break points on the Cortex M3. This is NOT a function of the JTAG device it is a function of the underlining hardware. These are HARDWARE break points and they reside in the hardware, not the JTAG device. IF the hardware supports 8 breakpoints, then ALL of these JTAG devices support 8 break points. If the hardware supports 6 then the JTAG devices support 6. Looking up the early documentation you can see that ARM was suggesting that they would support both 6 and 8 breakpoints in the this hardware line. This would depend on what the chip manufactures decided. Yes, as it has turned out, it seems that no one has made a device that supports 8 breakpoints, they all seem to be 6. But if the hardware DID support 8 breakpoints, I am quite sure that the Ulink2 would handle that. You seem to be complaining to Keil about the fact that the chip manufacturers did not support the 8 breakpoints. Keil can not fix that. I can understand that the course that was taken by ARM / the Chip manufacturers that it seems to be that we will never see 8 breakpoints for these chips. If Keil changes the documentation to say 6, that does seem reasonable at this point. It was not unreasonable for Keil to have claimed that they support 8. It was not reasonable to get so bent out of shape because Keil claimed that they supported the 8 breakpoints, as I am sure that they actually do support it. There was no hint that any chips would support higher than 8, so they did not claim something higher than 8, but my guess is that if it any chips did support more than 8, then the ULink2 would support more that 8 without changing the hardware (MAY require a firmware change, maybe not).
Keil did a great job on the Ulink2 (ok, the original manufacturing run was hosed, but it was still a good product). They really made an effort to match the Ulink2 documentation with the underlying hardware and try not to mislead anyone when they said 8 hardware breakpoints. They have said that they will change there current documentation to say 6 instead of 8, which given that no chips support the 8 also seems reasonable, but there does not seem to exist any intent to mislead or deceive on there part. That is why I claim that you have right to get so upset and bent out of shape.
Keil may not be your close friend, but they are not your enemy. They are not trying to deceive you. They they are trying to be helpful. Nothing that happened here should have made you upset or made you feel like you had been taken advantage of. You were not.
I did have it changed a long time ago: http://www.keil.com/ulink2/specs.asp
Hello Last March this message timed out on me and I couldn't access it or even find it - I was waiting for someone to activate and now it looks like I have access ! Some sort of bug... So - I did get the webpage fixed in march or so: www.keil.com/.../specs.asp I asked them to change all other mention of the "8" - plus all my documents and I even told NXP about it as I saw they also used "8". The confusion results from the ability using the Watchpoint feature (aka Access Breaks) to set two additional breakpoints. The regular 6 hardware breakpoints can be set/unset while the program is running. The instruction at the breakpoint address is not executed when it is encountered. This is an important feature. The Watchpoint breakpoint, if I may call it this, must be set/unset when the program is stopped and it usually(always?) has some "skid". This is because these two types come from different parts of CoreSight. Someone, long ago, thought these are equal - and they are (sort of) , except for the skid. I tried this and it doesn't seem possible to set just a Watchpoint breakpoint on just an executable address in uVision (MDK 5.13)(MCB1700). Not sure why. I will ask the engineer about this. But, of course, I can set 6 hardware breakpoints the normal way. Try 7 and uVision complains as it should. If you know of anywhere else on keil.com that claims 8 - let me know. bob.boys@arm.com BTW - it really isn't ULINK or J-Link that determines the number of hardware breakpoints - it is the chip itself. Thanks Bob San Jose, California