[ECOS] some problems with thread.hxx

Bart Veer bartv@ecoscentric.com
Tue Nov 5 03:10:00 GMT 2002


>>>>> "Jifl" == Jonathan Larmour <jifl@eCosCentric.com> writes:

    Jifl> li hui wrote:
    >> now I try to add some member variables in class Cyg_Thread. I add 
    >> following variables in the class and the eCos works smoothly.
    >> private:
    >> cyg_uint32        iPeriod;        //Task period (10ms)
    >> cyg_uint16        iQos;        //Qos value (1,2,3)
    >> cyg_uint16        iMissNum;        //count task miss period
    >> bool            isPeriodEnd;    // falg is true if task is over when 
    >> period is end
    >> 
    >> but if I add anther several member variables, the eCos cna not
    >> startup to jump into main function, or it jump into main
    >> function and show me the segement fault warning in executing
    >> the first sentence.It seems that I can only add three varibles
    >> in class cyg_thread.

    Jifl> That shouldn't happen. Perhaps some object has not been
    Jifl> recompiled that should have been. Try a completely clean
    Jifl> build after making these changes.

I suspect the problem is with kapidata.h. If the C++ class is extended
then the equivalent C data structure needs to be extended in the same
way, or the C++ kernel implementation will attempt to use more space
than is provided by the application in a cyg_thread data structure.

Incidentally, at a guess member variables like iPeriod and iQos belong
in a Cyg_SchedThread base class appropriate to the type of scheduler
you are working on. They are not generic fields applicable to all
threads. 

Bart

-- 
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 mailing list