Hi Philippe, Thank your for your answer. I have read the manual page entitled "Application setup and init", and in particular the part about manual vs automatic bootstrap, and I have tried to follow the instructions to the letter.
Cross GCC Compiler command is : > arm-linux-gnueabihf-gcc -D_GNU_SOURCE -D_REENTRANT -D__COBALT__ > -ID:\Gcc\Raspberry-4.9.2-Rpi2Test\arm-linux-gnueabihf\sysroot\usr\xenomai\include\cobalt > -ID:\Gcc\Raspberry-4.9.2-Rpi2Test\arm-linux-gnueabihf\sysroot\usr\xenomai\include > -ID:\Gcc\Raspberry-4.9.2-Rpi2Test\arm-linux-gnueabihf\sysroot\usr\xenomai\include\vxworks > -O0 -g3 -Wall -c -fmessage-length=0 -mcpu=cortex-a7 -mfpu=neon-vfpv4 > -mfloat-abi=hard -MMD -MP -MF"main.d" -MT"main.d" -o "main.o" "../main.c" Cross GCC Linker command is : > arm-linux-gnueabihf-gcc -L../libs > D:\Gcc\Raspberry-4.9.2-Rpi2Test\arm-linux-gnueabihf\sysroot\usr\xenomai\lib\xenomai\bootstrap.o > -Wl,--wrap=main > -Wl,--dynamic-list=D:\Gcc\Raspberry-4.9.2-Rpi2Test\arm-linux-gnueabihf\sysroot\usr\xenomai\lib\dynlist.ld > -o "rpi-test-bug-watchdog" ./main.o -lvxworks -lcopperplate -lcobalt > -lpthread -lrt And if I try to add an explicit call to xenomai_init at the very beginning of my main, here is what happens : > 0"001.000| WARNING: [main] duplicate call to xenomai_init() ignored > 0"001.618| WARNING: [main] (xeno-config --no-auto-init disables > implicit call) What could I be missing ? Cheers, Nicolas 2016-01-14 18:24 GMT+01:00 Philippe Gerum <[email protected]>: > On 01/14/2016 10:22 AM, Nicolas SCHURANDO wrote: > > Hello everyone, > > > > In an attempt to migrate from Xenomai 2.6.4 on a Raspberry Pi 1 to > Xenomai > > 3.0.1 on a Raspberry Pi 2, I get an error when trying to spawn a VxWorks > > task in a fairly simple test program. Here is the output : > > > > 0"000.064| WARNING: [main] Xenomai compiled with full debug enabled, > >> very high latencies expected > >> [--enable-debug=full] > >> [i] [main] Hello, launching root task ... > >> 200"747.521| BUG in wind_task_normalize_priority(): > > > > > > The corresponding code is : > > > > int main(int argc, char *argv[]) { > > > > > >> /* Hello world */ > >> printf(" [i] [%s] Hello, launching root task ...\r\n", __FUNCTION__); > > > > > >> /* Spawn root task */ > >> taskSpawn("root_task", 100, 0, 16 * 1024, (FUNCPTR) &root_task, 0, 0, 0, > >> 0, 0, 0, 0, 0, 0, 0); > > > > > >> [...] > > > > > >> } > > > > > > I've tracked down the problem to threadobj_high_prio being equal to 0, > > hence the following function expecting priorities from -1 to 0. I however > > have no idea where threadobj_high_prio gets its value from. > > > > Your application is not initializing properly, the Xenomai libs are not > bootstrapped. There are detailed explanations about the init flow here: > http://xenomai.org/2015/05/application-setup-and-init/ > > -- > Philippe. > _______________________________________________ Xenomai mailing list [email protected] http://xenomai.org/mailman/listinfo/xenomai
