Page 2 of 2

Re: It's... alive!

Posted: Thu Sep 19, 2013 9:53 am
by mobyfab
After a quick test is seems LTO does not work with NIL. The app just hangs at start.

I will try to debug it when I have some time.

Re: It's... alive!

Posted: Thu Sep 19, 2013 5:35 pm
by Giovanni
Hi,

This is strange, LTO is the default now and it works here. Are you using the makefiles taken from the new repository? there are differences with the old makefiles.

Giovanni

Re: It's... alive!

Posted: Thu Sep 19, 2013 7:41 pm
by pito
I've been trying to compile the Cb3.0 nil example NIL-STM32F303-DISCOVERY while getting this (ChibiStudio, not the latest):

Code: Select all

mkdir -p build/obj
mkdir -p build/lst
Compiling nilcoreasm_v7m.s
Compiling crt0.c
cc1.exe: error: LTO support has not been enabled in this configuration

Where I have to enable it?

Re: It's... alive!

Posted: Thu Sep 19, 2013 8:11 pm
by Giovanni
Hi,

Try downloading the latest ChibiStudio, apparently the older compiler does not support it. Alternatively disable LTO in the makefile.

Giovanni

Re: It's... alive!

Posted: Thu Sep 19, 2013 8:25 pm
by mobyfab
Yes i'm using the latest makefiles

Re: It's... alive!

Posted: Thu Sep 19, 2013 8:51 pm
by pito
ok, I've downloaded the CBS5 and it compiles now..
PS: would it be possible to create a CBS package without the "chibios" folder? When doing svn from trunk into CBS..
PS1: is there a STM32VLDisco demo for Nil somewhere, plz? The only board missing is mine :cry:

Re: It's... alive!

Posted: Thu Sep 19, 2013 9:13 pm
by Giovanni
Not yet, it is work in progress.

Giovanni

Re: It's... alive!

Posted: Wed Dec 11, 2013 1:50 am
by DeusExMachina
Giovanni wrote:Hi,
...

Main differences:
1) In Nil threads cannot be created and cannot terminate, totally static. RT can start-terminate threads.
2) In Nil priorities are fixed, threads cannot change priority, this makes it impossible to implement proper mutexes with priority inheritance support.
3) Internal algorithms are less computationally efficient, Nil is basically even faster than RT (something I didn't expected to see being RT already about the fastest thing on earth right there with Road Runner) but RT scales better, so Nil is only faster when few threads are involved.


I have some questions :)
2) - Threads have priorities? But where I can set thread priority? I don't find priority field in thread_t structure.
3) - What type of task scheduler NIL uses?

Re: It's... alive!

Posted: Wed Dec 11, 2013 9:50 am
by Giovanni
2) The order of threads in the table is the priority.
3) The most lame scheduler ever written but it does the job of executing threads by priority preemptively.

Giovanni