Re: [uClinux-dev] Is uClinux with 2.6 kernel a realtime os?

2007-05-08 Thread Phil Wilshire

Rahul Kashyap wrote:

Dear All,
I have a small query. Is uClinux with 2.6 linux kernel a real time os? 
If yes,then  what are the various latencies(interrupt latency, context 
switch latency scheduling latency) with uclinux on any standard hardware?

Regards,
rk.


Short answer
  No it is not a Real Time OS ... close but no cigar
  If you want real time performance take a look at this package

  http://www.xenomai.org/index.php/Main_Page

  which is ported to a few uClinux architectures

  standard hardware hmmm apart from the reference designs this is 
difficult to define.


  The disclaimer below is a bit of a waste of space on a mailing list.
  Try to use an account (ie gmail) without one.


Phil Wilshire


---
Disclaimer:
This email and any files transmitted with it are intended solely for the 
use of the addressed individual or entity.  It contains information that 
is confidential and protected from disclosure. It must not be printed, 
read, copied, disclosed, forwarded, distributed or used (in whatsoever 
manner) by any person other than the addressee. Unauthorized use, 
disclosure or copying is strictly prohibited and may constitute unlawful 
act and can possibly attract legal action.


Please note that any views or opinions presented in this email are 
solely those of the author and do not necessarily represent those of the 
company. The recipient should check this email and any attachments for 
the presence of viruses. The company accepts no liability for any damage 
caused by any virus transmitted by this email.


If you have received this message in error, you should destroy this 
message and may please notify the sender by e-mail.  Thank you.

---

___
uClinux-dev mailing list
uClinux-dev@uclinux.org
http://mailman.uclinux.org/mailman/listinfo/uclinux-dev
This message was resent by uclinux-dev@uclinux.org
To unsubscribe see:
http://mailman.uclinux.org/mailman/options/uclinux-dev


___
uClinux-dev mailing list
uClinux-dev@uclinux.org
http://mailman.uclinux.org/mailman/listinfo/uclinux-dev
This message was resent by uclinux-dev@uclinux.org
To unsubscribe see:
http://mailman.uclinux.org/mailman/options/uclinux-dev


Re: [uClinux-dev] probably the compile line

2007-05-08 Thread Stéphane
Hi

ok no more SIGSEGV but with:

static long global_right_encoder;
static double VitR;
int init_module(void)
{
VitR = (double)global_right_encoder;
return 0;
}


insmod ucAsserv.o
Using ucAsserv.o
insmod: unresolved symbol __floatsidf

After the module was unloaded !

the compile line is now:
/opt/uClinux-m68k-elf/bin/m68k-elf-gcc -iwithprefix include
-DKBUILD_BASENAME=ucAsserv -fno-builtin -nostdinc  -O2
-fno-strict-aliasing -fno-common -fomit-frame-pointer -pipe  -D__ELF__
-DMAGIC_ROM_PTR -DNO_FORGET -DUTS_SYSNAME=uClinux -DNO_MM -DNO_FPU
-DNO_CACHE -DNO_CACHE -DMODULE -D__KERNEL__  -isystem
../uClinux-dist-20060803/linux-2.4.x/include  -m68000 -Dlinux
-D__linux__ -Dunix -D__uClinux__ -DEMBED   -c -o ucAsserv.o ucAsserv.c

the cpu is
MC68vz328


thanks

stephane Germain

Greg Ungerer a écrit :
 Hi Stephane,

 Stéphane wrote:
 In Makefile:

 //

 INCLUDE := -isystem ../uClinux-dist-20060803/linux-2.4.x/include
 CFLAGS  := -DMODULE -D__KERNEL__ ${WARN} ${INCLUDE}
 CC  := /opt/uClinux-m68k-elf/bin/m68k-elf-gcc
${TARGET}.o: ${TARGET}.c

 What CPU are you running on?
 What is the actual compile line?

 From the ensuing discussion I would guess that you are not
 compiling with the appropriate CPU class passed to gcc.

 If you are using a ColdFire you should at least have an
 -m5200 (or equivalent) gcc option. If a base 68k (like
 68328 or similar) then -m68000. Otherwise you won't get
 instructions generated appropriate to your CPU.

 Regards
 Greg



 //

 and with -S  :

 /*/

 .file   ucAsserv.c
 gcc2_compiled.:
 .section.modinfo,a,@progbits
 .type__module_kernel_version,@object
 .size__module_kernel_version,33
 __module_kernel_version:
 .string kernel_version=2.4.31-uc0-ANI-10
 .section.rodata
 .LC0:
 .string 6Bug:\n
 .LC1:
 .string 6Never Reach\n
 .text
 .align  2
 .globl init_module
 .typeinit_module,@function
 init_module:
 link.w %a6,#0
 clr.l VitL
 clr.l global_left_encoder
 clr.l global_right_encoder
 pea .LC0
 jsr printk
 addq.l #4,%sp
 move.l global_left_encoder,%d0
 muls.l global_right_encoder,%d0
 move.l %d0,VitL
 pea .LC1
 jsr printk
 addq.l #4,%sp
 clr.l %d0
 jbra .L95
 .align  2
 .L95:
 unlk %a6
 rts
 .Lfe1:
 .sizeinit_module,.Lfe1-init_module
 .align  2
 .globl cleanup_module
 .typecleanup_module,@function
 cleanup_module:
 link.w %a6,#0
 .L96:
 unlk %a6
 rts
 .Lfe2:
 .sizecleanup_module,.Lfe2-cleanup_module
 .globl __module_author
 .section.modinfo
 .type__module_author,@object
 .size__module_author,24
 __module_author:
 .string author=Stephane Germain
 .type__module_license,@object
 .size__module_license,12
 __module_license:
 .string license=GPL
 .local  global_right_encoder
 .comm   global_right_encoder,4,2
 .local  global_left_encoder
 .comm   global_left_encoder,4,2
 .local  VitL
 .comm   VitL,4,2
 .ident  GCC: (GNU) 2.95.3 20010315 (release)(ColdFire patches -
 20010318 from
 http://fiddes.net/coldfire/)(uClinux XIP and shared lib patches from
 http://www.snapgear.com/)

 /***/


 I use the default toolchain

 /opt/uClinux-m68k-elf/bin/m68k-elf-gcc -v :
 Reading specs from
 /opt/uClinux-m68k-elf/lib/gcc-lib/m68k-elf/2.95.3/specs
 gcc version 2.95.3 20010315 (release)(ColdFire patches - 20010318 from
 http://fiddes.net/coldfire/)(uClinux XIP
 and shared lib patches from http://www.snapgear.com/)

 thanks


 Wolfgang Reissnegger a écrit :
 Hi Stéphane,

 looks like you are compiling your code with compiler flags that
 generate instructions that the processor does not support. That's why
 you see the illegal instruction trap.

 The reason that it all works if the variables are local is probably
 that you also use an optimization flag (e.g. -O3) that causes the
 compiler to optimize the whole multiplication away in main because it
 has no effect on the function's result and is local to the function.

 You should try to compile the code with gcc -S to generate assembler
 output. Then you can identify the instruction that causes the problem.

 Cheers,
Wolfgang

 Stéphane wrote:
 Hi,

 I have a bug that I can be resume as:

 /***/
 #include linux/module.h// Needed by all modules
 #include linux/kernel.h// Needed for KERN_INFO

 static long global_right_encoder;
 static long global_left_encoder;
 static long VitL;

 int init_module(void)
 {
 VitL = 0;
 global_left_encoder = 0;
 global_right_encoder = 0;

 printk(KERN_INFO Bug:\n);
VitL = 

[uClinux-dev] enumerating busybox completely and automatically (was Re: Busybox who Applet)

2007-05-08 Thread Mike Frysinger
On Monday 07 May 2007, Greg Ungerer wrote:
 Doug Kehn wrote:
  Attached is a patch, for review, which allows the
  Busybox who applet to be selected from the menu
  system.

 Looks good, applied.

rather than maintain this duplicated effort for Blackfin's uClinux-dist, i 
just put together an awk script which translates the busybox Kconfig into 
uClinux-dist's cheesy config (which ironically gets translated back into 
Kconfig)

this requires extending the .help configure syntax with a source keyword 
(posted the patch the list some time ago) ...

http://blackfin.uclinux.org/gf/project/uclinux-dist/scmsvn/?action=browsepath=/trunk/user/busybox/uclinux-configs/
-mike


signature.asc
Description: This is a digitally signed message part.
___
uClinux-dev mailing list
uClinux-dev@uclinux.org
http://mailman.uclinux.org/mailman/listinfo/uclinux-dev
This message was resent by uclinux-dev@uclinux.org
To unsubscribe see:
http://mailman.uclinux.org/mailman/options/uclinux-dev

Re: [uClinux-dev] enumerating busybox completely and automatically (wasRe: Busybox who Applet)

2007-05-08 Thread Greg Ungerer

Hi Gavin,

Gavin Lambert wrote:

Quoth Mike Frysinger [EMAIL PROTECTED]:

rather than maintain this duplicated effort for Blackfin's
uClinux-dist, i just put together an awk script which translates the
busybox Kconfig into uClinux-dist's cheesy config (which ironically
gets translated back into Kconfig)


Speaking of which, wouldn't it be nice to change the 2.4 style uClinux
config to a 2.6/Kconfig style config?


It would be very nice.

Any volunteers?

Regards
Greg




Greg Ungerer  --  Chief Software Dude   EMAIL: [EMAIL PROTECTED]
Secure Computing CorporationPHONE:   +61 7 3435 2888
825 Stanley St, FAX: +61 7 3891 3630
Woolloongabba, QLD, 4102, Australia WEB: http://www.SnapGear.com
___
uClinux-dev mailing list
uClinux-dev@uclinux.org
http://mailman.uclinux.org/mailman/listinfo/uclinux-dev
This message was resent by uclinux-dev@uclinux.org
To unsubscribe see:
http://mailman.uclinux.org/mailman/options/uclinux-dev


Re: [uClinux-dev] probably the compile line

2007-05-08 Thread Greg Ungerer

Hi Stephane,

Stéphane wrote:

ok no more SIGSEGV but with:

static long global_right_encoder;
static double VitR;
int init_module(void)
{
VitR = (double)global_right_encoder;
return 0;
}


insmod ucAsserv.o
Using ucAsserv.o
insmod: unresolved symbol __floatsidf


Don't use floating point math in the kernel.

Regards
greg




After the module was unloaded !

the compile line is now:
/opt/uClinux-m68k-elf/bin/m68k-elf-gcc -iwithprefix include
-DKBUILD_BASENAME=ucAsserv -fno-builtin -nostdinc  -O2
-fno-strict-aliasing -fno-common -fomit-frame-pointer -pipe  -D__ELF__
-DMAGIC_ROM_PTR -DNO_FORGET -DUTS_SYSNAME=uClinux -DNO_MM -DNO_FPU
-DNO_CACHE -DNO_CACHE -DMODULE -D__KERNEL__  -isystem
../uClinux-dist-20060803/linux-2.4.x/include  -m68000 -Dlinux
-D__linux__ -Dunix -D__uClinux__ -DEMBED   -c -o ucAsserv.o ucAsserv.c

the cpu is
MC68vz328


thanks

stephane Germain

Greg Ungerer a écrit :

Hi Stephane,

Stéphane wrote:

In Makefile:

//

INCLUDE := -isystem ../uClinux-dist-20060803/linux-2.4.x/include
CFLAGS  := -DMODULE -D__KERNEL__ ${WARN} ${INCLUDE}
CC  := /opt/uClinux-m68k-elf/bin/m68k-elf-gcc
   ${TARGET}.o: ${TARGET}.c

What CPU are you running on?
What is the actual compile line?

From the ensuing discussion I would guess that you are not
compiling with the appropriate CPU class passed to gcc.

If you are using a ColdFire you should at least have an
-m5200 (or equivalent) gcc option. If a base 68k (like
68328 or similar) then -m68000. Otherwise you won't get
instructions generated appropriate to your CPU.

Regards
Greg




//

and with -S  :

/*/

.file   ucAsserv.c
gcc2_compiled.:
.section.modinfo,a,@progbits
.type__module_kernel_version,@object
.size__module_kernel_version,33
__module_kernel_version:
.string kernel_version=2.4.31-uc0-ANI-10
.section.rodata
.LC0:
.string 6Bug:\n
.LC1:
.string 6Never Reach\n
.text
.align  2
.globl init_module
.typeinit_module,@function
init_module:
link.w %a6,#0
clr.l VitL
clr.l global_left_encoder
clr.l global_right_encoder
pea .LC0
jsr printk
addq.l #4,%sp
move.l global_left_encoder,%d0
muls.l global_right_encoder,%d0
move.l %d0,VitL
pea .LC1
jsr printk
addq.l #4,%sp
clr.l %d0
jbra .L95
.align  2
.L95:
unlk %a6
rts
.Lfe1:
.sizeinit_module,.Lfe1-init_module
.align  2
.globl cleanup_module
.typecleanup_module,@function
cleanup_module:
link.w %a6,#0
.L96:
unlk %a6
rts
.Lfe2:
.sizecleanup_module,.Lfe2-cleanup_module
.globl __module_author
.section.modinfo
.type__module_author,@object
.size__module_author,24
__module_author:
.string author=Stephane Germain
.type__module_license,@object
.size__module_license,12
__module_license:
.string license=GPL
.local  global_right_encoder
.comm   global_right_encoder,4,2
.local  global_left_encoder
.comm   global_left_encoder,4,2
.local  VitL
.comm   VitL,4,2
.ident  GCC: (GNU) 2.95.3 20010315 (release)(ColdFire patches -
20010318 from
http://fiddes.net/coldfire/)(uClinux XIP and shared lib patches from
http://www.snapgear.com/)

/***/


I use the default toolchain

/opt/uClinux-m68k-elf/bin/m68k-elf-gcc -v :
Reading specs from
/opt/uClinux-m68k-elf/lib/gcc-lib/m68k-elf/2.95.3/specs
gcc version 2.95.3 20010315 (release)(ColdFire patches - 20010318 from
http://fiddes.net/coldfire/)(uClinux XIP
and shared lib patches from http://www.snapgear.com/)

thanks


Wolfgang Reissnegger a écrit :

Hi Stéphane,

looks like you are compiling your code with compiler flags that
generate instructions that the processor does not support. That's why
you see the illegal instruction trap.

The reason that it all works if the variables are local is probably
that you also use an optimization flag (e.g. -O3) that causes the
compiler to optimize the whole multiplication away in main because it
has no effect on the function's result and is local to the function.

You should try to compile the code with gcc -S to generate assembler
output. Then you can identify the instruction that causes the problem.

Cheers,
   Wolfgang

Stéphane wrote:

Hi,

I have a bug that I can be resume as:

/***/
#include linux/module.h// Needed by all modules
#include linux/kernel.h// Needed for KERN_INFO

static long global_right_encoder;
static long global_left_encoder;
static long VitL;

int init_module(void)
{
VitL = 0;
global_left_encoder = 0;
global_right_encoder = 0;

printk(KERN_INFO Bug:\n);
   VitL = global_left_encoder*global_right_encoder;
   

Re: [uClinux-dev] Bad Frame Format

2007-05-08 Thread Greg Ungerer

Hi Praveen,

Praveen Chandrasekharaiah wrote:
While executing an application on a custom M5272C3 board with 16 Meg 
SDRAM, i get a Bad Frame Format error as soon as i execute the 
application. The RAMFS is configured to 1024K. The application size is 
793780 bytes. I transfer the application onto the board using tftp.


However when i try to execute another application of size 594388 bytes 
this error is not shown. Both the applications were compiled using the 
same toolchain and exact same options.


Enclosed is the uClinux log and the obj header dump of uClinux.

Why do i get this bad frame format error.


What is the stack usage of the program that crashes?

A common cause of application crashes is over runing the stack.
The default is 4k, so it is not large. Make it larger and see
if you still crash.

Regards
Greg







uClinux/COLDFIRE(m5272)
COLDFIRE port done by Greg Ungerer, [EMAIL PROTECTED]
Flat model support (C) 1998,1999 Kenneth Albanowski, D. Jeff Dionne
Built 1 zonelists
Kernel command line: 
PID hash table entries: 128 (order: 7, 512 bytes)

Dentry cache hash table entries: 2048 (order: 1, 8192 bytes)
Inode-cache hash table entries: 1024 (order: 0, 4096 bytes)
Memory available: 13796k/16384k RAM, (894k kernel code, 143k data)
Mount-cache hash table entries: 512
NET: Registered protocol family 16
NET: Registered protocol family 2
IP route cache hash table entries: 1024 (order: 0, 4096 bytes)
TCP established hash table entries: 1024 (order: 0, 4096 bytes)
TCP bind hash table entries: 1024 (order: 0, 4096 bytes)
TCP: Hash tables configured (established 1024 bind 1024)
TCP reno registered
io scheduler noop registered
io scheduler cfq registered (default)
ColdFire internal UART serial driver version 1.00
ttyS0 at 0x1100 (irq = 73) is a builtin ColdFire UART
ttyS1 at 0x1140 (irq = 74) is a builtin ColdFire UART
RAMDISK driver initialized: 16 RAM disks of 4096K size 1024 blocksize
FEC ENET Version 0.2
fec: PHY @ 0x0, ID 0x0022561b -- AM79C874
eth0: ethernet 00:00:00:00:00:00
PPP generic driver version 2.4.2
uclinux[mtd]: RAM probe address=0x143648 size=0x11d000
Creating 1 MTD partitions on RAM:
0x-0x0011d000 : ROMfs
uclinux[mtd]: set ROMfs to be root filesystem
TCP bic registered
NET: Registered protocol family 1
NET: Registered protocol family 17
VFS: Mounted root (romfs filesystem) readonly.
Freeing unused kernel memory: 48k freed (0x129000 - 0x134000)
Shell invoked to run file: /etc/rc
Command: hostname uClinux
Command: /bin/expand /etc/ramfs.img /dev/ram1
Command: mount -t proc proc /proc
Command: mount -t ext2 /dev/ram1 /var
Command: mkdir /var/tmp
Command: mkdir /var/log
Command: mkdir /var/run
Command: mkdir /var/lock
Command: mkdir /var/empty
Command: ifconfig lo 127.0.0.1
Command: route add -net 127.0.0.0 netmask 255.0.0.0 lo
Command: dhcpcd -p -a eth0 
[16]
eth0: config: auto-negotiation on, 100FDX, 100HDX, 10FDX, 10HDX.
Command: cat /etc/motd
Welcome to
   _  _
 /  __| ||_| 
_   _| |  | | _   _   _  _  _ 
   | | | | |  | || |  _ \| | | |\ \/ /

   | |_| | |__| || | | | | |_| |/\
   |  ___\|_||_|_| |_|\|\_/\_/
   | |
   |_|

For further information check:
http://www.uclinux.org/

Execution Finished, Exiting

Sash command shell (version 1.1.1)
/ Nov 30 00:00:04 dhcpcd[16]: dhcpConfig: failed to update /etc/resolv.conf: Re
ad-only file system

Nov 30 00:00:04 dhcpcd[16]: dhcpConfig: failed to write cache file /etc/dhcpc/dh
cpcd-eth0.cache: No such file or directory

Nov 30 00:00:04 dhcpcd[16]: dhcpConfig: failed to write info file /etc/dhcpc/dhc
pcd-eth0.info: No such file or directory


/ 
/ 
/ 
/ cd tmp

/var/tmp tftp 192.168.10.80
tftp binary
tftp get rrh
Received 793780 bytes in 14.2 seconds
tftp /var/tmp chmod 777 rrh
/var/tmp ./rrh
[22]
/var/tmp bad frame format: 
PC: [000ad076]
SR: 2700  SP: 00f43cc4  a2: 00282c00
d0: d1: fffad2: d3: 0040
d4: 003fd5: 1000a0: 202d1764a1: 00e73e38
Process rrh (pid: 22, stackpage=003688f0)
Stack from 00f43cc4:
fffa  0040 003f 1000 202d1764 00e73e38 00282c00
   4c082700 000ad076 00059dd6  0040
00059df2 00e73e38 0040 0005a2d4 00e73e34 0040  0001
 0001 00f43e6c  00f43e6c 00f43e74 00f5 00134320
00f43dd8 00134366 00e73d9c 00c1 0093 003f  
 0001  0040    
Call Trace:
[0005aff6] [00059946] [000922c0] [000afbfc]
[0004] [000522c0] [0005c226] [000922c0]
[000afbfc] [000922c0] [00064434] [000922c0]
[00111700] [000922c0] [0008c532] [000922c0]
[000716b2] [00071792] [00072bcc] [00040bd2]
[00040c04] [00040bd2] [0004386a]

/var/tmp ./rrh
[22]
/var/tmp RRH Starting...
Simulator 

RE: [uClinux-dev] enumerating busybox completely and automatically(wasRe: Busybox who Applet)

2007-05-08 Thread Gavin Lambert
Quoth Greg Ungerer [EMAIL PROTECTED]:
 Speaking of which, wouldn't it be nice to change the 2.4 style
 uClinux config to a 2.6/Kconfig style config?
 
 It would be very nice.
 
 Any volunteers?

I would but I'm still way back on 20041215, so it probably wouldn't help
much ;)

___
uClinux-dev mailing list
uClinux-dev@uclinux.org
http://mailman.uclinux.org/mailman/listinfo/uclinux-dev
This message was resent by uclinux-dev@uclinux.org
To unsubscribe see:
http://mailman.uclinux.org/mailman/options/uclinux-dev