[ECOS] Assert due to stack problem
Tue Nov 19 01:11:00 GMT 2002
I got some strange errors when running my system. Since i am debugging then i have the assert enabled and as i understand then everytime CYG_ASSERT checks a thread then it calls the function "Cyg_Thread::check_this". This function returns false and therefor my system hang. After digging out the real error then it seems like i have some stack problem - which i am a bit sceptical about.
The output from assert is the following:
[check_this]System stack pointer BELOW STACKBASE (ptr:95134 < base:1720f0)
The code for printing this are:
Cyg_Thread::check_this( cyg_assert_class_zeal zeal) const
if( stack_ptr < stack_base )
diag_printf("\n[%s]System stack pointer BELOW STACKBASE (ptr:%x < base:%x)", __FUNCTION__,stack_ptr , stack_base);
As you can see, the "check" function makes sure that the stack pointer is within legal values. The legal values are defined as the upper and lower walls for the entire stack. However, when i look for what is located and the memory address where my stack pointer is poniting then i found the follwoing:
.bss 0x00093500 0x2020 C:\Amersham\cu901\ecos_configuration\CU_ecos_rel29dalids_install\lib/vectors.o
I think that maybe the assert check that is performed above is not valid and should be removed. Am i missing something here? Why isn't the interrupt stack placed within the region of the rest of the stack?
Before posting, please read the FAQ: http://sources.redhat.com/fom/ecos
and search the list archive: http://sources.redhat.com/ml/ecos-discuss
More information about the Ecos-discuss