This is the mail archive of the
ecos-discuss@sourceware.org
mailing list for the eCos project.
Re: how to implement EDF scheduling in eCos
Hi Nodir
Nodir Kodirov wrote:
>> TRACE: cstartup.cxx [91] void cyg_iso_c_start() 'Resuming cyg_libc_main_thread'
>> TRACE: kapi.cxx [1238] void Cyg_Check_Structure_Sizes::Cyg_Check_Structure_Sizes() 'Size of C struct cyg_thread != size of C++ struct Cyg_Thread'
>> ASSERT FAIL: <1> kapi.cxx [1250] Cyg_Check_Structure_Sizes::Cyg_Check_Structure_Sizes() Size check failed
>> ASSERT FAIL: kapi.cxx [1250] Cyg_Check_Structure_Sizes::Cyg_Check_Structure_Sizes() Size check failed
First, focus on eliminating the structure size mismatch. Whatever member
variables are added to the C++ classes must be mirrored by definitions
in kapidata.h or nothing else will make any sense. Add your changes for
EDF one at a time and ensure the structure sizes match with each change.
Second, are you sure you need to take the address of sched_info in the
following line:
>> edf_info = (cyg_edf_info_t *) &sched_info;
>> priority = (cyg_priority) edf_info->deadline;
sched_info should already be a pointer to a struct cyg_edf_info_t.
I hope this helps...
John Dallaway
eCos maintainer
--
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss