[ECOS] priority of main thread

Jonathan Larmour jifl@eCosCentric.com
Mon Nov 24 12:57:00 GMT 2008


Robert Brusa wrote:
> On Mon, 24 Nov 2008 09:02:54 +0100, Robert Brusa <Bob.Brusa@gmail.com>  
> wrote:
> 
>> On Fri, 21 Nov 2008 15:57:31 +0100, Jonathan Larmour  
>> <jifl@ecoscentric.com> wrote:
>>
>>> Gary Thomas wrote:
>>
>> ...cut....
>>
>>>
>>> Actually it only gets started from cyg_user_start() if the user enables
>>> CYGSEM_LIBC_STARTUP_MAIN_INITCONTEXT. But that is only the default 
>>> if  there
>>> is no eCos kernel at all.
>>>
>>> Otherwise (in the more normal case), it is created and started from a
>>> static constructor. So overriding cyg_user_start() makes no difference.
>>>
>>> To answer the poster's question, the priority is set with the
>>> CYGNUM_LIBC_MAIN_THREAD_PRIORITY configuration option in the
>>> CYGPKG_LIBC_STARTUP ("ISO environment startup/termination") package.
>>>
>>> Jifl
>>
>> Thank you all for your help. "no eCOS kernel at all" That was the 
>> point.  Somehow, the configuration I was working with was broken. This 
>> went  unnoticed, because I run config with the -i option, because my 
>> system  uses a 25 MHz crystal and this was considered illegal 
>> sometimes earlier  (but now is perfectly ok according to the data 
>> sheet). Anyway, I got  tired looking at the ever same error message 
>> about this quarz - and  stopped looking at the output. And voilà - it 
>> caught me!
>> Again - thanks for all your help.
>>     Robert
>>
> The problem is not so simple: I went back and created ecos.ecc from the  
> original CVS (ecos-2.x downloaded in June 08). The config commands used  
> are then:
> ecosconfig new at91sam7xek default
> ecosconfig add CYGPKG_IO_FLASH
> ecosconfig add CYGPKG_IO_SPI
> ecosconfig -i tree
> ecosconfig --verbose check
> make
> 
> When inspecting my ecos.ecc I find the "configuration broken"-message. 
> I  change from the default ML-scheduler to the bitmap schedule. The  
> broken-message persists:
> 
> cdl_option CYGSEM_KERNEL_SCHED_BITMAP {
>     # Flavor: bool
>     user_value 1
>     # value_source user
>     # Default value: 0
>     # Requires: !CYGPKG_KERNEL_SMP_SUPPORT
>     #     CYGPKG_KERNEL_SMP_SUPPORT == 0
>     #   --> 1
> 
>     # The following properties are affected by this value
>     # option CYGPRI_KERNEL_SCHED_IMPL_HXX
>     #     Calculated:   CYGSEM_KERNEL_SCHED_BITMAP  ?  
> "<cyg/kernel/bitmap.hxx>"  : CYGSEM_KERNEL_SCHED_MLQUEUE ?  
> "<cyg/kernel/mlqueue.hxx>" : CYGSEM_KERNEL_SCHED_LOTTERY ?  
> "<cyg/kernel/lottery.hxx>" : "!!!-- Configuration broken - no scheduler  
> selected --!!!"
>     # component CYGSEM_KERNEL_SCHED_TIMESLICE
>     #     Requires: !CYGSEM_KERNEL_SCHED_BITMAP
> };
> 
> I do not understand this message. Could someone please explain me its  
> meaning - and what to do about it. Thank you.

There's no problem here that I can see. That message is not being reported 
to you as such, that line is purely informative. Instead it is saying that 
the CYGPRI_KERNEL_SCHED_IMPL_HXX option is affected by the option 
CYGSEM_KERNEL_SCHED_BITMAP. And the reason it is affected is because the 
value of the CYGPRI_KERNEL_SCHED_IMPL_HXX is calculated as having the value:

CYGSEM_KERNEL_SCHED_BITMAP  ?  "<cyg/kernel/bitmap.hxx>"  : 
CYGSEM_KERNEL_SCHED_MLQUEUE ?  "<cyg/kernel/mlqueue.hxx>" : 
CYGSEM_KERNEL_SCHED_LOTTERY ?  "<cyg/kernel/lottery.hxx>" : "!!!-- 
Configuration broken - no scheduler  selected --!!!"

That is one long expression. Since you have enabled 
CYGSEM_KERNEL_SCHED_BITMAP the other cases of that expression don't have 
any effect.

Jifl
-- 
eCosCentric Limited      http://www.eCosCentric.com/     The eCos experts
Barnwell House, Barnwell Drive, Cambridge, UK.       Tel: +44 1223 245571
Registered in England and Wales: Reg No 4422071.
------["The best things in life aren't things."]------      Opinions==mine

-- 
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss



More information about the Ecos-discuss mailing list