Can't make Interrupts work for some devices in the debugger

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 

Can't make Interrupts work for some devices in the debugger

1,958 次查看
admin
Specialist II
I'm beggining to work with CodeWarrior and the Processor Expert extension. I'm following the examples in this document (a simple timer that makes a led blink, in particular) but i'm doing something wrong, because the interrupts are not working for the device I need in Full Chip Simulation.

When I use, for example, the MC9S08GB60, the program runs correctly in the debugger, from time an interrupt occurs and the logic in the Events.c is executed.

But when using the MC9S08AC8, the program never leaves the For loop. No interrupts occur, although all the configuration is exactly the same used with the other device.

Are there some extra configurations to enable interrupts in this device?
标签 (1)
标记 (1)
0 项奖励
回复
3 回复数

881 次查看
CrasyCat
Specialist III
Hello
 
Which version of CodeWarrior are you using?
To retrieve that info:
- Start CodeWarrior
- Select Help -> About Freescale CodeWarrior
- Click on "Install Products"
- CodeWarrior version used is displayed on top in the Installed Products dialog.
 
I have made a quick check with CodeWarrior for MCU V6.2.
I created a project for HCS08AC8 with ProcessorExpert.
I added a timer interrupt based on RTI peripheral in Processor Expert
I build my application and started the debugger.
I did set a Breakpoint in function TI1_OnInterrupt and the application stops there.
 
So the interrupt is generated.
 
Am I missing something?
 
CrasyCat
0 项奖励
回复

881 次查看
Tbspd_TOK
Contributor III
I don't know if this could be similar to my problem.
I'm running an assembler demo application for the hcs08qe128 in CW6.2. When trying to singlestep the application, it will never enter(or it is hidden) the interrupt service routine. When I set a breakpoint in the ISR it stops as normal.
 
Is this an intended operation or is there a glitch in the BDM interface? As far as I can see there is no difference between the 'step' and 'assembler step'.
 
From the response, I assume that the BDM set it's 'breakpoint' in the code and disregard the next instruction, the ISR. This way the function is not a single realtime instruction step, but a step in the codelist/memory, whatever happens between.
 
Am I correct?
 
TOK
 
0 项奖励
回复

881 次查看
J2MEJediMaster
Specialist I
If you're writing the program in assembler, then yes, single-step and single-step assembly should be one and the same.

I don't follow what you are doing with the interrupt. You can't step into the ISR code, you have to wait until the interrupt occurs and then the processor jumps into the ISR. The best way to handle that is how you're doing it now: hang a breakpoint in the ISR code and wait until the processor tours it as the result of an interrupt.

---Tom
0 项奖励
回复