Offline GCC compiler works with mbed libraries!

21 Sep 2011

I just wanted to let people know that we now have a project up on github which allows GCC to perform offline compilation of code that links to mbed libraries.

This project started back in May with Arthur Wolf's post to the mbed forum about having the start of a GCC project which would compile and link with the mbed libraries. There was just the small issue of the fact that the resulting code didn't run. Several months later, we now have a project where several samples of code that utilize the mbed libraries now compile, link, and run as expected.

I have added a Notebook page which further describes the project and how to use it.

The project is located here on github.

Now you can go outside with your laptop, mbed device, no WiFi access, and enjoy offline development in the great outdoors! If only this project had been completed a few months earlier :)

21 Sep 2011

Hi

Have to give it a try this weekend.

It would already be great if I was able to syntax check code etc without permanent internet access.

Thanks for sharing!

24 Sep 2011

Wim, please let me know if you hit any issues.

25 Sep 2011

Awesome stuff! :)

25 Sep 2011

Alrighty... 6 hours of trials and tribulations.... the steps on the notebook do NOT work quite as expected for Windows

So... I made it work and HelloWorld has LED1 blinking happily.

When built from offline GCC compiler in Windows HelloWorld.bin 24KB

When built from online compiler HelloWorld.bin 11KB

25 Sep 2011

Sorry to hear that the steps didn't work for you under Windows. Can you elaborate on what didn't work so that I can update the steps in the notebook? I have only used it on a Windows XP machine and some things, like installing Code Sourcery, I did months ago so if I tweaked something on my machine to make it work, I could have left it out of the steps.

Around a 2x size difference between the cloud and GCC compiled versions looks right and matches the estimated size difference that I mention in the notebook page. The first version of the HelloWorld program that we got out of the GCC compiler was 100KB.

25 Sep 2011

Actually, I posted the trimmed-of-fat step-by-step how-to on the notebook.

In 22 steps, with 2 downloads, and about 15 minutes work, its easy to setup a nice, easy to use chain.

My next hair-pulling session will probably take the chain and somehow wrap it into Code::Blocks...

My ultimate goal is a nice, clean IDE that is portable, and works on Windows... without internet access.

25 Sep 2011

Thanks for the detailed update.

Strange, I have never had to go through so many steps to get Code Sourcery to work on my Windows machines. Did you try using the "IA32 Windows Installer" from the Code Sourcery website? That is what I have always used in the past and I suspect that it takes care of fixing up the symbolic links, etc.

Looking through the rest of your steps, I do realize that I haven't told people to add the bins directory to their path. I will add that step to my notebook.

Thanks again,

Adam

26 Sep 2011

The actual steps weren't hard, once I figured out what was going on. Its a couple copy files and rename files.

As per path, it would be easier to set path in windows, however the batch method allows it to easily run from any computer with only needing to run the batch file, and modifies the path for that particular shell instance. The steps I give will result in C:\ARM and you can copy that folder to, say, a thumbdrive (they always how up as M or N on this machine) and fire up the batch script and have it work. I could pop it out, take it to school, pop it in, and it'd likely show up as E or F, and I can start up my batch file and have it all working.

I intend on making a machine independent codeblocks install to put inside the install... and will probably clean up the directory tree a bit.

Once I'm all completed, I can probably write a cmd script to handle setup if you'd like... then it'd be drop your zip file in a folder, drop the sourcery zip file in the folder, drop the codeblocks zip file in a folder... run the script... and have a working offline compiler ready to go.

26 Sep 2011

Yes, but I still don't understand why you used the "IA32 Windows TAR" file for installing on Windows and not the "IA32 Windows Installer". By default this installer will install to c:\Program Files\CodeSourcery and I have been able to copy the files from that location and put them into a git repository or thumb drive so that another machine could use them without requiring an install as well. This would get rid of almost all of the first 13 steps of your 22 steps process and is a lot less error prone.

26 Sep 2011

Felyza Wishbringer wrote:

Once I'm all completed, I can probably write a cmd script to handle setup if you'd like... then it'd be drop your zip file in a folder, drop the sourcery zip file in the folder, drop the codeblocks zip file in a folder... run the script... and have a working offline compiler ready to go.

That sounds pretty cool! I could also see where you would probably want to use the TAR for Windows in that automated scenario but for a typical Windows user who wants to get Code Sourcery installed on their machine, I think the install program is probably a much better way to go.

26 Sep 2011

Well, I made it a handy installer.

Here's how to have a working offline compiler, in case anyone might want one.

Step by Step

  1. Download this zip file (1.7MB)
  2. Extract it into a folder
  3. Run createcompiler.cmd

When it completes, you're done. Fully working offline compiler!

You can rename, copy, move, or whatever that folder and it'll keep working. The included shell.bat takes care of path for the session.
Check out the readme for more info.

(It uses gnuwin32 wget to download sourcery and gcc4mbed, and 7zip's command line version to extract them, then windows built-ins to set everything up. Most of the installer's file size is wget's dependencies...)

27 Sep 2011

Hi

Only 3 steps (and mainly watching): hard to improve.

Maybe extand it a bit by adding downloading the users projects and/or some IDE like NetBeans / Eclipse?

Personally I start to dislike Eclipse as it slows down more and more on my machines, so would opt for NetBeans?

Thanks for making it this damm easy!

wvd_vegt

27 Sep 2011

Hi

I tried to do mBed in visual studio and found the code & default c++ project needs some fixing for VS2010 to display intellisense and no errors.

Note: I installed the above offline compiler in c:\mbed. Note: The GCCFIXUPS IntelliSense Preprocessor Define should result in the fixups being for VS2010 only.

  1. I created a C++ project from external existing code.
  1. Project Properties|Configuration Properties|IntelliSense|Preprocessor Definitions:
   __ARMCC_VERSION;TARGET_LPC1768;GCCFIXUPS
  1. Project Properties|Configuration Properties|General|Build Command Line:
   c:\mbed\bin\make.bat
  1. Project Properties|Configuration Properties|General|ReBuild Command Line:
   c:\mbed\bin\make.bat
  1. Project Properties|Configuration Properties|VC++ Directories|Include Directories:
   C:\mBed\external\mbed;C:\mBed\external\mbed\LPC1768;$(IncludePath)
  1. Project Properties|Configuration Properties|General|Output Directory:
   $(ProjectDir)
  1. Project Properties|Configuration Properties|General|Intermediate Directory:
   $(ProjectDir)
  1. Project Properties|Configuration Properties|General|Build Log File:
   $(ProjectDir)\$(MSBuildProjectName).log
  1. In system_lpc17xx.h I added two lines to silence errors/warnings. These should be excluded when building:
#ifdef GCCFIXUPS
  typedef unsigned long int uint32_t; 
  #define __INLINE
#endif
  1. In core-cm3.h I added a dummy function to silence errors/warnings:
#ifdef GCCFIXUPS
   void __DSB() {
  	//Dummy 
   }
#endif
  1. I also modified make.bat a bit so it can be called from VS2010:
@echo off
call c:\mbed\bin\environment.bat
cs-make %*

After this, at least helloworld.cpp and the compiled librries show no warnings and IntelliSense happily works!

wvd_vegt

27 Sep 2011

Hello Felyza,

Thanks for your work. I just tried the offline compiler after doing what you explain below (all installation seems to be ok). But unfortunately i can't succeed in compiling the samples. I received many errors like : ../../external/mbed/PinNames.h:18:14: error: use of enum 'PinName' without previous declaration

Do you have an idea about about how to fix that ?

Regards.

Patrick

Felyza Wishbringer wrote:

Well, I made it a handy installer. ../../external/mbed/PinNames.h:18:14: error: use of enum 'PinName' without previ ous declaration Here's how to have a working offline compiler, in case anyone might want one.

Step by Step

  1. Download this zip file (1.7MB)
  2. Extract it into a folder
  3. Run createcompiler.cmd

When it completes, you're done. Fully working offline compiler!

You can rename, copy, move, or whatever that folder and it'll keep working. The included shell.bat takes care of path for the session.
Check out the readme for more info.

(It uses gnuwin32 wget to download sourcery and gcc4mbed, and 7zip's command line version to extract them, then windows built-ins to set everything up. Most of the installer's file size is wget's dependencies...)

27 Sep 2011

Hi,

Patrick Pollet wrote:

Thanks for your work. I just tried the offline compiler after doing what you explain below (all installation seems to be ok). But unfortunately i can't succeed in compiling the samples. I received many errors like : ../../external/mbed/PinNames.h:18:14: error: use of enum 'PinName' without previous declaration

I get the same errors (when compiling from VS2010 and Commandline).

It almost seems like the order of includes being processed is incorrect somehow.

wvd_vegt

27 Sep 2011

Patrick Pollet wrote:

I received many errors like : ../../external/mbed/PinNames.h:18:14: error: use of enum 'PinName' without previous declaration

This could happen if the mbed headers didn't get successfully patched. If you could, try rerunning the mbed install process manually and then show me the results you get. If you cd into the external directory and run cs-make from there, you should see something like the following (Note that I clipped files out of the svn checkout results to make it shorter.)

D:\github\gcc4mbed\external>dir
 Volume in drive D is New Volume
 Volume Serial Number is D428-3F7F

 Directory of D:\github\gcc4mbed\external

09/27/2011  11:05 AM    <DIR>          .
09/27/2011  11:05 AM    <DIR>          ..
09/27/2011  11:05 AM    <DIR>          FATFileSystem
09/19/2011  08:20 PM               889 FATFileSystem.patch
09/19/2011  08:20 PM    <DIR>          gcc
09/19/2011  08:20 PM             1,663 makefile
09/27/2011  11:05 AM    <DIR>          mbed
09/19/2011  08:20 PM             6,644 mbed.patch
09/19/2011  08:20 PM    <DIR>          win32
               3 File(s)          9,196 bytes
               6 Dir(s)  725,621,542,912 bytes free

D:\github\gcc4mbed\external>cs-make
rd /s /q mbed
win32\svn checkout --revision 28  http://mbed.org/projects/libraries/svn/mbed/trunk mbed
A    mbed\SPI.h
...
A    mbed\SPISlave.h
Checked out revision 28.
rd /s /q FATFileSystem
win32\svn checkout --revision 28  http://mbed.org/projects/libraries/svn/FATFile
System/trunk FATFileSystem
A    FATFileSystem\LPC2368
...
A    FATFileSystem\FATFileHandle.h
Checked out revision 28.
Skipping move mbed/LPC1768/LPC1768.sct  mbed/LPC1768/LPC1768.scatter
Skipping move mbed/LPC2368/LPC2368.sct  mbed/LPC2368/LPC2368.scatter
win32\patch --binary -p1 <mbed.patch
patching file mbed/DirHandle.h
patching file mbed/FileLike.h
patching file mbed/FileSystemLike.h
patching file mbed/PeripheralNames.h
patching file mbed/PinNames.h
patching file mbed/PortNames.h
patching file mbed/can_helper.h
win32\patch --binary -p1 <FATFileSystem.patch
patching file FATFileSystem/FATFileSystem.h
arm-none-eabi-objcopy -g mbed/LPC1768/mbed.ar
arm-none-eabi-objcopy -g mbed/LPC1768/capi.ar
arm-none-eabi-objcopy -g FATFileSystem/LPC1768/FATFileSystem.ar

Do you see the same successful patch messages for the mbed headers:

win32\patch --binary -p1 <mbed.patch
patching file mbed/DirHandle.h
patching file mbed/FileLike.h
patching file mbed/FileSystemLike.h
patching file mbed/PeripheralNames.h
patching file mbed/PinNames.h
patching file mbed/PortNames.h
patching file mbed/can_helper.h
27 Sep 2011

Patrick and Wim, what version of Windows are you running so that I can try to reproduce the problem? Windows 7 64-bit?

27 Sep 2011

Adam, I use Win 7 32 bits.

I tried to start "make" from "external" directory but it failed. So i patched all files manualy.

Now i can compile almost all the samples, only one failed. It's SDFileSystem. There's the folowing error :

./SDFileSystem/SDFileSystem.o:(.rodata._ZTV12SDFileSystem+0x30): undefined refer ence to `mbed::FATFileSystem::mkdir(char const*, unsigned int)' collect2: ld returned 1 exit status cs-make: * [SDFileSystem.elf] Error 1

I search for a while but i failed fixing this issue.

Patrick

28 Sep 2011

I also had patch.exe fail to run for me on Windows 7. It would only run if I started it from an elevated Command Prompt. It turns out that Windows requires anything with patch in its filename to be run from such an elevated privilege. I have updated the gcc4mbed project up on github to use a renamed patch executable.

If you try running Felyza's script again in a clean directory, it should pull down the updated gcc4mbed project.

28 Sep 2011

Hi...

Windows 7 X64... I simply Run createcompiler.cmd All sample build...

Very good job...

Thanks a lot... Seb

28 Sep 2011

/media/uploads/pbansal/capture.txt Hi,

I am trying to use the offline compiler for LPC2368 mbed module. I am facing issues while building the samples for LPC2368. Attached capture.txt will provide greater details.

I understand that current testing has not been done on mbed LPC2368. However provided some tips I can help to validate this on the mbed LPC2368.

I have used Adam's zip to set up the environment. /media/uploads/pbansal/capture.txt

Thanks

28 Sep 2011

Hi,

Windows7 x64 (installed in the root of C:, so no Program File protection).

I'm trying a fresh re-install to see if it makes any differences.

It gives some errors in the final part of the install (see the markers):

-------------------------------------------
Performing install build...
-------------------------------------------
cs-make -C external
cs-make[1]: Entering directory `C:/mBed2/external'
rd /s /q mbed
**** The system cannot find the file specified.
cs-make[1]: [install_mbed] Error 2 (ignored)
win32\svn checkout --revision 28  http://mbed.org/projects/libraries/svn/mbed/trunk mbed
A    mbed\SPI.h
A    mbed\PwmOut.h
A    mbed\Stream.h
A    mbed\DigitalInOut.h
A    mbed\SerialHalfDuplex.h
A    mbed\cmsis_nvic.h
A    mbed\wait_api.h
A    mbed\CAN.h
A    mbed\DigitalIn.h
A    mbed\DigitalOut.h
A    mbed\SPIHalfDuplex.h
A    mbed\PortNames.h
A    mbed\I2CSlave.h
A    mbed\PortIn.h
A    mbed\I2C.h
A    mbed\Ethernet.h
A    mbed\LPC1768
A    mbed\LPC1768\core_cm3.h
A    mbed\LPC1768\stackheap.o
A    mbed\LPC1768\system_LPC17xx.h
A    mbed\LPC1768\startup_LPC17xx.o
A    mbed\LPC1768\core_cm3.o
A    mbed\LPC1768\system_LPC17xx.o
A    mbed\LPC1768\mbed.ar
A    mbed\LPC1768\cmsis_nvic.o
A    mbed\LPC1768\LPC1768.sct
A    mbed\LPC1768\LPC17xx.h
A    mbed\LPC1768\capi.ar
A    mbed\PeripheralNames.h
A    mbed\Timer.h
A    mbed\InterruptIn.h
A    mbed\rpc.h
A    mbed\platform.h
A    mbed\Timeout.h
A    mbed\FunctionPointer.h
A    mbed\AnalogIn.h
A    mbed\error.h
A    mbed\FileSystemLike.h
A    mbed\AnalogOut.h
A    mbed\DirHandle.h
A    mbed\FileHandle.h
A    mbed\LocalFileSystem.h
A    mbed\can_helper.h
A    mbed\PortInOut.h
A    mbed\rtc_time.h
A    mbed\mbed.h
A    mbed\BusInOut.h
A    mbed\PinNames.h
A    mbed\Base.h
A    mbed\LPC2368
A    mbed\LPC2368\stackheap.o
A    mbed\LPC2368\core_arm7.h
A    mbed\LPC2368\system_LPC23xx.o
A    mbed\LPC2368\vector_table.o
A    mbed\LPC2368\vector_defns.h
A    mbed\LPC2368\vector_functions.o
A    mbed\LPC2368\mbed.ar
A    mbed\LPC2368\LPC2368.sct
A    mbed\LPC2368\LPC23xx.h
A    mbed\LPC2368\cmsis_nvic.o
A    mbed\LPC2368\vector_realmonitor.o
A    mbed\LPC2368\core_arm7.o
A    mbed\LPC2368\capi.ar
A    mbed\LPC2368\system_LPC23xx.h
A    mbed\PortOut.h
A    mbed\cmsis.h
A    mbed\Serial.h
A    mbed\BusIn.h
A    mbed\BusOut.h
A    mbed\Ticker.h
A    mbed\TimerEvent.h
A    mbed\FileLike.h
A    mbed\SPISlave.h
Checked out revision 28.
rd /s /q FATFileSystem
**** The system cannot find the file specified.
cs-make[1]: [install_fat] Error 2 (ignored)
win32\svn checkout --revision 28  http://mbed.org/projects/libraries/svn/FATFile
System/trunk FATFileSystem
A    FATFileSystem\LPC2368
A    FATFileSystem\LPC2368\FATFileSystem.ar
A    FATFileSystem\ff.h
A    FATFileSystem\integer.h
A    FATFileSystem\LPC1768
A    FATFileSystem\LPC1768\FATFileSystem.ar
A    FATFileSystem\FATFileSystem.h
A    FATFileSystem\diskio.h
A    FATFileSystem\FATDirHandle.h
A    FATFileSystem\FATFileHandle.h
Checked out revision 28.
Skipping move mbed/LPC1768/LPC1768.sct  mbed/LPC1768/LPC1768.scatter
Skipping move mbed/LPC2368/LPC2368.sct  mbed/LPC2368/LPC2368.scatter
win32\applydiff --binary -p1 <mbed.patch
patching file mbed/DirHandle.h
patching file mbed/FileLike.h
patching file mbed/FileSystemLike.h
patching file mbed/PeripheralNames.h
patching file mbed/PinNames.h
patching file mbed/PortNames.h
patching file mbed/can_helper.h
win32\applydiff --binary -p1 <FATFileSystem.patch
patching file FATFileSystem/FATFileSystem.h
arm-none-eabi-objcopy -g mbed/LPC1768/mbed.ar
arm-none-eabi-objcopy -g mbed/LPC1768/capi.ar
arm-none-eabi-objcopy -g FATFileSystem/LPC1768/FATFileSystem.ar
cs-make[1]: Leaving directory `C:/mBed2/external'
Done.}}}

Fixed the errors during installation by changing creating the directories being removed before calling cs-make like:

{{{
echo -------------------------------------------
echo Performing install build...
echo -------------------------------------------
choice /c:qw /d:q /t:2 > NUL
set PATH=%~dp0arm-none-eabi\bin;%PATH%

rem veg - added
md external\mbed
md external\FATFileSystem

cs-make install_mbed
echo Done.

After this change I can compile HelloWorld without errors.

When I try to run make in my old setup I get an elevated popup when patch is about to run (which i did not see before). This setup now also works (so it seems like a matter of creating the two directories inside external).

wvd_vegt

28 Sep 2011

The rd errors can be ignored. It should have still built HelloWorld even with those errors. The patch process failing is what caused the build errors that you were seeing before.

PS: I will modify the gcc4mbed makefile to silently eat those rd errors as they are nothing to worry about on a clean machine.

28 Sep 2011

Hi,

Togheter with the code adjustments for VS2010 I'm happy to tell that is seems to work like charm (for HelloWorld) according to the VS2010 build output:

1>------ Build started: Project: HelloWorld, Configuration: Debug Win32 ------
1>  
1>  Setting up environment for ARM compilaton using c:\mBed\bin\.
1>  .
1>  C:\mBed\samples\HelloWorld
1>  .
1>  arm-none-eabi-g++ -mcpu=cortex-m3 -mthumb -O2 -Wl,-Map=HelloWorld.map,--cref,--gc-sections,--no-wchar-size-warning -T../../build/mbed.ld -L ../../external/gcc/LPC1768 ../../src/gcc4mbed.o ../../src/syscalls.o  ./main.o  ../../external/mbed/LPC1768/mbed.ar ../../external/mbed/LPC1768/capi.ar ../../external/FATFileSystem/LPC1768/FATFileSystem.ar  -o HelloWorld.elf
1>  arm-none-eabi-size HelloWorld.elf
1>     text	   data	    bss	    dec	    hex	filename
1>    23072	   1376	    104	  24552	   5fe8	HelloWorld.elf
1>  arm-none-eabi-objcopy -R .stack -O ihex HelloWorld.elf HelloWorld.hex
1>  arm-none-eabi-objcopy -O binary HelloWorld.elf HelloWorld.bin
1>  arm-none-eabi-objdump -d HelloWorld.elf >HelloWorld.disasm
========== Build: 1 succeeded, 0 failed, 0 up-to-date, 0 skipped ==========

Some things left to do are:

  1. get rid of win32 at the top of the log (add a proper build type).
  2. a clean.bat file to delete *.bn, *.disasm, *.elf, *.hex, *.log and *.map.
  3. write a small util to find the mbed drive letter and copt a file to it.

wvd_vegt

28 Sep 2011

Wim van der Vegt wrote:

a clean.bat file to delete *.bn, *.disasm, *.elf, *.hex, *.log and *.map.

If you run "make clean" it will do this for you. A rebuild should work from a "make clean all" command

Wim van der Vegt wrote:

write a small util to find the mbed drive letter and copt a file to it.

If you check my Notebook page, you will also find information on the LPC_DEPLOY environment variable and how it can be used with "make deploy" to automatically copy the resulting binary to the device.

28 Sep 2011

Hi,

I already tweaked the make.bat to:

@echo off
cls

@echo Setting up environment for ARM compilaton using %~dp0.
@set PATH=%~dp0;%~dp0..\arm-none-eabi\bin;
echo Path:
path

echo .
echo Determining Project Name:
for %%a in (%CD%) do set projectname=%%~nxa
echo %projectname%
title %projectname%

echo .
echo Current (Project) Directory:
cd

echo .
echo Removing Old Build:
if exist %projectname%.bin (
	del %projectname%.bin
	echo Deleted %projectname%.bin
)
if exist %projectname%.disasm (
	del %projectname%.disasm
	echo Deleted %projectname%.disasm
)	
if exist %projectname%.elf (
	del %projectname%.elf
	echo Deleted %projectname%.elf
)	
if exist %projectname%.hex (
	del %projectname%.hex
	echo Deleted %projectname%.hex
)
if exist %projectname%.log (
	del %projectname%.log
	echo Deleted %projectname%.log
)
if exist %projectname%.map (
	del %projectname%.map
	echo Deleted %projectname%.map
)

echo .
echo Building Project %projectname%:
echo .

cs-make %*

Which is good enough for me. It replaces the path (which isn't a problem for a command run from within VS2010 and determins the prohjectname (should match the last directory of the Path).

I'll have to look into the clean option (and try it as a separate VS2010 Build command).

wvd_vegt

28 Sep 2011

That's pretty cool!

I would recommend using the clean option in the makefile if you can since if new files get added to the gcc4mbed build process over time, the clean target in the makefile will be updated for you and you won't have to figure out what changed and add it to your batch file.

28 Sep 2011

Hi Adam

Somehow VS2010 trips on make with a clean option. I'll have look into it (maybe a separate batch file will do).

wvd_vegt

28 Sep 2011

Prashant Bansal wrote:

/media/uploads/pbansal/capture.txt I am trying to use the offline compiler for LPC2368 mbed module.

Just as a heads up, in case you didn't read the readme.creole for the gcc4mbed tool... gcc4mbed currently only works with the LPC1768. Neither Adam, nor most of the rest of us, have the LPC2368, so getting it working will be a different beast entirely.

A couple options for you...

  1. Wait patiently for either Adam to get an LPC2368, which may or may not happen.
  2. Purchase an LPC1768 header module.
  3. Patiently and calmly work with Adam to try and devise fixes for the LPC2368.
  4. Devise your own offline compiler patches.

Breakdown on options...

  1. If you have absolutely no idea what you're doing and broke.
  2. If you have absolutely no idea what you're doing and can afford it.
  3. If you have a clue, some time, and are willing to help.
  4. If you're a pro and have a lot of time.

(Not meant to be a slight in any way... a couple other students bought the mbed header boards to play with in class since they saw me working on an OLED driver... and none of them know the first thing about programming... sigh.)

Personally, I'd suggest #3. If Adam isn't willing to give it a shot, perhaps I could. There's a lot less information on your header, but if you can work with some experimentation to get it running then perhaps it can be added. I'm just not looking forward to finding the correct ld script.

-

Wim, regarding the script not working with VS2010... I don't have VS2010. You shouldn't need elevated privileges if its in a folder you have full access to (such as Desktop, Documents, etc) ... if you go with the example of C:\ARM then it may need the elevated privilege. You can open properties on the cmd file and set 'run as administrator'. If something else broke, then, that's another matter because it worked for me, worked on 2 computers at school (one XP the other XP x64), worked on Windows 7 x64, Windows 7 x86, and a Vista x86. The only windows I haven't tested is Vista x64. I assume all users must have had elevated privileges, since I never had any issues with patch and all were done either in c:\arm or c:\dev.

Later, after I mow the yard (I hate manual labor) I was going to give netbeans a shot. Still looking for a good IDE that I can add to the installer. I'm also considering trying to make a better installer than the cmd script. This project has become my 'I'm tired of staring at my I2C code to figure out why it doesn't want to talk to my display' project. ;) That project still has priority #1, since it's the current major hurdle in my course.