> The Kinetis chip we're using has only two hardware breakpoints available,
I've just found your posts on this, you're using KE06.
Why are breakpoints not working, and how do I fix it?
The first manual I looked at (before finding you were using the KE06) was the K60 one. It doesn't have anything as simple as a table of features. The "ARM CoreSight" is very complicated. Searching for "breakpoint" finds the FPB can be used to patch out the Flash in a running system, or can be used to provide 6 hardware breakpoints. I don't know if the debugger knows how to use this facility. The word "breakpoint" doesn't appear anywhere else in the over 1800 pages. The DWT has Watchpoints and "tracing", but it isn't obvious if they can be used to breakpoint or single-step.
The K70 manual looks to be the same as the K60. I'd guess all the "K" series (Cortex M4) would be similar.
The Kinetis "L" Series (Cortex M0+) "KL02 Sub-Family Reference Manual" has "Table 3-4. ARM Cortex-M0+ parameter settings" which details the options that Freescale has selected. They've selected "BKPT=2", which means only two breakpoints. The top chip in the "L" family (KL46 Sub-Family Reference Manual) has the same setting.
The manual says to go to arm.com for details on the core, and there we find:
Cortex-M0+ Processor - ARM
Debug Optional JTAG or Serial-Wire Debug Ports Up to 4 Breakpoints and 2 Watchpoints
So four debugs are possible, but weren't optioned on that core.
The same table in the KEA series shows they selected "2" there as well. Ditto KE, KV and probably MK and KW as well.
This has all been covered in the Kinetis forums in your post there and in others like this one:
Re: Problem in more than 2 breakpoint use for MKE04Z128 series micro-controller.
> I think we need to yell at Freescale to encourage them to put a reasonable number of hardware breakpoints in their debug modules for the Kinetis line.
They can't use their tried and true ColdFire core debug technology in these chips, and they optioned only two breakpoints. These decisions were made years ago and are "set in silicon". As I said in a previous post on this thread:
> The version of the Debug module should be an important part of the chip selection criteria.
So if the number of breakpoints is important to you, then you should choose a more capable chip like one of the M4 ones.
Or, as suggested in responses to your original post, if this is wasting time and money for you, buy a "Segger J-Link". It probably erases and reprograms the Flash every time you hit "run" or when it breakpoints. I've used other chips (without hardware breakpoints) that do that to allow debugging.
> the step-over and step-into functions don't work if you have two breakpoints set
You can EITHER use breakpoints or you can single-step. You can't do both. What you need is a friendly debugger with automation that disables the breakpoints when you're single-stepping, and puts them back when you hit "run". Or a scriptable debugger, like the one I was using on the MPC860 EIGHTEEN YEARS AGO in 1997 that let you write scripts to automate this sort of stuff. Do you have the "skipping breakpoints" button? That seems to be what it is for:
Skipping Breakpoints | MCU on Eclipse
Tom