This website is using cookies. We use cookies to ensure that we give you the best experience on our website. More info. That's Fine
HPC:Factor Logo 


Download Summary:

Support the Site
Support HPC:Factor in offering these downloads! Make a donation.

The GNUWINCE package is a collection of tools supporting C, C++, and Java programming for Windows CE.

You must be logged in to download this file. (why? · register)
Download Size:
9 KB - 135.65 MB
Release Date:
Number of Downloads:
Added By:
C:Amie on 27/05/2020 9:09:47 AM


The GNUWINCE package is a collection of tools supporting C, C++, and Java programming for Windows CE. It consists of:

- the GNU Compiler Collection, assembler, and linker
- modifications to these generic tools to support functionality peculiar to Windows CE;
- the newlib Standard C library with extensive additions to provide a fairly complete POSIX-like runtime environment.
- remote login shell and ftp daemon.
- conveniently packaged documentation for all of the above.

The current release, GNUWINCE 1.0, was released on 2003-10-04.

Getting Started
The Windows CE runtime environment provided by Microsoft is woefully incomplete. Many important features needed for creating sophisticated applications are missing:

a complete (and completely functional) Standard C Library
a complete math library
current working directory
environment variables
process creation with command line arguments
stdio framework that permits normal terminal i/o to or from processes
standard Berkeley sockets API

GNUWINCE provides all of these things and much more in a comprehensive framework that makes developing Windows CE programs much easier - it obviates the need to write WIN32-specific code by providing a "POSIX like" environment that enables rapid application development. GNUWINCE allows most open-source software to run on Windows CE with very little modification.
ush and the Shell Utilities
The ush shell and its associated utilities provide a simple remote login facility that is entirely missing on "stock" Windows CE. ush, which stands for "micro shell", is loosely based on the well-known bash shell and makes software development on Windows CE much easier. GNUWINCE applications that you create automatically have their standard input and output going to ush, so that it is trivial to write simple command-line programs that accept input from and produce output in the shell in the usual way. An example is shown below. A repertoire of shell utilities (ps, kill, mkdir, ls, etc.) are provided to make using the shell a comfortable experience for anyone already familiar with Linux or UNIX.

To get started with ush, obtain the winceos binaries tarball. From this tarball, copy ush and the utilities (e.g. ps, kill, mkdir, ls, etc.) to directory /bin on your Windows CE 3.0 (or above) device. (Note: You will need to create this directory.) Copy the rlogind daemon (also provided in the winceos tarball) into /windows/Start Menu. Run rlogind from the start menu on your device. At this point, you can login from your linux/unix host or another rlogin client:

zetar% rlogin

where "" is the IP address of your network-connected Windows CE device. The "#" is the ush shell prompt; if you see this you can try out a few shell commands. Let's try to print out and manipulate environment variables:

# setenv FOO bar
# env

Note that ush transfers its environment variable settings to any child processes it creates and that therefore GNUWINCE child processes (e.g. your application) automatically inherit environment variable settings made in the shell. GNUWINCE also provides all processes with the current working directory, and thus ush allows you to "cd" and "pwd" in the expected way:

# pwd
# cd /bin
# pwd

Building and Running hello.c
No tutorial would be complete without the obligitory "hello world" example, so here it we go:

#include <stdio.h>

int main(int argc, char *argv[])
printf("Hello, world!\n");

To compile and link this test program, execute the following command on your Linux build host:

zetar% arm-wince-pe-gcc -march=armv4 -mapcs-32 -malignment-traps -DNEWLIB -DSARM -DWIN32 -DGNUWINCE hello.c -lc -lgcc -lwinsock -lcoredll

A few points about this test program and its compilation under GNUWINCE:

The non-portable Microsoft header files (e.g. windows.h) are unnecessary. This is often true when compiling GNUWINCE programs; the code can retain a clean POSIX style without having to adopt Microsoft-specific idioms.
The code generation options for the above compilation produce correct, efficient code for both StrongARM and Xscale devices. Omitting any of these options when compiling for either StrongARM or Xscale platforms WILL cause problems.
The libraries specified with "-l" are REQUIRED; these represent the minimum needed to achieve link closure for even the simplest case.

To run the program, copy the "a.exe" executable file created in the previous step to /bin on your Windows CE device. Run the test program in the shell by typing "a.exe" at the shell prompt:

# a.exe
Hello World!

should be the response printed out in your ush session.

System Requirements:



10.40 MB
21.70 MB
9 KB
2.69 MB
53.16 MB
46.38 MB
710 KB
636 KB


Support the Site
Support HPC:Factor in offering these downloads! Make a donation.
HPC:Factor believes that the Internet is a better place without the constant displaying of adverts on community website resources and as such does not carry 'ad-words', banners, pop-up's or any other form of paid advertising.

Please help to pay for the download that you are getting from us today and help to support our desire to run the site without paid subscriptions or advertising by making a donation to the site. It doesn't matter how much or little you donate, but by donating you will help to ensure that we can continue to offer some of the Internet's most popular, rarest and unusual downloads for Windows CE devices for now and for the future.