[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