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]

dsr_list not initialized as NULL


Hi All,

I'm working with ecos on an soft-core processor on Xilinx FPGA ml401 board. And I found that the Cyg_Interrupt::dsr_list[CYGNUM_KERNEL_CPU_MAX] (it is an single processor system) in my system is not initialized as NULL. Thus it cause the dsr_pending() check to always be true and also cause the system point to invalid pointer.

Since the dsr_list is defined as volatile, just wondering if the HAL level has some funtion to alter it and cause the trouble? Or it is simply the memory on FPGA not initialized with all zero?

I found the same .exe file works fine on the simulation processor on my host computer.

inline cyg_bool Cyg_Interrupt::DSRs_pending()
{
   HAL_SMP_CPU_TYPE cpu = CYG_KERNEL_CPU_THIS();
#ifdef CYGIMP_KERNEL_INTERRUPTS_DSRS_TABLE

return dsr_table_head[cpu] != dsr_table_tail[cpu];

#endif
#ifdef CYGIMP_KERNEL_INTERRUPTS_DSRS_LIST

return dsr_list[cpu] != NULL;

#endif
};

Thanks and regards,
Yi Tang




--
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]