Hi Elad

Christophe Coutand wrote:

> The CDL for your variant/platform must implement the profiling timer,
> for example check
> \hal\cortexm\stm32\var\current\cdl\hal_cortexm_stm32.cdl (from anoncvs)
> 
>     implements    CYGINT_PROFILE_HAL_TIMER
> 
> The STM32 variant implements the timer in
> hal\cortexm\stm32\var\current\src\stm32_misc.c. You basically need to
> fill the init function ( hal_enable_profile_timer(int resolution) ) that
> starts the timer and then from the timer ISR, call __profile_hit().

To ensure access to the saved interrupt state (including the program
counter value) from your profiling timer ISR, you will also need to
modify the condition used to set hal_saved_interrupt_state in the MIPS
architectural HAL. In hal/mips/arch/current/src/vectors.S, replace:

> #if defined(CYGDBG_HAL_MIPS_DEBUG_GDB_CTRLC_SUPPORT)
>       # If we are supporting Ctrl-C interrupts from GDB, we must squirrel
>       # away a pointer to the save interrupt state here so that we can
>       # plant a breakpoint at some later time.
>       
>       .extern hal_saved_interrupt_state
>       la      v0,hal_saved_interrupt_state
>       sw      s0,0(v0)
>       
> #endif

With:

> #if CYGINT_HAL_COMMON_SAVED_INTERRUPT_STATE_REQUIRED > 0
>       # If we are supporting Ctrl-C interrupts from GDB, we must squirrel
>       # away a pointer to the save interrupt state here so that we can
>       # plant a breakpoint at some later time.
>       
>       .extern hal_saved_interrupt_state
>       la      v0,hal_saved_interrupt_state
>       sw      s0,0(v0)
>       
> #endif

This is assuming that you are working with eCos source code from current
CVS.

I hope this helps...

John Dallaway
eCos maintainer
http://www.dallaway.org.uk/john

-- 
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss

Reply via email to