I'm currently evaulating the the IAR tools that came with ATMEL's AT91SAM7S-EK eval kit(which uses the AT91SAM7S64). The IAR tools (using a Segger J-Link tool) don't appear to be able to debug ISR's very well, if at all. Before I go through all the hoops to get several $1000 to spend on evaulating the JTAG debugger enabled version of the KEIL tools, I was wondering if anyone out there who's using them would mind commenting on how well they work when debugging ISR's.
Dave; The PKARM supports the Segger J-LINK. Also, Keil has several interrupt examples for the SAM7 eval board. Why don't you contact Keil to see if the ARM eval toolset will support the J-LINK. I have briefly used the U-LINK with the SAM7 board running the interrupt examples with no great difficulty. A couple of suggestions: Don't attempt to 'single step' in an isr routine. Use the 'run to cursor' step option instead. Wrap your isr with an interrupt disable/enable while debugging the isr.
Dave; Just hooked-up my Sam7 to U-LINK. Was able to run the examples with no problems. Had full control of the interrupt conditions on my target board. Of course had to Halt Run while I changed most conditions but that is normal for running on a target such as the Sam7 eval. With the Advanced Interrupt Controller dialog I had all the control required for debug. Suggest that you download the ARM eval and run some of the board examples in the simulator. Open the peripherals dialog and check out the control you have over your debug environment either in the simulator or on a target board.
Thanks Al. If I understand you correctly, you were able to set breakpoints in ISR's and the debugger would stop when they were triggered and you could step through ISR code, or 'run' the debugger again, all with no problems. Is that right? Dave.
Dave; Yes that is correct. But I do have to halt the run mode to enter a breakpoint on the target. Then I can create an interrupt via the dialog or via the programmed hardware switch. I hit the breakpoint, stop and step through the ISR. I believe this device supports only two hardware breakpoints. I will have to investigate additional software breakpoints later.
Thanks. The IAR tools only support two breakpoints when you're running the code from flash ROM. I usually run the code from RAM, which then supports an unlimited number of breakpoints. Do the KEIL tools make it easy to build/load the code into either ROM or RAM?
Dave; Keil tools makes it about as easy as ARM can get to remap to either RAM or ROM. Keil furnishes a number of startup files for remapping. These will autoload with your permission when you create a project. Also, Keil has a number of examples of ram initialization. All you have to do is replace memory addresses with your target memory map. For the Samt7s64 eval board, all of this is furnished. Also, there is a startup wizard that allows you to modify existing startup via the wizard or via text entry. Once again, I suggest that you download the ARM eval and look at the examples. The simulator is not just an instruction simulator. It simulates most of the device on chip peripherals. NO stinking macros to write just to look at port I/O or Interrupts or Timers, etc., etc.,etc. The eval is fully functional with limited code size. I'm talking about the PKARM which has the CARM compiler. Not the GCC compiler which is also supported somewhat.
View all questions in Keil forum