Skip to main content

Factors to decide to choose b/w pME Feature and Advanced

20 replies [Last post]
asif_kalim
Offline
Joined: 2007-11-30

Hi,
im researching on pME porting for linux/arm AT91SAM9260, need to know the factors to decide between pME feature advanced. Current scope of the target platform is limited being a headless device, but could be expanded to GUI capable in future. For me, the most important factors are less porting effort, performance and expansion capabilities. I need an expert opinion about making this decision.

thanks,
asif

Reply viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.
cjplummer
Offline
Joined: 2006-10-16

> hi chris,
> i found it on arm-linux/sys-include/sys/ucontext.h,
> copied it to /asm and this time got a bit different
> error.

Sorry this won't work. There are 3 different ucontext.h files in 3 different locations. You have to have all 3 and they need to be in the properly locations. You have two of them. You still need to track down the asm version.

$> find /usr/tools/i686-SuSE-linux/gnu/arm-bulverde-linux/ -name ucontext.h
/usr/tools/i686-SuSE-linux/gnu/arm-bulverde-linux/sys-include/asm/ucontext.h
/usr/tools/i686-SuSE-linux/gnu/arm-bulverde-linux/sys-include/sys/ucontext.h
/usr/tools/i686-SuSE-linux/gnu/arm-bulverde-linux/sys-include/ucontext.h

Chris

andy_galvez
Offline
Joined: 2008-02-15

> > hi chris,
> > i found it on
> arm-linux/sys-include/sys/ucontext.h,
> > copied it to /asm and this time got a bit
> different
> > error.
>
> Sorry this won't work. There are 3 different
> ucontext.h files in 3 different locations. You have
> to have all 3 and they need to be in the properly
> locations. You have two of them. You still need to
> track down the asm version.
>
> $> find
> /usr/tools/i686-SuSE-linux/gnu/arm-bulverde-linux/
> -name ucontext.h
> /usr/tools/i686-SuSE-linux/gnu/arm-bulverde-linux/sys-
> include/asm/ucontext.h
> /usr/tools/i686-SuSE-linux/gnu/arm-bulverde-linux/sys-
> include/sys/ucontext.h
> /usr/tools/i686-SuSE-linux/gnu/arm-bulverde-linux/sys-
> include/ucontext.h
>
> Chris

Hello All,
Does this mean I just have to find all these from the internet and add them to my directory? Or is there a proper solution to this? Which toolchain can I use to properly build PhoneME advance without this problem? Because currently, I am also having this same problem using GNU EABI toolchain.
Thanks and best regards,
Leandro Galvez

asif_kalim
Offline
Joined: 2007-11-30

Hi,
Sorry for the delayed response, Well, i referred thread [http://forums.java.net/jive/thread.jspa?messageID=259798&tstart=0#259798] applied the solution mentioned by Hinkmond and get rid of asm/ucontext.h, and also done with the cvm build ;)

thanks++ Hinkmond and Chris,
Asif

Hinkmond Wong

phonemeadvanced@mobileandembedded.org wrote:
> Hi Hinkmond,
> ...
> secondly, one more question: what is the basic difference b/w using pMEF to develop IMlets and using pMEA to develop Xltes using Basic Profile(for a headless device).
>

Hi Asif,

Chris answered your build question, so we will wait for you to respond
with the verbose output that you send us.

To answer your question above, using pMEF to develop MIDlets is mostly
done for cell phones while using pMEA to develop Xlets using Personal
Basis Profile (with graphics) is mostly done for TV set-top boxes or
Blu-ray disc players. Using CDC/Foundation Profile by itself is
headless and is mostly done for embedded systems, like multi-function
printers.

Hinkmond

---------------------------------------------------------------------
To unsubscribe, e-mail: advanced-unsubscribe@phoneme.dev.java.net
For additional commands, e-mail: advanced-help@phoneme.dev.java.net

asif_kalim
Offline
Joined: 2007-11-30

Hi,
below is the output after a clean build and verbose build is true. tbl.cc and tbl.h are there in /build/linux-arm-generic/jcs.
==========================================================
host c++ ../../build/linux-arm-generic/./jcs/wordlist.o
bison ../../build/linux-arm-generic/./jcs/tbl.cc
../../src/share/javavm/jcs/tbl.y:117 parser name defined to default :"parse"
flex ../../build/linux-arm-generic/./jcs/scan.cc
host c++ ../../build/linux-arm-generic/./jcs/scan.o
../../build/linux-arm-generic/./jcs/scan.cc:560:20: error: tbl.cc.h: No such file or directory
../../build/linux-arm-generic/./jcs/scan.cc: In function 'int yylex()':
../../build/linux-arm-generic/./jcs/scan.cc:829: error: 'yylval' was not declared in this scope
../../build/linux-arm-generic/./jcs/scan.cc:831: error: 'C_EXPR' was not declared in this scope
../../build/linux-arm-generic/./jcs/scan.cc:848: error: 'NL' was not declared in this scope
../../build/linux-arm-generic/./jcs/scan.cc:857: error: 'NL' was not declared in this scope
../../build/linux-arm-generic/./jcs/scan.cc:865: error: 'LEAF' was not declared in this scope
../../build/linux-arm-generic/./jcs/scan.cc:873: error: 'LEAF' was not declared in this scope
../../build/linux-arm-generic/./jcs/scan.cc:881: error: 'UNARY' was not declared in this scope
../../build/linux-arm-generic/./jcs/scan.cc:889: error: 'BINARY' was not declared in this scope
../../build/linux-arm-generic/./jcs/scan.cc:897: error: 'TYPE' was not declared in this scope
../../build/linux-arm-generic/./jcs/scan.cc:905: error: 'GOAL' was not declared in this scope
../../build/linux-arm-generic/./jcs/scan.cc:913: error: 'NAME' was not declared in this scope
../../build/linux-arm-generic/./jcs/scan.cc:921: error: 'OPCODE' was not declared in this scope
../../build/linux-arm-generic/./jcs/scan.cc:929: error: 'RIGHT' was not declared in this scope
../../build/linux-arm-generic/./jcs/scan.cc:937: error: 'LEFT' was not declared in this scope
../../build/linux-arm-generic/./jcs/scan.cc:945: error: 'GETSTATE' was not declared in this scope
../../build/linux-arm-generic/./jcs/scan.cc:953: error: 'SETSTATE' was not declared in this scope
../../build/linux-arm-generic/./jcs/scan.cc:961: error: 'DAG' was not declared in this scope
../../build/linux-arm-generic/./jcs/scan.cc:971: error: 'yylval' was not declared in this scope
../../build/linux-arm-generic/./jcs/scan.cc:974: error: 'NUMBER' was not declared in this scope
../../build/linux-arm-generic/./jcs/scan.cc:980: error: 'yylval' was not declared in this scope
../../build/linux-arm-generic/./jcs/scan.cc:983: error: 'WORD' was not declared in this scope
../../build/linux-arm-generic/./jcs/scan.cc:990: error: 'yylval' was not declared in this scope
../../build/linux-arm-generic/./jcs/scan.cc:994: error: 'C_STMT' was not declared in this scope
../../build/linux-arm-generic/./jcs/scan.cc:1001: error: 'yylval' was not declared in this scope
../../build/linux-arm-generic/./jcs/scan.cc:1008: error: 'C_EXPR' was not declared in this scope
../../build/linux-arm-generic/./jcs/scan.cc:1027: error: 'C_CODE' was not declared in this scope
../../build/linux-arm-generic/./jcs/scan.cc:1069: error: 'NL' was not declared in this scope
make: *** [../../build/linux-arm-generic/./jcs/scan.o] Error 1
==========================================================

P.S. Hinkmond:
Scope of my project is that applications(xlets/imlets) includes; ability communicate with the serial interface, https sessions over ethernet, persistent storage, OTA using WAN connection, buletooth connectivity and simulate GPIO interface. are Xlets capable enough to do this? can i use optional API(s) in a Xlet? also plz refer a tutorial or documentation about Xlet development using CVM.

Thanks,
asif

Message was edited by: asif_kalim

asif_kalim
Offline
Joined: 2007-11-30

plz reply

thanks and regards,
asif

cjplummer
Offline
Joined: 2006-10-16

I think the problems stems from here:

bison ../../build/linux-arm-generic/./jcs/tbl.cc
../../src/share/javavm/jcs/tbl.y:117 parser name defined to default :"parse"

What version of bision are you using?

Chris

asif_kalim
Offline
Joined: 2007-11-30

bison++ Version 1.21.9-1

cjplummer
Offline
Joined: 2006-10-16

> bison++ Version 1.21.9-1

This looks like the problem. I'm not sure what bison++ is. If it is the same as bison, then the version looks old. Here are the versions I'm using on various hosts:

WinNT/Cygwin: bison (GNU bison) 2.3
Mac OS X: GNU Bison version 1.28
Linux/x86 SuSE 9.3: bison (GNU Bison) 1.875

Chris

asif_kalim
Offline
Joined: 2007-11-30

thanks chris,
i remove bison++ and reinstall it, now the version is [bison (GNU Bison) 2.3]
but this time i get different error,
----------------------------------------------------------------------------------------------------------------
cc ../../src/linux-arm/javavm/runtime/segvhandler_arch.c
../../src/linux-arm/javavm/runtime/segvhandler_arch.c:45:26: error: asm/ucontext.h: No such file or directory
../../src/linux-arm/javavm/runtime/segvhandler_arch.c: In function 'handleSegv':
../../src/linux-arm/javavm/runtime/segvhandler_arch.c:224: error: dereferencing pointer to incomplete type
../../src/linux-arm/javavm/runtime/segvhandler_arch.c:285: error: dereferencing pointer to incomplete type
../../src/linux-arm/javavm/runtime/segvhandler_arch.c:285: error: dereferencing pointer to incomplete type
../../src/linux-arm/javavm/runtime/segvhandler_arch.c:286: error: dereferencing pointer to incomplete type
../../src/linux-arm/javavm/runtime/segvhandler_arch.c:294: error: dereferencing pointer to incomplete type
make: *** [../../build/linux-arm-generic/./obj/segvhandler_arch.o] Error 1
----------------------------------------------------------------------------------------------------------------
thanks,
asif

cjplummer
Offline
Joined: 2006-10-16

> ../../src/linux-arm/javavm/runtime/segvhandler_arch.c:
> 45:26: error: asm/ucontext.h: No such file or directory

You need a toolchain that includes asm/ucontext.h. I can recall once (and only once before) someone complaining about this same error, so I think in general arm-linux toolchains always include it. It might have to do with whether or not your toolchain supports doing kernel builds. You might be able to get away with just googling for asm/uncontex.h, and see if you can find a copy in another toolchain. If you do this, put it here:

arm-linux/sys-include/asm/ucontext.h

Chris

asif_kalim
Offline
Joined: 2007-11-30

hi chris,
i found it on arm-linux/sys-include/sys/ucontext.h, copied it to /asm and this time got a bit different error. also found ucontext.h on [b]http://blackfin.uclinux.org/gf/project/uclinux-dist/scmsvn/?action=browse&path=%2Ftrunk%2FuClibc%2Flibc%2Fsysdeps%2Flinux%2Fbfin%2Fsys%2Fucontext.h&view=markup&pathrev=158[/b] but no difference this time. error details are...
--------------------------------------------------------------------------------------------------------------------------------------------
cc ../../src/portlibs/dlfcn/linker_md.c
cc ../../src/linux-arm/javavm/runtime/segvhandler_arch.c
../../src/linux-arm/javavm/runtime/segvhandler_arch.c: In function 'handleSegv':
../../src/linux-arm/javavm/runtime/segvhandler_arch.c:224: error: dereferencing pointer to incomplete type
../../src/linux-arm/javavm/runtime/segvhandler_arch.c:285: error: dereferencing pointer to incomplete type
../../src/linux-arm/javavm/runtime/segvhandler_arch.c:285: error: dereferencing pointer to incomplete type
../../src/linux-arm/javavm/runtime/segvhandler_arch.c:286: error: dereferencing pointer to incomplete type
../../src/linux-arm/javavm/runtime/segvhandler_arch.c:294: error: dereferencing pointer to incomplete type
make: *** [../../build/linux-arm-generic/./obj/segvhandler_arch.o] Error 1
--------------------------------------------------------------------------------------------------------------------------------------------

Hinkmond Wong

phonemeadvanced@mobileandembedded.org wrote:
> hi chris,
> i found it on arm-linux/sys-include/sys/ucontext.h, copied it to /asm and this time got a bit different error. also found ucontext.h on [b]http://blackfin.uclinux.org/gf/project/uclinux-dist/scmsvn/?action=browse&path=%2Ftrunk%2FuClibc%2Flibc%2Fsysdeps%2Flinux%2Fbfin%2Fsys%2Fucontext.h&view=markup&pathrev=158[/b] but no difference this time. error details are...
>

Hi Asif,

As Chris tries to help you with the different compilation problems you
are seeing, can I ask about your uClinux distro you are using? Where
did you get it from and how is it configured? Do you have the details?

Do you know if the uClinux libs (which are configurable to subset out
functionality) you are using are configured to include full support of
things such as threads, floating point, TCP/IP networking, etc.?

Thanks,
Hinkmond

> --------------------------------------------------------------------------------------------------------------------------------------------
> cc ../../src/linux-arm/javavm/runtime/segvhandler_arch.c
> ../../src/linux-arm/javavm/runtime/segvhandler_arch.c: In function 'handleSegv':
> ../../src/linux-arm/javavm/runtime/segvhandler_arch.c:224: error: dereferencing pointer to incomplete type
> ../../src/linux-arm/javavm/runtime/segvhandler_arch.c:285: error: dereferencing pointer to incomplete type
> ../../src/linux-arm/javavm/runtime/segvhandler_arch.c:285: error: dereferencing pointer to incomplete type
> ../../src/linux-arm/javavm/runtime/segvhandler_arch.c:286: error: dereferencing pointer to incomplete type
> ../../src/linux-arm/javavm/runtime/segvhandler_arch.c:294: error: dereferencing pointer to incomplete type
> make: *** [../../build/linux-arm-generic/./obj/segvhandler_arch.o] Error 1
> --------------------------------------------------------------------------------------------------------------------------------------------
> [Message sent by forum member 'asif_kalim' (asif_kalim)]
>
> http://forums.java.net/jive/thread.jspa?messageID=259277
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: advanced-unsubscribe@phoneme.dev.java.net
> For additional commands, e-mail: advanced-help@phoneme.dev.java.net
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: advanced-unsubscribe@phoneme.dev.java.net
For additional commands, e-mail: advanced-help@phoneme.dev.java.net

asif_kalim
Offline
Joined: 2007-11-30

Hi Hinkmond,
Actually im using linux4sam provided by ATMEL as an open source, the url reference uclinux for balckfin obiviously doesn't make any sense, linux4sam build system has the options to subset out the said functionalities, for the tool chain i have the details. but can't say right now about the busybox and kernel.

also tried to google in the source that linux4sam refers actually site:http://www.uclibc.org/cgi-bin/viewcvs.cgi/trunk/uClibc/ asm/ucontext.h

but found the same files that i already have, ...
regards,
asif

Message was edited by: asif_kalim

Hinkmond Wong

phonemeadvanced@mobileandembedded.org wrote:
> Hi Hinkmond,
> Actually im using linux4sam provided by ATMEL as an open source, the url reference uclinux for balckfin obiviously doesn't make any sense, linux4sam build system has the options to subset out the said functionalities, for the tool chain i have the details. but can't say right now about the busybox and kernel.
>

Hi Asif,

I think it would still be worth it if you could send the list of the
subset of functionalities of the tool chain. It could help us put into
reference the build environment you are working with for the ATMEL device.

Thanks,

Hinkmond

---------------------------------------------------------------------
To unsubscribe, e-mail: advanced-unsubscribe@phoneme.dev.java.net
For additional commands, e-mail: advanced-help@phoneme.dev.java.net

Hinkmond Wong

phonemeadvanced@mobileandembedded.org wrote:
> Hi,
> im researching on pME porting for linux/arm AT91SAM9260, need to know the factors to decide between pME feature advanced. Current scope of the target platform is limited being a headless device, but could be expanded to GUI capable in future. For me, the most important factors are less porting effort, performance and expansion capabilities. I need an expert opinion about making this decision.
>

Hi Asif,

If you want a target platform that is similar to a high volume cell
phone device (with SMS Text Message, connected to a wireless carrier via
GSM or CDMA, etc, etc,) you should use phoneME Feature.

If you want a target platform that is more like a networked embedded
device, such as an Internet Tablet (Nokia N800) with WiFi, or a PDA, or
a high-end smartphone (that has more memory, such as > 32MB RAM and >
8MB extra storage space), then you should use phoneME Advanced.

Both projects have prebuilt binaries for you to download without having
to port:

https://phoneme.dev.java.net/downloads_page.html

Look for the "bin" binaries zip bundles with "-linuxarm-" in the name.

Hinkmond

---------------------------------------------------------------------
To unsubscribe, e-mail: advanced-unsubscribe@phoneme.dev.java.net
For additional commands, e-mail: advanced-help@phoneme.dev.java.net

asif_kalim
Offline
Joined: 2007-11-30

hi hinkmond,
thanks for your feedback, i still have some concerns needs to clear,
my target platform is a headless embedded device that is an Atmel AT91SAM9260, and i tried to run pMEF linux-arm prebuilt binaries on evaluation board and it was not successful. So i think it should be ported. And also i was looking for pMEA prebuilt binaries for linux-arm and i didn't find it on the download page as you mentioned. Means either i go for pMEF or pMEA, i will need to port it for the target platform, please correct me if my understanding is not correct. Also please guide me which one of phoneME flavor is more easier to port in the said scope.

thanks,
asif

Hinkmond Wong

phonemeadvanced@mobileandembedded.org wrote:
> hi hinkmond,
> thanks for your feedback, i still have some concerns needs to clear,
> my target platform is a headless embedded device that is an Atmel
> AT91SAM9260, and i tried to run pMEF linux-arm prebuilt binaries on
> evaluation board and it was not successful. So i think it should be
> ported. And also i was looking for pMEA prebuilt binaries for linux-arm
> and i didn't find it on the download page as you mentioned.

Hi Asif,

For a pMEA prebuild binary, you are right that we do not have the
Linux/ARM binaries on the Web site I sent you to (only Linux/x86 and
WinMobile/ARM). Sorry about that. Instead, you will need to use our
source code to build yourself a cross-compiled Linux/ARM binary that is
specifically built with your cross-compiling tools for your Atmel
AT91SAM9260 board.

> Means either
> i go for pMEF or pMEA, i will need to port it for the target platform,
> please correct me if my understanding is not correct. Also
> please guide me which one of phoneME flavor is more easier to port
> in the said scope.

Yes, that's correct. If you start with phoneME Advanced (CDC), that
might be easiest.

You would have to download our pMEA (CDC) source code from here (same as
last time, but click on the source bundles instead of the binary bundles):

https://phoneme.dev.java.net/downloads_page.html#advanced

For instance click on where it says:

MR2 source bundle (b34) - Linux
phoneme_advanced-mr2-dev-src-b34-04_oct_2007.zip

which points to:

http://download.java.net/mobileembedded/phoneme/advanced/phoneme_advance...

Unzip the bundle and follow the phoneME Advanced (CDC) build system
instructions TWiki at:

https://phoneme.dev.java.net/content/pmAdv-buildtarget.html

So, for example, after unzipping the MR2 source bundle, change your
directory to the appropriate build platform, then type the make command
with the CVM_TARGET_TOOLS_PREFIX= set appropriately for your
cross-compiler tools for the Atmel board (make sure all your arm-linux-*
cross-compiler tools are on your PATH first):

cd cdc/build/linux-arm-generic
make CVM_TARGET_TOOLS_PREFIX=arm-linux- J2ME_CLASSLIB=foundation

Then, copy the bin and lib directories to your device and try testing:

bin/cvm -version

bin/cvm -cp

Hinkmond

---------------------------------------------------------------------
To unsubscribe, e-mail: advanced-unsubscribe@phoneme.dev.java.net
For additional commands, e-mail: advanced-help@phoneme.dev.java.net

asif_kalim
Offline
Joined: 2007-11-30

Hi Hinkmond,
Sorry for the late response, i am trying to build CDC and got following error, pls guide me how to fix it.
=====================================================
make PATH=/opt/atmel/gcc-4.1.2-uclibc/bin:$PATH
CVM_TARGET_TOOLS_PREFIX=arm-linux-uclibc- J2ME_CLASSLIB=foundation
=====================================================
flex ../../build/linux-arm-generic/./jcs/scan.cc
host c++ ../../build/linux-arm-generic/./jcs/scan.o
../../build/linux-arm-generic/./jcs/scan.cc:560:20: error: tbl.cc.h: No such file or directory
../../build/linux-arm-generic/./jcs/scan.cc: In function 'int yylex()':
../../build/linux-arm-generic/./jcs/scan.cc:829: error: 'yylval' was not declared in this scope
../../build/linux-arm-generic/./jcs/scan.cc:831: error: 'C_EXPR' was not declared in this scope
../../build/linux-arm-generic/./jcs/scan.cc:848: error: 'NL' was not declared in this scope
../../build/linux-arm-generic/./jcs/scan.cc:857: error: 'NL' was not declared in this scope
../../build/linux-arm-generic/./jcs/scan.cc:865: error: 'LEAF' was not declared in this scope
../../build/linux-arm-generic/./jcs/scan.cc:873: error: 'LEAF' was not declared in this scope
../../build/linux-arm-generic/./jcs/scan.cc:881: error: 'UNARY' was not declared in this scope
../../build/linux-arm-generic/./jcs/scan.cc:889: error: 'BINARY' was not declared in this scope
../../build/linux-arm-generic/./jcs/scan.cc:897: error: 'TYPE' was not declared in this scope
../../build/linux-arm-generic/./jcs/scan.cc:905: error: 'GOAL' was not declared in this scope
../../build/linux-arm-generic/./jcs/scan.cc:913: error: 'NAME' was not declared in this scope
../../build/linux-arm-generic/./jcs/scan.cc:921: error: 'OPCODE' was not declared in this scope
../../build/linux-arm-generic/./jcs/scan.cc:929: error: 'RIGHT' was not declared in this scope
../../build/linux-arm-generic/./jcs/scan.cc:937: error: 'LEFT' was not declared in this scope
../../build/linux-arm-generic/./jcs/scan.cc:945: error: 'GETSTATE' was not declared in this scope
../../build/linux-arm-generic/./jcs/scan.cc:953: error: 'SETSTATE' was not declared in this scope
../../build/linux-arm-generic/./jcs/scan.cc:961: error: 'DAG' was not declared in this scope
../../build/linux-arm-generic/./jcs/scan.cc:971: error: 'yylval' was not declared in this scope
../../build/linux-arm-generic/./jcs/scan.cc:974: error: 'NUMBER' was not declared in this scope
../../build/linux-arm-generic/./jcs/scan.cc:980: error: 'yylval' was not declared in this scope
../../build/linux-arm-generic/./jcs/scan.cc:983: error: 'WORD' was not declared in this scope
../../build/linux-arm-generic/./jcs/scan.cc:990: error: 'yylval' was not declared in this scope
../../build/linux-arm-generic/./jcs/scan.cc:994: error: 'C_STMT' was not declared in this scope
../../build/linux-arm-generic/./jcs/scan.cc:1001: error: 'yylval' was not declared in this scope
../../build/linux-arm-generic/./jcs/scan.cc:1008: error: 'C_EXPR' was not declared in this scope
../../build/linux-arm-generic/./jcs/scan.cc:1027: error: 'C_CODE' was not declared in this scope
../../build/linux-arm-generic/./jcs/scan.cc:1069: error: 'NL' was not declared in this scope
make: *** [../../build/linux-arm-generic/./jcs/scan.o] Error 1
=====================================================
secondly, one more question: what is the basic difference b/w using pMEF to develop IMlets and using pMEA to develop Xltes using Foundation Profile(for a headless device).

Thanks,
Asif

cjplummer
Offline
Joined: 2006-10-16

tbl.cc.h should have been created during the "bison" run, which should appear in the log just before the "flex" run I see in y our log output. tbl.cc.h should be in build/linux-arm-generic/jcs. If it is not, please do a clean build, then build with USE_VERBOSE_MAKE=true, and send the part of the log out put that includes both the bison and flex runs.

Chris