To LUGNET HomepageTo LUGNET News HomepageTo LUGNET Guide Homepage
 Help on Searching
 
Post new message to lugnet.robotics.nxt.nxthackingOpen lugnet.robotics.nxt.nxthacking in your NNTP NewsreaderTo LUGNET News Traffic PageSign In (Members)
 Robotics / NXT / NXT Firmware Hacking / 4
  GCC vs. IAR compiler: Could GCC be tweaked to generate code as tight as IAR?
 
Hi, If I compile the LEGO firmware sources with gcc, the code size increases much beyond the 128 KB (which I think) the IAR compiled sources fits into. That means that one have to relocate part of the compiled code into the memory areas between (...) (17 years ago, 14-Mar-07, to lugnet.robotics.nxt.nxthacking)
 
  Re: GCC vs. IAR compiler: Could GCC be tweaked to generate code as tight as IAR?
 
Regarrding overwriting the flash system. I encountered the problem of flash file system overwriting user code as well. It's because it is hard coded in the code the starting address of the file system. There's a constant named "STARTOFUSERFLASH" (...) (17 years ago, 14-Mar-07, to lugnet.robotics.nxt.nxthacking)
 
  Re: GCC vs. IAR compiler: Could GCC be tweaked to generate code as tight as IAR?
 
(...) Are you adjusting these values in d_loader.h? #define STARTOFFILETABLE (0x13FF00L) #define STARTOFUSERFLASH (0x11F000L) #define SIZEOFUSERFLASH (STARTOFFILETABLE - STARTOFUSERFLASH) I've been told by folks at LEGO that if I grow the size of (...) (17 years ago, 14-Mar-07, to lugnet.robotics.nxt.nxthacking)
 
  Re: GCC vs. IAR compiler: Could GCC be tweaked to generate code as tight as IAR?
 
(...) More precisely, I was told to increase the STARTOFUSERFLASH value if I increased the firmware size beyond the current value. The unmodified source code compiles to 121324 bytes using the current evaluation version of the IAR Embedded Workbench (...) (17 years ago, 14-Mar-07, to lugnet.robotics.nxt.nxthacking)
 
  Re: GCC vs. IAR compiler: Could GCC be tweaked to generate code as tight as IAR?
 
(...) Have you experimented at all with the compiler optimisation flags? I don't know if all of them are supported for the ARM architecture, and some options cause problems on other architectures, but there's a bit of a list here: (URL) removing (...) (17 years ago, 14-Mar-07, to lugnet.robotics.nxt.nxthacking)
 
  Re: GCC vs. IAR compiler: Could GCC be tweaked to generate code as tight as IAR?
 
(...) I did not do so. The memory map in LEGO_MINDSTORMS_NXT_..._v1.03.bin is like this for the files: 0x11F000-0x12E99D Actual files like Demo.rxe 0x13FF00-0x13FF37 FILE_HANDLE(s) 0x13FFFC-0c13FFFF FILEVERSION The nxtgcc stuff compiles to 126176 (...) (17 years ago, 14-Mar-07, to lugnet.robotics.nxt.nxthacking)
 
  Re: GCC vs. IAR compiler: Could GCC be tweaked to generate code as tight as IAR?
 
... (...) I have not done that. Well, just a little bit:-). The best one (not surprisingly) is the "-Os" optimization, which does this "Optimize for size. -Os enables all -O2 optimizations that do not typically increase code size." (...) I tried (...) (17 years ago, 14-Mar-07, to lugnet.robotics.nxt.nxthacking)
 
  Re: GCC vs. IAR compiler: Could GCC be tweaked to generate code as tight as IAR?
 
(...) LEGO is using a slightly older version of IAR Embedded Workbench. Maybe that explains it. Or maybe its a 1.03 vs 1.04 source code difference. (...) I have been told that the following is the standard operating procedure for generating the (...) (17 years ago, 15-Mar-07, to lugnet.robotics.nxt.nxthacking)
 
  Re: GCC vs. IAR compiler: Could GCC be tweaked to generate code as tight as IAR?
 
(...) Hi Dick Swan, That is a nice flexible way of doing it. I will see if I can figure it out in gcc. Thanks for the idea. (...) Well...I have -=Os on, which are all size reducing features. The actual "problem" can also be this packed stuff that we (...) (17 years ago, 15-Mar-07, to lugnet.robotics.nxt.nxthacking)
 
  Re: GCC vs. IAR compiler: Could GCC be tweaked to generate code as tight as IAR?
 
(...) OK. This is good info!!! It is hard to guess that this was the way to do it. It also makes some sense for LEGO to use their file manager to do this rather than having a second tool replicate a filemanager on the host and insert it at compile (...) (17 years ago, 15-Mar-07, to lugnet.robotics.nxt.nxthacking)
 
  Re: GCC vs. IAR compiler: Could GCC be tweaked to generate code as tight as IAR?
 
(...) I read a paper that attributed most of the code size increases in gcc generated code to the printf library - search for AN52-ARM-C-Benchmark.pdf to read the paper. Out of curiosity I built the firmware using the newlib libc and the gcc 4.1.1 (...) (17 years ago, 5-Apr-07, to lugnet.robotics.nxt.nxthacking)

©2005 LUGNET. All rights reserved. - hosted by steinbruch.info GbR