nanogui: Thread: Re: linking nano-x problem and performance enh.


[<<] [<] Page 1 of 1 [>] [>>]
Subject: Re: [nanogui] linking nano-x problem and performance enh.
From: "Finn S. Nielsen" ####@####.####
Date: 10 Feb 2005 00:02:44 +0000
Message-Id: <002101c50f04$083d0630$0a2ca8c0@FNIBM>

Hi Greg,

Thank for you answer. Seems that to enable the use of another libc library like that from uClibc, in uClinux in makefiles in general, there is the make variable LDLIBS, which
is set to the standard libraries. This variable appears at the end of the command line (thanks for pointing it out  ;-o) . So I've added this to all the makefiles in microwindows.. (argh..).
So now it builds better. There is just two errors left, as you can see from the output below. Seems something is missing definewise.. ?? Any suggestions ?

When I get microwindows to compile and run OK, I may get the make adaptation added to the uClinux source tree, so that folks out there doing embedded systems can use the newest microwindows code - I guess that's also what it's all about.. using microwindows on embedded platforms.

A more interesting question. How much performance gain do you think one would achieve by implementing the basic drawing primitives in hardware, like the plot x,y
and the straight line drawing functions ? When I test microwindows in the TCP/IP client/server configuration (never manged to get the server linked to the app in the older version), I see something like a factor 10 difference in straight line drawing performance (on the main widow), compared to a dedicated (non-OS'ed) C program doing the same thing and drawing lines using plot x,y function. Performance is alfa and omega when you are restricted to a 50-150 Mhz range CPU and want nice graphics looks for MMI aplications where often you have a lot of image updates to do - and perhaps all the time (like in a VU-meter for example).

Best regards,

Finn S. Nielsen
Denmark.

Linking nano-X ...
mb-gcc -Os -g -fomit-frame-pointer   -Dlinux -D__linux__ -Dunix -D__uClinux__ -DEMBED -I/home/fn/uClinux-dist/
lib/uClibc/include -I/home/fn/uClinux-dist/lib/libm -I/home/fn/uClinux-dist/lib/libcrypt_old -I/home/fn/uClinu
x-dist -fno-builtin -mno-xl-soft-mul -mno-xl-soft-div -mxl-barrel-shift -I/home/fn/uClinux-dist/linux-2.4.x/in
clude -I. -I/home/fn/uClinux-dist/user/microwin/src/include -I. -I/home/fn/uClinux-dist/user/microwin/src/incl
ude -Os -g -fomit-frame-pointer   -Dlinux -D__linux__ -Dunix -D__uClinux__ -DEMBED -I/home/fn/uClinux-dist/lib
/uClibc/include -I/home/fn/uClinux-dist/lib/libm -I/home/fn/uClinux-dist/lib/libcrypt_old -I/home/fn/uClinux-d
ist -fno-builtin -mno-xl-soft-mul -mno-xl-soft-div -mxl-barrel-shift -I/home/fn/uClinux-dist/linux-2.4.x/inclu
de -Wl,-elf2flt -nostartfiles /home/fn/uClinux-dist/lib/uClibc/lib/crt0.o -nostdlib -L/home/fn/uClinux-dist/li
b/uClibc/. -L/home/fn/uClinux-dist/lib/uClibc/lib -L/home/fn/uClinux-dist/lib/libm -L/home/fn/uClinux-dist/lib
/libnet -L/home/fn/uClinux-dist/lib/libdes -L/home/fn/uClinux-dist/lib/libaes -L/home/fn/uClinux-dist/lib/libp
cap -L/home/fn/uClinux-dist/lib/libssl -L/home/fn/uClinux-dist/lib/libcrypt_old -L/home/fn/uClinux-dist/lib/zl
ib  -L/home/fn/uClinux-dist/user/microwin/src/lib -L/home/fn/uClinux-dist/user/microwin/src/lib -lgcc -lc -o /
home/fn/uClinux-dist/user/microwin/src/bin/nano-X  /home/fn/uClinux-dist/user/microwin/src/obj/engine/devopen.
o /home/fn/uClinux-dist/user/microwin/src/obj/engine/devdraw.o /home/fn/uClinux-dist/user/microwin/src/obj/eng
ine/devfont.o /home/fn/uClinux-dist/user/microwin/src/obj/engine/devmouse.o /home/fn/uClinux-dist/user/microwi
n/src/obj/engine/devkbd.o /home/fn/uClinux-dist/user/microwin/src/obj/engine/devclip.o /home/fn/uClinux-dist/u
ser/microwin/src/obj/engine/devrgn.o /home/fn/uClinux-dist/user/microwin/src/obj/engine/devpal1.o /home/fn/uCl
inux-dist/user/microwin/src/obj/engine/devpal2.o /home/fn/uClinux-dist/user/microwin/src/obj/engine/devimage.o
 /home/fn/uClinux-dist/user/microwin/src/obj/engine/devlist.o /home/fn/uClinux-dist/user/microwin/src/obj/engi
ne/selfont.o /home/fn/uClinux-dist/user/microwin/src/obj/engine/error.o /home/fn/uClinux-dist/user/microwin/sr
c/obj/engine/devrgn2.o /home/fn/uClinux-dist/user/microwin/src/obj/engine/devarc.o /home/fn/uClinux-dist/user/
microwin/src/obj/engine/devpoly.o /home/fn/uClinux-dist/user/microwin/src/obj/engine/devstipple.o /home/fn/uCl
inux-dist/user/microwin/src/obj/engine/font_dbcs.o /home/fn/uClinux-dist/user/microwin/src/obj/engine/font_fnt
.o /home/fn/uClinux-dist/user/microwin/src/obj/engine/font_pcf.o /home/fn/uClinux-dist/user/microwin/src/obj/e
ngine/devtimer.o /home/fn/uClinux-dist/user/microwin/src/obj/engine/devpal8.o /home/fn/uClinux-dist/user/micro
win/src/obj/engine/devpal4.o /home/fn/uClinux-dist/user/microwin/src/obj/fonts/rom8x16.o /home/fn/uClinux-dist
/user/microwin/src/obj/fonts/rom8x8.o /home/fn/uClinux-dist/user/microwin/src/obj/fonts/winFreeSansSerif11x13.
o /home/fn/uClinux-dist/user/microwin/src/obj/fonts/winFreeSystem14x16.o /home/fn/uClinux-dist/user/microwin/s
rc/obj/fonts/X6x13.o /home/fn/uClinux-dist/user/microwin/src/obj/drivers/fblin8.o /home/fn/uClinux-dist/user/m
icrowin/src/obj/drivers/fblin16.o /home/fn/uClinux-dist/user/microwin/src/obj/drivers/fblin24.o /home/fn/uClin
ux-dist/user/microwin/src/obj/drivers/fblin32.o /home/fn/uClinux-dist/user/microwin/src/obj/drivers/fblin32alp
ha.o /home/fn/uClinux-dist/user/microwin/src/obj/drivers/genmem.o /home/fn/uClinux-dist/user/microwin/src/obj/
drivers/fb.o /home/fn/uClinux-dist/user/microwin/src/obj/drivers/fblin1.o /home/fn/uClinux-dist/user/microwin/
src/obj/drivers/fblin2.o /home/fn/uClinux-dist/user/microwin/src/obj/drivers/genfont.o /home/fn/uClinux-dist/u
ser/microwin/src/obj/drivers/scr_fb.o /home/fn/uClinux-dist/user/microwin/src/obj/drivers/fbportrait_left.o /h
ome/fn/uClinux-dist/user/microwin/src/obj/drivers/fbportrait_right.o /home/fn/uClinux-dist/user/microwin/src/o
bj/drivers/fbportrait_down.o /home/fn/uClinux-dist/user/microwin/src/obj/drivers/fblin4.o /home/fn/uClinux-dis
t/user/microwin/src/obj/drivers/mou_null.o /home/fn/uClinux-dist/user/microwin/src/obj/drivers/kbd_null.o /hom
e/fn/uClinux-dist/user/microwin/src/obj/nanox/srvmain.o /home/fn/uClinux-dist/user/microwin/src/obj/nanox/srvf
unc.o /home/fn/uClinux-dist/user/microwin/src/obj/nanox/srvutil.o /home/fn/uClinux-dist/user/microwin/src/obj/
nanox/srvevent.o /home/fn/uClinux-dist/user/microwin/src/obj/nanox/srvclip.o /home/fn/uClinux-dist/user/microw
in/src/obj/nanox/srvnet.o /home/fn/uClinux-dist/user/microwin/src/lib/libmwengine.a /home/fn/uClinux-dist/user
/microwin/src/lib/libmwdrivers.a /home/fn/uClinux-dist/user/microwin/src/lib/libmwfonts.a  -lc /usr/local/micr
oblaze-elf-tools/bin/../lib/gcc-lib/microblaze/2.95.3-4/./libgcc.a /usr/local/microblaze-elf-tools/bin/../lib/
gcc-lib/microblaze/2.95.3-4/./../../../../microblaze/lib/libc_hard_shift.a  -lc
/home/fn/uClinux-dist/user/microwin/src/bin/nano-X.elf2flt: In function `GdCreateFont':
/home/fn/uClinux-dist/user/microwin/src/engine/devfont.c:95: undefined reference to `strcmpi'
/home/fn/uClinux-dist/user/microwin/src/bin/nano-X.elf2flt: In function `main':
/home/fn/uClinux-dist/user/microwin/src/nanox/srvmain.c:130: undefined reference to `GsSelect'
make[4]: *** [/home/fn/uClinux-dist/user/microwin/src/bin/nano-X] Error 1
make[4]: Leaving directory `/home/fn/uClinux-dist/user/microwin/src/nanox'



----- Original Message ----- 
From: "Greg Haerr" ####@####.####
To: "Finn S. Nielsen" ####@####.#### ####@####.####
Sent: Wednesday, February 09, 2005 11:21 PM
Subject: Re: [nanogui] linking nano-x problem


> It appears that the -lc is in the link command line before
> the *.o files.  Perhaps you should remove -lc from LDFLAGS
> and have gcc insert it automatically.
> 
> Regards,
> 
> Greg
> 
Subject: Re: [nanogui] linking nano-x problem and performance enh.
From: "Greg Haerr" ####@####.####
Date: 10 Feb 2005 22:56:27 +0000
Message-Id: <0c0a01c50fc3$862506a0$0300a8c0@RDP>

>  there is the make variable LDLIBS, which
is set to the standard libraries. This variable appears at the end of the
command line (thanks for pointing it out  ;-o) . So I've added this to all
the makefiles in microwindows.. (argh..).

Let me know when you get this all working, we can then look to
see how the microwindows make system should be modified.


> There is just two errors left, as you can see from the output below. Seems
something is missing definewise..

Looks like GsSelect isn't defined...  This usually happens if you
don't have LINUX or UNIX defined, look at nanox/srvmain.c
and make sure that the proper GsSelect() function you desire is
in fact getting compiled when using the compile options you've
added to Arch.rules.


> When I get microwindows to compile and run OK, I may get the make
adaptation added to the uClinux source tree, so that folks out there doing
embedded systems can use the newest microwindows code -

Are you using the microwindows-src-snapshot.tar.gz, which is a copy
of the near-latest CVS?  This uses a modified build mechanism from
v0.90.   If you're going to make uClinux mods, you should be using
this latest tree.


> A more interesting question. How much performance gain do you think one
would achieve by implementing the basic drawing primitives in hardware, like
the plot x,y
and the straight line drawing functions ? When I test microwindows in the
TCP/IP client/server configuration (never manged to get the server linked to
the app in the older version), I see something like a factor 10 difference
in straight line drawing performance (on the main widow), compared to a
dedicated (non-OS'ed) C program doing the same thing and drawing lines using
plot x,y function.

You really need to get the LINK_APP_INTO_SERVER option compiled
in order to judge this.  when running client/server there are context
switches
and many things that can slow down the system, a complete explanation
is complicated, let me know if you need more details.

>  Performance is alfa and omega when you are restricted to a 50-150 Mhz
range CPU and want nice graphics looks for MMI aplications where often you
have a lot of image updates to do - and perhaps all the time (like in a
VU-meter for example).

Personally I think the biggest hw speedups would be image display (blit)
and area clears.

Regards,

Greg


Subject: Re: [nanogui] linking nano-x problem and performance enh.
From: "Marshia R." ####@####.####
Date: 2 Feb 2006 07:10:21 +0000
Message-Id: <73C8998CF982A245A95EE73ACE13ADFA0DE655@MAIL.cisctechnology.com>

Hi

 

I am trying to compile uClinux with Microwindows. I have taken the config
file for uClinux into consideration for selecting the options for
microwindows while"make menucofig". The kernel ic compiling fine, I get the
linux.dxe image.

 

I load the image onto the blackfin(EZ-LITE) board(using VDSP), the board
boots up fne and I get the shell. 

 

But when I give 

 

>nano-X &

 

I get an error : Bad command or file name.

 

 

 

When I capture the kernel messages while "make"ing, i get lots of errors in
between for microwindows, one of them being : cp:cannot stat 'nano-X' :file
not found.

 

This is because the other files required for creating this is not
created(prior errors are present).

 

 

 

I am using nisa-elf compiler for 2.4 uClinux kernel.

 

 

 

I am trying to remove these errors and get the nano-X server program created.

 

 

 

please tell me whether I am on the right track.

 

 

 

Moreover, what is the procedure to execute microwindows applications/demos on
the serial console.

 

I am using only minicom now, maybe when this becomes ok will go for a LCD.

 

Should i run nanowm, nteteris and nxclock om the background to run
microwindows application?

 

 

 

Please give me inputs regarding this.

 

 

 

Thank YOu

 

Warm Regards

 

Marshia

[<<] [<] Page 1 of 1 [>] [>>]


Powered by ezmlm-browse 0.20.