Page 2 of 2

Re: BricxCC Command Center Error - Unknown GNU error code(-255)

Posted: 09 Oct 2013, 23:14
by sehoonha
Hi,

I didn't put "lmsapi" into the path.
(I once tried it, but nothing changed..)
Instead, I put the linux tools(make and rm) into the CSLITE/bin directory.

I wonder those two files are not compatible with my system or something..

Re: BricxCC Command Center Error - Unknown GNU error code(-255)

Posted: 09 Oct 2013, 23:26
by totokan
I tried to emulate a failure in make and rm (I moved them out of my path) and it did not produce any errors with the test file compiling. Therefore, I do not think that they are causing your issue.

Re: BricxCC Command Center Error - Unknown GNU error code(-255)

Posted: 10 Oct 2013, 01:08
by afanofosc
I would tell BricxCC to keep the makefile it generates. That option is on the Compilers page, Common tab. It will be called the same as the program you are trying to compile with a .mak extension. After trying to compiler please post both the .mak and the source code file you are trying to compile (in code blocks, preferrably).

Please, I beg, keep all the API files in the same folder as your source code for now and do not put paths into the .prj file manually. It is simple enough to do and doesn't cause any problems (i.e., using one folder for all the files). It is not impossible that DOS-style paths are causing trouble since make and the gcc prefer unix-style paths. You don't need to worry about paths if you just leave everything in one folder, like I have recommended for the time being. Eventually I will add proper support for paths in the project file and all that sort of thing.

If you could provide more details it would help. Are you for certain picking EV3 as the brick type, Linux as the firmware type, and USB as the port? Are you for certain using the 20131007 test release of BricxCC? What is the code you are trying to compile? Did you try compiling any of the test programs in my lms_api.zip (http://bricxcc.sourceforge.net/test_rel ... ms_api.zip)? When you open a command prompt and type "make --version" what does it say? Have you reset the Compiler tab back to its default values in case something there is wrong?

This is another example of why I strongly prefer email to help solve problems with very early versions of pre-release software. Once the problem is solved then a post that describes the problem and its solution would be far more beneficial to the community than several back and forth before it (with any luck) eventually gets solved. I will almost certainly see the problem earlier and it will get fixed faster and if by some odd chance it involves user error there will be no embarrassing moments for anyone.

John Hansen

Re: BricxCC Command Center Error - Unknown GNU error code(-255)

Posted: 10 Oct 2013, 20:30
by sehoonha
Hi,

thanks for all your help, I resolve the problem.

The was due to the version of "make.exe", which was in the package.
The version was 3.80, and it keep generating the following error when I tested in command line.
make: Interrupt/Exception caught (code = 0xc00000fd, addr = 0x4ff283)

After I upgrade it to 3.82.90, the problem was gone.
Here's a link to the new make.exe I used.
https://dl.dropboxusercontent.com/u/576 ... 2-make.zip
Probably you should rename it.

If some of you want to update your tutorial, feel free to grab that file :)

Re: BricxCC Command Center Error - Unknown GNU error code(-255)

Posted: 12 Oct 2013, 16:54
by afanofosc
I'm glad that you were able to sort out this error. On my Win7 x64 laptop I don't have any trouble with the 3.80 build of make. CodeSourcery Lite comes with cs-make.exe and cs-rm.exe which you can copy and rename as make.exe and rm.exe which should work fine too. The version of make that comes with CodeSourcery Lite is 3.81. Can you try that one to see if it works or not?

John Hansen

Re: BricxCC Command Center Error - Unknown GNU error code(-255)

Posted: 12 Oct 2013, 20:25
by cezarro777
Hi everyone,

I can confirm I'm getting the same error while compiling the test.c project.

I've went through the walkthrough available at https://docs.google.com/document/d/1tA2 ... sBtro/edit (thanks Totokan)

Install paths:
C:\CSLITE
C:\BricxCC

Code path:
C:\EV3\Test\test.prj
C:\EV3\Test\test.c <- this is the source i'm trying to build.

Code: Select all

#include <stdio.h>
#include <unistd.h>

#include "./lmsapi/ev3_lcd.h"
#include "./lmsapi/ev3_command.h"

int main()
{
  int i;
  LcdInit();
  LcdText(1, 0, 0, "Everything is working!");
  Wait(SEC_1);
  LcdExit();
}
C:\EV3\Test\test.mak <- this is the file generated by BricxCC after enabling the keep option in Compilers page
C:\EV3\Test\lmsapi\ <- copied all the .h and .c files here

I've attached an archive of the C:\EV3 folder.

I have Windows 8 machine. PATH variable:
C:\CSLITE\bin;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\;C:\VXIPNP\WinNT\Bin

Using BricxCC version 3.3.8.11

Best Regards,
Cezar

Re: BricxCC Command Center Error - Unknown GNU error code(-255)

Posted: 12 Oct 2013, 20:37
by cezarro777
UPDATE:
Following John's reccomendation, I have renamed (with copy)
C:\CSLITE\bin\cs-make.exe and
C:\CSLITE\bin\cs-rm.exe

to

C:\CSLITE\bin\make.exe
C:\CSLITE\bin\rm.exe

Now the compiler is starting and I'm getting some output:

Code: Select all

rm: cannot remove `*.o': Invalid argument
rm: cannot remove `*.ppu': Invalid argument
rm: cannot remove `*.rst': Invalid argument
make: *** [clean] Error 1
Recap, EV3 target board, Linux as firmware, board version 1.03H

Code I'm trying to compile is same as above. I've attached again makefile generated.

Regards,
Cezar

Re: BricxCC Command Center Error - Unknown GNU error code(-255)

Posted: 12 Oct 2013, 21:18
by afanofosc
Apparently the cs-rm.exe included in CodeSourcery Lite is not a standard rm. You will need to use the rm.exe from the linux_tools.zip included in my test release zip. You should be able to use cs-make.exe copied and renamed to make.exe but definitely not cs-rm.exe.

Earlier today I replaced the 20131007 test release zip with a new one that includes a linux_tools.zip that contains the cs-make.exe renamed to make.exe (i.e., version 3.81).

John Hansen

Re: BricxCC Command Center Error - Unknown GNU error code(-255)

Posted: 12 Oct 2013, 21:40
by afanofosc
You will probably get linker errors if you do not add -Llmsapi to the LDFLAGS variable in the makefile. It also looks like you have an old makefile template which can be fixed by clicking the Default button on the Compiler tab (if you have the 20131007 test release).

Here's a generated makefile that shows how you can use relative paths for library sources:

Code: Select all

PROGRAM=ex_RotateMotor
DOBJECTS=lmsapi/ev3_command.o lmsapi/ev3_output.o 
TOOLPREFIX=arm-none-linux-gnueabi-

all:: realclean $(DOBJECTS) $(PROGRAM)

download:: all

#pscp -scp -pw "" ex_RotateMotor [email protected]:/media/card

clean::
	rm -f *.o *.ppu *.rst

realclean:: clean
	rm -f $(PROGRAM)

FLAGS=-Ilmsapi
LDFLAGS=-Wl,-R/media/card/lib -Llmsapi

CC=$(TOOLPREFIX)gcc

# how to link executable
ex_RotateMotor: ex_RotateMotor.c
	$(CC) $(FLAGS) $(LDFLAGS) $< -o$@ lmsapi/ev3_command.o lmsapi/ev3_output.o 

# how to compile source
%.o: %.c
	$(CC) $(FLAGS) -c $< -o$@

To get a makefile that looks like this you would add lmsapi/ev3_command.c and lmsapi/ev3_output.c to the .prj file (manually adding the unix-style relative paths). I have in this case edited the LDFLAGS variable in the template to add -Llmsapi (defining the relative lmsapi folder as a library path). I have also put -Ilmsapi (that's a capital i followed by lmsapi) in the Flags field. This value replaces the %FLAGS% token in the template.

If you want to link to the libev3.so shared library (and copy it to a lib folder on your micro SD card) then check the box on the EV3 page, leave the project manager window empty, and then add -Llmsapi to the LDFLAGS variable in addition to setting the include path via the Flags field.

The commented out pscp line shows you how you could transfer the binary to the EV3 if you have started dropbear on the EV3 and are connected either via wifi or wired ethernet. You would need to have putty installed and on your path.

John Hansen