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.
It's... alive!
- Giovanni
- Site Admin
- Posts: 14457
- Joined: Wed May 27, 2009 8:48 am
- Location: Salerno, Italy
- Has thanked: 1076 times
- Been thanked: 922 times
- Contact:
Re: It's... alive!
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
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!
I've been trying to compile the Cb3.0 nil example NIL-STM32F303-DISCOVERY while getting this (ChibiStudio, not the latest):
Where I have to enable it?
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?
- Giovanni
- Site Admin
- Posts: 14457
- Joined: Wed May 27, 2009 8:48 am
- Location: Salerno, Italy
- Has thanked: 1076 times
- Been thanked: 922 times
- Contact:
Re: It's... alive!
Hi,
Try downloading the latest ChibiStudio, apparently the older compiler does not support it. Alternatively disable LTO in the makefile.
Giovanni
Try downloading the latest ChibiStudio, apparently the older compiler does not support it. Alternatively disable LTO in the makefile.
Giovanni
Re: It's... alive!
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
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
- Giovanni
- Site Admin
- Posts: 14457
- Joined: Wed May 27, 2009 8:48 am
- Location: Salerno, Italy
- Has thanked: 1076 times
- Been thanked: 922 times
- Contact:
- DeusExMachina
- Posts: 223
- Joined: Tue Apr 03, 2012 5:08 am
- Location: South Korea
- Has thanked: 3 times
- Been thanked: 3 times
Re: It's... alive!
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?
- Giovanni
- Site Admin
- Posts: 14457
- Joined: Wed May 27, 2009 8:48 am
- Location: Salerno, Italy
- Has thanked: 1076 times
- Been thanked: 922 times
- Contact:
Re: It's... alive!
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
3) The most lame scheduler ever written but it does the job of executing threads by priority preemptively.
Giovanni
Who is online
Users browsing this forum: No registered users and 28 guests