Re: [uClinux-dev] Is uClinux with 2.6 kernel a realtime os?
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
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)
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)
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
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
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)
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