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


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