we just updated from 10.2 to 10.6 for a MCF5271 project and have noticed the following: when we download to RAM for debugging it always attempts to write to flash. To update I created a new workspace and imported the 10.2 project into 10.6 without any errors.
I found this setting enabled in the Hardware Connection Advanced Programming Options: "Always Erase and Program flash without asking.", and I can't disable it:
I'm guessing this is the issue; I tried modifying the .launch and ReferencedRSESystems files but the values are overwritten by the IDE. Any ideas?
OK, I've verified that we are loading our app into RAM, it's just hard to see with the IDE trying to write to Flash every time we want to debug from RAM.
We can reliably debug from RAM using (a single) hardware breakpoint.
However, when we try and work around this issue (a single hardware breakpoint) by using software breakpoints we are able to reach the software breakpoint once, but the next time we reach it we end up in the MQX (3.8) _int_unexpected_isr. When I inspect the RAM memory where the software breakpoint is at program start-up compared to after the first breakpoint I don't see a difference and it matches the compiled code.
The exception is "Illegal instruction". For example, when I put software breakpoints at 145, 146, 147 in the following (from listing):
0x00025E72 0x242F0084 move.l 132(a7),d2
0x00025E76 0x2202 move.l d2,d1
0x00025E78 0x92AF0020 sub.l 32(a7),d1
0x00025E7C 0x2F420020 move.l d2,32(a7)
0x00025E80 0x0C8400000001 cmpi.l #1,d4 ; '....'
0x00025E86 0x6312 bls.s *+20 ; 0x00025e9a
The exception occurs at the second breakpoint with the PC being 0x25E7A, and there is no sign of an illegal instruction (memory matches the listing) but it seems like there's an alignment issue?
So, what's up with CW 10.6 debugging MQX 3.8 & software breakpoints?
Are the debug settings getting messed up because it's trying to write to Flash and then thinks we're running from Flash?
There were no changes to our projects/source files, we only updated the IDE from 10.2 to 10.6 and everything worked in 10.2...
I just noticed in the release notes that 10.6 doesn't support MQX 3.8! Does this explain the software breakpoint issue?
Please provide more information regarding this limitation, and what is required to support MQX 3.8.
Can I work around this issue by pointing the 10.6 IDE at the 10.2 assembler/compiler/linker?