This is the mail archive of the ecos-discuss@sources.redhat.com mailing list for the eCos project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Ctrl-C on TCP problem


Hi.

I'm having problems with Ctrl-C support during debug over TCP, using CVS
Redboot and eCos..
I found out the following:
When I press Ctrl-C following functions are called:
-__default_interrupt_vsr
- cs8900_isr()  (just masks interupt)
- eth_drv_dsr()
- ecos_synch_eth_drv_dsr()
- cyg_flag_setbits() sets alarm_flag
Here interrupt processing ends.
- alarm_thread() calls eth_drv_run_deliveries()
- hal_ctrlc_check()
- cyg_hal_user_break( (CYG_ADDRWORD *)hal_saved_interrupt_state );

Last function sets breakpoint on address from which we entered
__default_interrupt_vsr(), but we are not any more in ISR (nor DSR), but in
alarm thread. So program will not stop on breakpoint.

If we set
cyg_hal_user_break( (CYG_ADDRWORD *)NULL);
program will stop, but always on this line.

Where am I wrong?
How to stop execution on current instruction when pressed Ctrl-C ?

Thanks
Damir Salantic



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]