Hi There,
I’ve used Rowley Crossworks in the past with good success on an Olimex ADuC7026 board to make my own IMU.
I’ve recently dusted off my old OKI Olimex boards, and despite lack of flash programming guides for any of the Olimex code examples (huge point of contention in my view) I decided to start working with it again. I was happy to see that the copy of Crossworks I already own (1.6/1.7 personal) support the CPU/Board package, as well as the two JTAG devices I own.
1x Wiggler style olimex parallel port JTAG (1.6/1.7 - used with ADuC project)
1x JTAG USB OCD Tiny (1.7 - trying to use this now but running into problems).
I’ve found that the use of the JTAG Tiny causes random memory corruption even with the JTAG divider all the way up to 12 (I saw someone recommend 10), and while I can program/verify, debugging even the included examples eventually causes the program to vector to a seemingly random address, show me an assembly listing and get stuck there constantly calling the same instruction - sometimes this is a branch instruction, sometimes it seems to be an arithmetic instruction.
Switching over to the wiggler these problems go away. My first question is should the cable be shorter? I’ve seen another post with someone shortening their cable to get reliable performance, and wonder if I should do the same?
My next set of problems comes when I try to modify the example code which for example just blinks an LED (a crossworks included board example). It’s as happy as can be to run blinking that LED forever, but when I try to modify the code to loop through a large array doing write/read/compare to test the external SRAM (where variables are put by default according to the Crossworks memory map) I get the code vectoring off into the pABORT interrupt stub Before it reaches the point where the large variable should even exist!
When I see behavior that seems magical my first thought is that this is just another little detail of the hardware I’m not taking into account, but at the same time this is so darn simple it shouldn’t be doing this…
Thanks in advance for any input.
P.S. I’ve already looked up and disabled the watchdog timer (something the examples don’t handle, and while it doesn’t seem to interefere with them, I don’t want any nasty surprises later)