This is the mail archive of the ecos-discuss@sourceware.org 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]
Other format: [Raw text]

Re: eCos application error- ASSERT FAIL : invalid priority


Rohit Pandita wrote:
Andrew Lunn wrote:
On Fri, Aug 04, 2006 at 01:51:57AM -0500, Rohit Pandita wrote:
Hi all,
Have a couple of questions,

1. While trying to execute/debug an eCos application in RAM I get ASSERT FAIL: var_intr.h[2343]: void cyg_hal_interrupt_set_level() : Invalid priority.
Has it got anything to do with with eCos Kernel scheduler config? Any solutions.

What priority are you passing? What priorities are valid?
/The application is single threaded, I haven't assigned any priorities. Does the kernel assign default priorities to some processes on its own?/
2. My application requires I/O through both serial ports on the target (Phy555). Is this permissible, given that RedBoot uses the serial ports for CLI and debug/diagnostic purposes? If not, what changes would be necessary.
You could use Ethernet for Redboot/gdb so leaving the second ethernet
port free. Otherwise just don't use diag_printf and gdb and redboot
will keep quiet when your application is running.
/The target doesn't support Ethernet, how to disable RedBoot console/ diag_printf, through some configuration changes?/
Andrew
/Attached below is the summary of process progress until ASSERT FAIL, While backtracing I noticed that the trace shows random large values for variables 'vector' and 'level', respectively.
I appreciate your help.


Regards,
Rohit
/
(gdb) c
Continuing.

Breakpoint 1, hal_variant_IRQ_init () at /scratch/ecos/ecos-2.0/packages/hal/powerpc/mpc5xx/current/src/var_intr.c:353
353 HAL_INTERRUPT_MASK(CYGNUM_HAL_INTERRUPT_SIU_IRQ0);
Current language: auto; currently c
(gdb) s
354 HAL_INTERRUPT_MASK(CYGNUM_HAL_INTERRUPT_SIU_IRQ1);
(gdb)
355 HAL_INTERRUPT_MASK(CYGNUM_HAL_INTERRUPT_SIU_IRQ2);
(gdb)
356 HAL_INTERRUPT_MASK(CYGNUM_HAL_INTERRUPT_SIU_IRQ3);
(gdb)
357 HAL_INTERRUPT_MASK(CYGNUM_HAL_INTERRUPT_SIU_IRQ4);
(gdb)
358 HAL_INTERRUPT_MASK(CYGNUM_HAL_INTERRUPT_SIU_IRQ5);
(gdb)
359 HAL_INTERRUPT_MASK(CYGNUM_HAL_INTERRUPT_SIU_IRQ6);
(gdb)
360 HAL_INTERRUPT_MASK(CYGNUM_HAL_INTERRUPT_SIU_IRQ7);
(gdb)
361 HAL_INTERRUPT_MASK(CYGNUM_HAL_INTERRUPT_SIU_LVL0);
(gdb)
362 HAL_INTERRUPT_MASK(CYGNUM_HAL_INTERRUPT_SIU_LVL1);
(gdb)
363 HAL_INTERRUPT_MASK(CYGNUM_HAL_INTERRUPT_SIU_LVL2);
(gdb)
364 HAL_INTERRUPT_MASK(CYGNUM_HAL_INTERRUPT_SIU_LVL3);
(gdb)
365 HAL_INTERRUPT_MASK(CYGNUM_HAL_INTERRUPT_SIU_LVL4);
(gdb)
366 HAL_INTERRUPT_MASK(CYGNUM_HAL_INTERRUPT_SIU_LVL5);
(gdb)
367 HAL_INTERRUPT_MASK(CYGNUM_HAL_INTERRUPT_SIU_LVL6);
(gdb)
368 HAL_INTERRUPT_MASK(CYGNUM_HAL_INTERRUPT_SIU_LVL7);
(gdb)
384 sci_arbiter.priority = CYGNUM_HAL_ISR_SOURCE_PRIORITY_QSCI;
(gdb)
386 sci_arbiter.arbiter = hal_arbitration_isr_sci;
(gdb)
388 hal_mpc5xx_install_arbitration_isr(&sci_arbiter);
(gdb)
386 sci_arbiter.arbiter = hal_arbitration_isr_sci;
(gdb)
385 sci_arbiter.data = 0;
(gdb)
386 sci_arbiter.arbiter = hal_arbitration_isr_sci;
(gdb)
388 hal_mpc5xx_install_arbitration_isr(&sci_arbiter);
(gdb)
hal_mpc5xx_install_arbitration_isr (adata=0x7) at /scratch/ecos/ecos-2.0/packages/hal/powerpc/mpc5xx/current/src/var_intr.c:288
288 CYG_ADDRWORD vector = 2*(1 + adata->priority);
(gdb)
287 { // Find the SIU vector from the priority
(gdb)
288 CYG_ADDRWORD vector = 2*(1 + adata->priority);
(gdb)
290 if(vector < CYGNUM_HAL_INTERRUPT_SIU_LVL7)
(gdb) step
292 HAL_INTERRUPT_ATTACH(vector, adata->arbiter, adata->data, adata);
(gdb)
293 HAL_INTERRUPT_UNMASK(vector);
(gdb) s
cyg_hal_interrupt_unmask (vector=2) at /scratch/ecos/phy_ecos_install/include/cyg/hal/var_intr.h:983
983 switch (vector) {


(gdb) print vector
$1 = 2
(gdb) print level
No symbol "level" in current context.

(gdb) s
989 HAL_READ_UINT32 (CYGARC_REG_IMM_SIMASK, simask);
(gdb)
990 simask |= (((cyg_uint32) CYGARC_REG_IMM_SIMASK_IRM0)
(gdb)
992 HAL_WRITE_UINT32 (CYGARC_REG_IMM_SIMASK, simask);
(gdb)
1652 }
(gdb)
hal_variant_IRQ_init () at /scratch/ecos/ecos-2.0/packages/hal/powerpc/mpc5xx/current/src/var_intr.c:389
389 HAL_INTERRUPT_SET_LEVEL(CYGNUM_HAL_INTERRUPT_IMB3_SCI0_RX, CYGNUM_HAL_ISR_SOURCE_PRIORITY_QSCI);
(gdb)
cyg_hal_interrupt_set_level (vector=33, level=0) at /scratch/ecos/phy_ecos_install/include/cyg/hal/var_intr.h:2335
2335 if(vector < CYGNUM_HAL_INTERRUPT_IMB3_QUADCA_CI1)


*(gdb) print vector
$2 = 33
(gdb) print level
$3 = 0
*
(gdb) s
2343 CYG_ASSERT( level >= CYGARC_IMB3_PRIORITY_HIGH, "Invalid priority");
(gdb)
0x00814e68 2344 CYG_ASSERT( level <= CYGARC_IMB3_PRIORITY_LOW, "Invalid priority");


(gdb) s
cyg_assert_msg (psz_func=0x824a70 "cyg_hal_interrupt_set_level", psz_file=0x8245c0 "/scratch/ecos/phy_ecos_install/include/cyg/hal/var_intr.h",
linenum=2343, psz_msg=0x824a8c "Invalid priority") at /scratch/ecos/ecos-2.0/packages/infra/current/src/tcdiag.cxx:145
145 HAL_DISABLE_INTERRUPTS(old_ints);
Current language: auto; currently c++
(gdb) s
601 __call_VV1(CYGNUM_CALL_IF_SET_CONSOLE_COMM, __call_if_set_console_comm_t, int, int)
(gdb)
657 __call_VV2(CYGNUM_CALL_IF_FLASH_CFG_OP, __call_if_flash_cfg_op_fn_t, cyg_bool, int, struct cyg_fconfig *)
(gdb)
601 __call_VV1(CYGNUM_CALL_IF_SET_CONSOLE_COMM, __call_if_set_console_comm_t, int, int)
(gdb)
657 __call_VV2(CYGNUM_CALL_IF_FLASH_CFG_OP, __call_if_flash_cfg_op_fn_t, cyg_bool, int, struct cyg_fconfig *)
(gdb)
159 fc.key = "info_console_force";
(gdb)
657 __call_VV2(CYGNUM_CALL_IF_FLASH_CFG_OP, __call_if_flash_cfg_op_fn_t, cyg_bool, int, struct cyg_fconfig *)


/
the stack trace using backtrace was following *********
/(gdb) bt
#0 cyg_assert_msg (psz_func=0x824a70 "cyg_hal_interrupt_set_level", psz_file=0x8245c0 "/scratch/ecos/phy_ecos_install/include/cyg/hal/var_intr.h",
linenum=2343, psz_msg=0x824a8c "Invalid priority") at /scratch/ecos/ecos-2.0/packages/infra/current/src/tcdiag.cxx:161
#1 0x00814e88 in cyg_hal_interrupt_set_level (*vector=4294967293, level=8537536*) at /scratch/ecos/phy_ecos_install/include/cyg/hal/var_intr.h:2344
#2 0x008139e8 in hal_variant_IRQ_init () at /scratch/ecos/ecos-2.0/packages/hal/powerpc/mpc5xx/current/src/var_intr.c:389
#3 0x0081333c in hal_IRQ_init () at /scratch/ecos/ecos-2.0/packages/hal/powerpc/arch/current/src/hal_intr.c:66




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


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