From mboxrd@z Thu Jan 1 00:00:00 1970 Message-ID: <4D725DB2.5030202@domain.hid> Date: Sat, 05 Mar 2011 16:58:42 +0100 From: Gilles Chanteperdrix MIME-Version: 1.0 References: <4D722CC9.9060307@domain.hid> In-Reply-To: <4D722CC9.9060307@domain.hid> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Subject: Re: [Xenomai-help] Illegal instruction running trivial-periodic on ARM with 2.5.5.2/2.6.33 List-Id: Help regarding installation and common use of Xenomai List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Eric Cohen Cc: xenomai@xenomai.org Gilles Chanteperdrix wrote: > Eric Cohen wrote: >> Hello, I am attempting to evaluate Xenomai and am running into an >> illegal instruction when I try to run trivial-periodic. I am running >> Xenomai 2.5.5.2 with kernel 2.6.33.5-x3 on a Beagleboard. Kernel and >> Xenomai were cross compiled with CodeSourcery 4.4.1. Upon boot I can >> see /proc/xenomai/*. Attempting to run trivial-periodic results in >> the following output: >> >> Xenomai or CONFIG_XENO_OPT_PERVASIVE disabled. >> (modprobe xeno_nucleus?) >> >> Note that CONFIG_XENO_OPT_PERVASIVE is in fact enabled, and nucleus is >> built into the kernel. Running in GDB, trivial-periodic receives >> SIGILL (illegal instruction) and exits. I get the following >> backtrace: >> >> #0 0x40022498 in xeno_bind_skin_opt () from /usr/xenomai/lib/libxenomai.so.0 >> #1 0x00000000 in ?? () >> >> And the disassembly around the PC is: >> >> 0x4002247c <+124>: movw r0, #555 ; 0x22b >> 0x40022480 <+128>: mov r6, r5 >> 0x40022484 <+132>: mov r1, r8 >> 0x40022488 <+136>: mov r2, #1610612743 ; 0x60000007 >> 0x4002248c <+140>: mov r3, #3 >> 0x40022490 <+144>: mov r4, r7 >> 0x40022494 <+148>: svc 0x009f0042 >> => 0x40022498 <+152>: ldr r12, [sp, #2140] ; 0x85c >> 0x4002249c <+156>: cmp r12, #0 >> 0x400224a0 <+160>: beq 0x4002246c >> 0x400224a4 <+164>: mov r2, r0 >> 0x400224a8 <+168>: mvn r1, #84 ; 0x54 >> 0x400224ac <+172>: mov r0, r11 >> 0x400224b0 <+176>: bl 0x400220d8 >> 0x400224b4 <+180>: cmn r0, #85 ; 0x55 >> >> The other example programs result in a SIGILL in exactly the same place. >> >> Does anyone have any ideas or suggestions? > > I would say you have incompatible ABI settings for kernel-space and > user-space. Here we definitely see an OABI syscall. So, your kernel is probably configured for EABI. -- Gilles.