Re: Using RVCT compiler for WinCE

Tech-Archive recommends: Repair Windows Errors & Optimize Windows Performance




Hi Paul,

This is w.r.t to your suggestion for the second option in your post below:

"Or, going even more low-level, use the RVCT tools to generate the machine
code as a string of bytes and place those bytes in your VS2008 program and
call it. Not very clean, of course"

Can you provide some more details on how the machine code can be plabed in
VS2008 program and then the program be build in VS2008.

I know how to generate the machine code in RVCT. However, I do not know how
to integrate this machine code in my application in VS2008.

Thanks,
Dhiru

"Paul G. Tobey [eMVP]" wrote:

So think of other ways to do it. You're using Visual Studio 2008 to compile
your code for Windows CE? If not, try it; I suppose that it's possible that
it's better than what you're using now. Check, also, the C/C++ | Advanced
settings Compile For Architecture setting. What the heck...try all four of
the ARM options that the compiler knows about.

You could try to generate the EXE with RVCT, after converting the libraries
that you need from Windows CE to ELF format. Can RVCT generate PE format
executables?

I guess that you might be able to generate assembly code from the RVCT
compiler and then, with the help of a few macros, get the VS2008 assembler
to build it (you'd have to define macros for the instructions that the
assembler didn't know about).

Or, going even more low-level, use the RVCT tools to generate the machine
code as a string of bytes and place those bytes in your VS2008 program and
call it. Not very clean, of course.

Paul T.

"Ruben" <rupenchanda@xxxxxxxxx> wrote in message
news:e36bff2b-8e8c-4d8c-ba02-34882c06f390@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Thanks for the response.

As you pointed out "image processing or
that is running FFTs on signal data, it's worthwhile to use the best-
quality
compiler or assembler that you can find for your target processor"

that's what exactly I wanted to do. For ARM chipset, ARM Inc's RVCT
compiler is far more superior than MS Arm compiler or GCCE compiler (at
least based on my experience). However the problem is that, getting RVCT
compiler generating PE/COFF formatted binary that is required for WinCE,
and there seems to be no easy way to accomplish that.







On Feb 5, 11:55 am, "Paul G. Tobey [eMVP]" <p space tobey no spam AT
no instrument no spam DOT com> wrote:
My guess would be that Microsoft looks at it like this: we can't maintain
OS
builds for four or five different ARM variants. We're already doing MIPS,
x86, ARM, and SH4. We have no objection to letting a user build his own
application, external to Platform Builder, using some other
compiler/assembler, but the value to us of having specific builds of the
OS
for those various architectures is just not that great and, if we're not
going to use the ARM features of the new processor in an OS build, what's
the value of adding support to the compiler/assembler.

Intel used to have plug-in compilers for XScale that you could use to
replace the compilers and libraries in eMbedded Visual C++ and Platform
Builder. The performance of my applications compiled with eVC for
benchmark
purposes was better (7.4 vs. 6.4 in Whetstone, and 316 vs. 227 in
Dhrystone), and, presumably, there would be some benefit for the OS, also,
but it wasn't enough better that it was worth it to us to invest in
maintaining two 'build' products, PB and Intel compiler, on every build
machine. Maybe some ARM silicon vendor will come through with something
similar for your processor; I think that's your best chance of seeing
support for the new features in PB.

If you are building some application that does, say, image processing or
that is running FFTs on signal data, it's worthwhile to use the
best-quality
compiler or assembler that you can find for your target processor, but,
for
most applications (which are generally just sitting there waiting for user
input most of the time), and for the OS itself, I don't think it's worth
very much. By the way, isn't the ARM code generator in Visual Studio 2008
several generations upgraded from the one in eVC4? Not necessarily helpful
for the OS itself, but might help your application program.

Paul T.

"Ruben" <rupencha...@xxxxxxxxx> wrote in message

news:6fcea0ce-7e07-4559-9766-50d38e50e395@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Thanks for your response.

I haven't seen any update in the latest Platform builder ARM compiler.
I find it rather surprising that MS doesn't care to keep the MS ARM
compiler competitive to ARM Inc's RVCT compiler. Last time I saw
upgrade of the MS ARM compiler was on 2004 (for platformbuilder 4.2/
Talisker to support ARM 9/xScale), since then it remained same, when
industry is upgrading to ARM 11 (V6), Cortext/Snapdragon (V7)
architecture.

I was thinking,
- if I generate a ELF file from code, since my project may link to
library provided by WinCE (as these libraries are in COFF/PE format),
I would create a utility that would covert these MS provided libraries
to ELF format and then link them together using RVCT linker.

any idea?

thanks

On Feb 5, 3:18 am, superclass <supercl...@xxxxxxxxxxxxxxxxxxxxxxxxx>
wrote:



converting ELF .o to COFF/PE obj will not work or not always. Specially
if
you use C++(templates, etc). Also some ELF entrys in .o have no pedant
in
MS
COFF.

But you may optimize some performance critical functions and write them
in
assembler. Usually global optimization for processor XY brings not much
more
performance as if you analyze the code and optimize only specific
functions.

Generally, I didn't find solution .o -> .obj that works good enough for
me.

Regards- Hide quoted text -

- Show quoted text -



.



Relevant Pages

  • Re: Migrating ARM9E codebase to ARM11
    ... > optimizations done using hand-coding, only the control code is left to ... You should then consider upgrading to a newer compiler. ... wish to target might be faster than the assembler optimised for the 9E. ... I do not believe that the ARM ARM for architecture version 6 has been ...
    (comp.sys.arm)
  • Re: LPC900/80C51 Compiler Toolchain
    ... The short answer is 'No' - you can't use any GCC version beyond 2.9. ... Gcc 2.9x for the ARM was very poor, ... compile them to assembler source first. ... With modern compilers, there is seldom good reason for hand-optimising your assembly unless you are taking advantage of specific features that your compiler is unaware of. ...
    (comp.arch.embedded)
  • Using RVCT compiler for WinCE
    ... Microsoft ARM compiler still doesn't support ARM 11 optimization and ... ARM binary generated by the MS ARM compiler are not as good as RVCT ... Now try to link using Microsoft linker. ...
    (microsoft.public.windowsce.platbuilder)