Shop OBEX P1 Docs P2 Docs Learn Events
Propeller Chip runs a mostly unmodified Arduino program (video) - Page 2 — Parallax Forums

Propeller Chip runs a mostly unmodified Arduino program (video)

24

Comments

  • Martin_HMartin_H Posts: 4,051
    edited 2013-06-12 05:52
    If it would help you any with this project, I'd comp you an ASC. PM me your address.

    Thanks Martin, that's quite generous. I'll PM it to you shortly.
    cavelamb wrote: »
    Here is the thing I've been pondering...

    I'm just not confident enough of my coding skills to tackle it by myself.

    I skimmed the code and I bet the port wouldn't be that hard. There's liberal use of the PROGMEM annotation that I've been ignoring up to now, becuase that's a NOP in Propeller CMM or LMM. However, it might confuse people so I should find a way to deal with it.

    I plan to post base level 2 of my code this weekend. It will have the additional functions I mentioned above plus servo support.
  • Martin_HMartin_H Posts: 4,051
    edited 2013-06-13 10:10
    Right now I've been building and testing my code by having my library files in the same project as my test program. I then swap the test program to exercise different library functions. While this works OK I would prefer to create a library project and link separate test projects with it. The way the Arduino works is that you have a main in the library which has two callbacks to the user code. They are setup and loop and the code looks like this:
    int main(void)
    {
    	setup();
    
    	for (;;) {
    		loop();
    	}
        
    	return 0;
    }
    

    When I compile this I get an error that those two functions are not defined. Which makes sense because I want the program that links with the library to do so. Here's what it looks like:
    Project Directory: C:/Users/a231861/Documents/SimpleIDE/My Projects/Propelleruino/
    
    propeller-elf-c++ -I . -L . -Os -mcmm -m32bit-doubles -fno-exceptions -fno-rtti -c nonstdlib.cpp -o cmm/nonstdlib.opp
    propeller-elf-c++ -I . -L . -Os -mcmm -m32bit-doubles -fno-exceptions -fno-rtti -c Print.cpp -o cmm/Print.opp
    propeller-elf-c++ -I . -L . -Os -mcmm -m32bit-doubles -fno-exceptions -fno-rtti -c Stream.cpp -o cmm/Stream.opp
    propeller-elf-c++ -I . -L . -Os -mcmm -m32bit-doubles -fno-exceptions -fno-rtti -c WMath.cpp -o cmm/WMath.opp
    propeller-elf-c++ -I . -L . -Os -mcmm -m32bit-doubles -fno-exceptions -fno-rtti -c WString.cpp -o cmm/WString.opp
    propeller-elf-ar.exe rs cmm/Propelleruino.a cmm/nonstdlib.opp cmm/Print.opp cmm/Stream.opp cmm/WMath.opp cmm/WString.opp
    propeller-elf-ar.exe: creating cmm/Propelleruino.a
    
    propeller-elf-c++ -I . -L . -o cmm/Propelleruino.elf -Os -mcmm -m32bit-doubles -fno-exceptions -fno-rtti Propelleruino.cpp cmm/Propelleruino.a
    C:\Users\a231861\AppData\Local\Temp\ccaiiMjO.o: In function `_main':
    
    (.text+0x3): undefined reference to `_setup'
    
    C:\Users\a231861\AppData\Local\Temp\ccaiiMjO.o: In function `_main':
    
    (.text+0x6): undefined reference to `_loop'
    
    collect2: ld returned 1 exit status
    
    Done. Build Failed!
    
    Check source for bad function call or global variable name `_setup'
    
    C:\Users\a231861\AppData\Local\Temp\ccaiiMjO.o: In function `_main':
    
    (.text+0x6): 
    

    Anything I'm missing?
  • ersmithersmith Posts: 6,053
    edited 2013-06-13 10:46
    (1) Did you in fact define functions named setup() and loop()?

    (2) Were those functions declared in a header file? Particularly in C++ it is important that the function prototypes match for all uses and declarations, because C++ will modify the function names to include parameter and return types. So for example, if one C++ file has:
    extern void loop();
    ...
    loop();
    
    and it is linked with a C++ file that has:
    int loop(void) {
    }
    
    then there will probably be a linker error, because the function signatures won't match.

    Eric
  • Martin_HMartin_H Posts: 4,051
    edited 2013-06-13 12:17
    ersmith wrote: »
    (1) Did you in fact define functions named setup() and loop()?

    Those are to be defined in the program which links the library.
    ersmith wrote: »
    (2) Were those functions declared in a header file? Particularly in C++ it is important that the function prototypes match for all uses and declarations, because C++ will modify the function names to include parameter and return types. So for example, if one C++ file has:

    This is all good. I have a header file with the functions defined. If the program and library source are in the same project it all works. The problem is that those functions are not available while the library is being linked.
  • Heater.Heater. Posts: 21,230
    edited 2013-06-13 12:35
    I have no idea about how the Arduino programs are put together. But looking at what you say it seems as if you have to build the thing "backwards".

    You don't build your program as a normal program (with a main) which uses libraries but rather as a library that provides setup and loop functions. The actual program being built is whatever contains main() which then get's linked against you app, which is a library, and other libraries.
  • Martin_HMartin_H Posts: 4,051
    edited 2013-06-13 13:00
    Heater, that's what I was afraid of. I've usually done exactly what you say, but someone the Arduino IDE does it backwards. Their library contains main.cpp and your code implements setup and loop.
  • jazzedjazzed Posts: 11,803
    edited 2013-06-13 20:36
    Just make setup() and loop() weak functions. See attached.
    weak The weak attribute causes the declaration to be emitted as a weak symbol rather than a global. This is primarily useful in defining library functions that can be overridden in user code, though it can also be used with non-function declarations. Weak symbols are supported for ELF targets, and also for a.out targets when using the GNU assembler and linker.

    http://gcc.gnu.org/onlinedocs/gcc/Function-Attributes.html
  • Martin_HMartin_H Posts: 4,051
    edited 2013-06-14 06:10
    Thanks! Interesting I think the Arduino IDE does this by physically merging your sketch with their main.cpp. Weak functions seems more more elegant.
  • Martin_HMartin_H Posts: 4,051
    edited 2013-06-14 07:23
    Good news bad news. The weak functions worked and I'm able to build the library code separately from the project. But it fails in the link step as it is unable to find the library. Note that I added and include and library directives and they are present on the command line. Here's the error:
    Project Directory: C:/Users/a231861/Documents/SimpleIDE/My Projects/Ticker/
    
    propeller-elf-c++ -I . -L . -I ../Propelleruino -L ../Propelleruino/cmm/ -o cmm/Ticker.elf -Os -mcmm -m32bit-doubles -fno-exceptions -fno-rtti -ffunction-sections -fdata-sections -Wl,--gc-sections -Wl,--print-gc-sections Ticker.cpp -ltiny -lPropelleruino -ltiny -lPropelleruino
    c:/users/a231861/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: cannot find -lPropelleruino
    
    c:/users/a231861/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: cannot find -lPropelleruino
    
    collect2: ld returned 1 exit status
    
    Done. Build Failed!
    

    Attached is the project and dependent library:

    Ticker.zip
  • Dave HeinDave Hein Posts: 6,347
    edited 2013-06-14 08:26
    It builds if you remove the -lPropelleruino from the linker options. I believe the -l option looks for a library with the name libfilename.a, so -lPropelleruino will look for libPropelleruino.a. The fact that it builds without -lPropelleruino means that it's not even using the library. How do you include the main function into your code without the library? BTW, I wasn't able to build the library either.

    EDIT: It seems that the options for removing unused code are allowing an elf file to be built without the main routine. If I remove these options I get the expected errors about the missing main routine, and also the missing library routines. I'm using an older version of the tools, so the unused code options may not be working correctly with that version.
  • jazzedjazzed Posts: 11,803
    edited 2013-06-14 09:01
    There are 2 issues:

    1) A SimpleIDE library project must begin with lib, i.e. libPropelleruino (see Help -> SimpleIDE User Guide)
    2) Functions main, setup, and loop must be in a separate libPropellerino library file

    I've fixed those in the attached .zip file.

    Looks like Serial.cpp/h are missing from the library. I resorted to puts("hello") for testing.
  • Martin_HMartin_H Posts: 4,051
    edited 2013-06-14 09:21
    Thanks for the help and being patient. I'm not sure why Serial has gone AWOL in the unloaded copy. I tried to create the library twice and must have botched it in the second try.
  • Martin_HMartin_H Posts: 4,051
    edited 2013-06-16 11:07
    Jazzed, I think there might be something wrong with the newer build of propgcc when using the flags to exclude unused code. I can build just fine, but I can't load EPROM or RAM with it, but if I switch back to an older version of the project which I can compile without the flags, then the upload works fine. Below is the output:

    [code]
    Project Directory: C:/Users/Martin/Documents/SimpleIDE/My Projects/Ticker/

    propeller-elf-c++ -I . -L . -I ./library/libPropelleruino -L ./library/libPropelleruino/cmm/ -o cmm/Ticker.elf -Os -mcmm -m32bit-doubles -fno-exceptions -fno-rtti -ffunction-sections -fdata-sections -Wl,--gc-sections -Wl,--print-gc-sections Ticker.cpp -lPropelleruino
    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.boot' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/cmm/short-doubles/spinboot.o'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.lmmkernel' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/cmm/short-doubles/_crt0.o'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.init' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/cmm/short-doubles/_crtbegin.o'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.fini' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/cmm/short-doubles/_crtbegin.o'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text.setup' in file 'C:\Users\Martin\AppData\Local\Temp\ccOq9lGh.o'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text.loop' in file 'C:\Users\Martin\AppData\Local\Temp\ccOq9lGh.o'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text.startup._GLOBAL__sub_I_numberOfHorizontalDisplays' in file 'C:\Users\Martin\AppData\Local\Temp\ccOq9lGh.o'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.ctors' in file 'C:\Users\Martin\AppData\Local\Temp\ccOq9lGh.o'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.bss.width' in file 'C:\Users\Martin\AppData\Local\Temp\ccOq9lGh.o'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.data.spacer' in file 'C:\Users\Martin\AppData\Local\Temp\ccOq9lGh.o'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.data.wait' in file 'C:\Users\Martin\AppData\Local\Temp\ccOq9lGh.o'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.data.tape' in file 'C:\Users\Martin\AppData\Local\Temp\ccOq9lGh.o'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.bss.matrix' in file 'C:\Users\Martin\AppData\Local\Temp\ccOq9lGh.o'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.data.numberOfVerticalDisplays' in file 'C:\Users\Martin\AppData\Local\Temp\ccOq9lGh.o'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.data.numberOfHorizontalDisplays' in file 'C:\Users\Martin\AppData\Local\Temp\ccOq9lGh.o'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN12Adafruit_GFX11constructorEss' in file './library/libPropelleruino/cmm/\libPropelleruino.a(Adafruit_GFX.opp)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN12Adafruit_GFX10drawCircleEssst' in file './library/libPropelleruino/cmm/\libPropelleruino.a(Adafruit_GFX.opp)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN12Adafruit_GFX16drawCircleHelperEsssht' in file './library/libPropelleruino/cmm/\libPropelleruino.a(Adafruit_GFX.opp)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN12Adafruit_GFX16fillCircleHelperEssshst' in file './library/libPropelleruino/cmm/\libPropelleruino.a(Adafruit_GFX.opp)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN12Adafruit_GFX10fillCircleEssst' in file './library/libPropelleruino/cmm/\libPropelleruino.a(Adafruit_GFX.opp)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN12Adafruit_GFX8drawLineEsssst' in file './library/libPropelleruino/cmm/\libPropelleruino.a(Adafruit_GFX.opp)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN12Adafruit_GFX8drawRectEsssst' in file './library/libPropelleruino/cmm/\libPropelleruino.a(Adafruit_GFX.opp)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN12Adafruit_GFX13drawFastVLineEssst' in file './library/libPropelleruino/cmm/\libPropelleruino.a(Adafruit_GFX.opp)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN12Adafruit_GFX13drawFastHLineEssst' in file './library/libPropelleruino/cmm/\libPropelleruino.a(Adafruit_GFX.opp)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN12Adafruit_GFX8fillRectEsssst' in file './library/libPropelleruino/cmm/\libPropelleruino.a(Adafruit_GFX.opp)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN12Adafruit_GFX10fillScreenEt' in file './library/libPropelleruino/cmm/\libPropelleruino.a(Adafruit_GFX.opp)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN12Adafruit_GFX13drawRoundRectEssssst' in file './library/libPropelleruino/cmm/\libPropelleruino.a(Adafruit_GFX.opp)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN12Adafruit_GFX13fillRoundRectEssssst' in file './library/libPropelleruino/cmm/\libPropelleruino.a(Adafruit_GFX.opp)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN12Adafruit_GFX12drawTriangleEsssssst' in file './library/libPropelleruino/cmm/\libPropelleruino.a(Adafruit_GFX.opp)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN12Adafruit_GFX12fillTriangleEsssssst' in file './library/libPropelleruino/cmm/\libPropelleruino.a(Adafruit_GFX.opp)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN12Adafruit_GFX10drawBitmapEssPKhsst' in file './library/libPropelleruino/cmm/\libPropelleruino.a(Adafruit_GFX.opp)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN12Adafruit_GFX8drawCharEsshtth' in file './library/libPropelleruino/cmm/\libPropelleruino.a(Adafruit_GFX.opp)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN12Adafruit_GFX5writeEh' in file './library/libPropelleruino/cmm/\libPropelleruino.a(Adafruit_GFX.opp)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN12Adafruit_GFX9setCursorEss' in file './library/libPropelleruino/cmm/\libPropelleruino.a(Adafruit_GFX.opp)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN12Adafruit_GFX11setTextSizeEh' in file './library/libPropelleruino/cmm/\libPropelleruino.a(Adafruit_GFX.opp)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN12Adafruit_GFX12setTextColorEt' in file './library/libPropelleruino/cmm/\libPropelleruino.a(Adafruit_GFX.opp)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN12Adafruit_GFX12setTextColorEtt' in file './library/libPropelleruino/cmm/\libPropelleruino.a(Adafruit_GFX.opp)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN12Adafruit_GFX11setTextWrapEh' in file './library/libPropelleruino/cmm/\libPropelleruino.a(Adafruit_GFX.opp)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN12Adafruit_GFX11getRotationEv' in file './library/libPropelleruino/cmm/\libPropelleruino.a(Adafruit_GFX.opp)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN12Adafruit_GFX11setRotationEh' in file './library/libPropelleruino/cmm/\libPropelleruino.a(Adafruit_GFX.opp)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN12Adafruit_GFX13invertDisplayEh' in file './library/libPropelleruino/cmm/\libPropelleruino.a(Adafruit_GFX.opp)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN12Adafruit_GFX5widthEv' in file './library/libPropelleruino/cmm/\libPropelleruino.a(Adafruit_GFX.opp)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN12Adafruit_GFX6heightEv' in file './library/libPropelleruino/cmm/\libPropelleruino.a(Adafruit_GFX.opp)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.rodata._ZL4font' in file './library/libPropelleruino/cmm/\libPropelleruino.a(Adafruit_GFX.opp)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN12Max72xxPanel9drawPixelEsst' in file './library/libPropelleruino/cmm/\libPropelleruino.a(Max72xxPanel.opp)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN12Max72xxPanel11spiTransferEhh' in file './library/libPropelleruino/cmm/\libPropelleruino.a(Max72xxPanel.opp)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN12Max72xxPanel15doubleBufferingEh' in file './library/libPropelleruino/cmm/\libPropelleruino.a(Max72xxPanel.opp)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN12Max72xxPanel10fillScreenEt' in file './library/libPropelleruino/cmm/\libPropelleruino.a(Max72xxPanel.opp)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN12Max72xxPanel14drawLineHelperEsssst' in file './library/libPropelleruino/cmm/\libPropelleruino.a(Max72xxPanel.opp)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN12Max72xxPanel8drawLineEsssst' in file './library/libPropelleruino/cmm/\libPropelleruino.a(Max72xxPanel.opp)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN12Max72xxPanel12setIntensityEi' in file './library/libPropelleruino/cmm/\libPropelleruino.a(Max72xxPanel.opp)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN12Max72xxPanel8shutdownEh' in file './library/libPropelleruino/cmm/\libPropelleruino.a(Max72xxPanel.opp)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN12Max72xxPanelC2Eiiiii' in file './library/libPropelleruino/cmm/\libPropelleruino.a(Max72xxPanel.opp)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.rodata._ZTV12Max72xxPanel' in file './library/libPropelleruino/cmm/\libPropelleruino.a(Max72xxPanel.opp)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.data' in file './library/libPropelleruino/cmm/\libPropelleruino.a(Print.opp)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN5Print5writeEPKhj' in file './library/libPropelleruino/cmm/\libPropelleruino.a(Print.opp)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN5Print5printEPK19__FlashStringHelper' in file './library/libPropelleruino/cmm/\libPropelleruino.a(Print.opp)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN5Print5printERK6String' in file './library/libPropelleruino/cmm/\libPropelleruino.a(Print.opp)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN5Print5printEPKc' in file './library/libPropelleruino/cmm/\libPropelleruino.a(Print.opp)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN5Print5printEc' in file './library/libPropelleruino/cmm/\libPropelleruino.a(Print.opp)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN5Print5printERK9Printable' in file './library/libPropelleruino/cmm/\libPropelleruino.a(Print.opp)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN5Print7printlnEv' in file './library/libPropelleruino/cmm/\libPropelleruino.a(Print.opp)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN5Print7printlnEPK19__FlashStringHelper' in file './library/libPropelleruino/cmm/\libPropelleruino.a(Print.opp)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN5Print7printlnERK6String' in file './library/libPropelleruino/cmm/\libPropelleruino.a(Print.opp)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN5Print7printlnEPKc' in file './library/libPropelleruino/cmm/\libPropelleruino.a(Print.opp)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN5Print7printlnEc' in file './library/libPropelleruino/cmm/\libPropelleruino.a(Print.opp)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN5Print7printlnERK9Printable' in file './library/libPropelleruino/cmm/\libPropelleruino.a(Print.opp)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN5Print11printNumberEmh' in file './library/libPropelleruino/cmm/\libPropelleruino.a(Print.opp)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN5Print5printEmi' in file './library/libPropelleruino/cmm/\libPropelleruino.a(Print.opp)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN5Print7printlnEmi' in file './library/libPropelleruino/cmm/\libPropelleruino.a(Print.opp)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN5Print5printEji' in file './library/libPropelleruino/cmm/\libPropelleruino.a(Print.opp)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN5Print7printlnEji' in file './library/libPropelleruino/cmm/\libPropelleruino.a(Print.opp)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN5Print5printEhi' in file './library/libPropelleruino/cmm/\libPropelleruino.a(Print.opp)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN5Print7printlnEhi' in file './library/libPropelleruino/cmm/\libPropelleruino.a(Print.opp)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN5Print5printEli' in file './library/libPropelleruino/cmm/\libPropelleruino.a(Print.opp)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN5Print7printlnEli' in file './library/libPropelleruino/cmm/\libPropelleruino.a(Print.opp)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN5Print5printEii' in file './library/libPropelleruino/cmm/\libPropelleruino.a(Print.opp)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN5Print7printlnEii' in file './library/libPropelleruino/cmm/\libPropelleruino.a(Print.opp)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN5Print10printFloatEdh' in file './library/libPropelleruino/cmm/\libPropelleruino.a(Print.opp)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN5Print5printEdi' in file './library/libPropelleruino/cmm/\libPropelleruino.a(Print.opp)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN5Print7printlnEdi' in file './library/libPropelleruino/cmm/\libPropelleruino.a(Print.opp)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.rodata._ZTV5Print' in file './library/libPropelleruino/cmm/\libPropelleruino.a(Print.opp)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN3SPI5StartEii' in file './library/libPropelleruino/cmm/\libPropelleruino.a(SPI.opp)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN3SPI9PostclockEi' in file './library/libPropelleruino/cmm/\libPropelleruino.a(SPI.opp)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN3SPI8ShiftoutEiiiii' in file './library/libPropelleruino/cmm/\libPropelleruino.a(SPI.opp)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN3SPI8PreclockEi' in file './library/libPropelleruino/cmm/\libPropelleruino.a(SPI.opp)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN3SPI7ShiftinEiiii' in file './library/libPropelleruino/cmm/\libPropelleruino.a(SPI.opp)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.data' in file './library/libPropelleruino/cmm/\libPropelleruino.a(WString.opp)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN6StringD2Ev' in file './library/libPropelleruino/cmm/\libPropelleruino.a(WString.opp)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN6String10invalidateEv' in file './library/libPropelleruino/cmm/\libPropelleruino.a(WString.opp)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN6String12changeBufferEj' in file './library/libPropelleruino/cmm/\libPropelleruino.a(WString.opp)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN6String7reserveEj' in file './library/libPropelleruino/cmm/\libPropelleruino.a(WString.opp)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN6String4copyEPKcj' in file './library/libPropelleruino/cmm/\libPropelleruino.a(WString.opp)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN6StringC2EPKc' in file './library/libPropelleruino/cmm/\libPropelleruino.a(WString.opp)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN6StringaSERKS_' in file './library/libPropelleruino/cmm/\libPropelleruino.a(WString.opp)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN6StringC2ERKS_' in file './library/libPropelleruino/cmm/\libPropelleruino.a(WString.opp)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN6StringaSEPKc' in file './library/libPropelleruino/cmm/\libPropelleruino.a(WString.opp)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN6StringC2Emh' in file './library/libPropelleruino/cmm/\libPropelleruino.a(WString.opp)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN6StringC2Elh' in file './library/libPropelleruino/cmm/\libPropelleruino.a(WString.opp)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN6StringC2Ejh' in file './library/libPropelleruino/cmm/\libPropelleruino.a(WString.opp)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN6StringC2Eih' in file './library/libPropelleruino/cmm/\libPropelleruino.a(WString.opp)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN6StringC2Ehh' in file './library/libPropelleruino/cmm/\libPropelleruino.a(WString.opp)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN6StringC2Ec' in file './library/libPropelleruino/cmm/\libPropelleruino.a(WString.opp)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN6String6concatEPKcj' in file './library/libPropelleruino/cmm/\libPropelleruino.a(WString.opp)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN6String6concatERKS_' in file './library/libPropelleruino/cmm/\libPropelleruino.a(WString.opp)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN6String6concatEPKc' in file './library/libPropelleruino/cmm/\libPropelleruino.a(WString.opp)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN6String6concatEc' in file './library/libPropelleruino/cmm/\libPropelleruino.a(WString.opp)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN6String6concatEh' in file './library/libPropelleruino/cmm/\libPropelleruino.a(WString.opp)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN6String6concatEi' in file './library/libPropelleruino/cmm/\libPropelleruino.a(WString.opp)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN6String6concatEj' in file './library/libPropelleruino/cmm/\libPropelleruino.a(WString.opp)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN6String6concatEl' in file './library/libPropelleruino/cmm/\libPropelleruino.a(WString.opp)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN6String6concatEm' in file './library/libPropelleruino/cmm/\libPropelleruino.a(WString.opp)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZplRK15StringSumHelperRK6String' in file './library/libPropelleruino/cmm/\libPropelleruino.a(WString.opp)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZplRK15StringSumHelperPKc' in file './library/libPropelleruino/cmm/\libPropelleruino.a(WString.opp)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZplRK15StringSumHelperc' in file './library/libPropelleruino/cmm/\libPropelleruino.a(WString.opp)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZplRK15StringSumHelperh' in file './library/libPropelleruino/cmm/\libPropelleruino.a(WString.opp)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZplRK15StringSumHelperi' in file './library/libPropelleruino/cmm/\libPropelleruino.a(WString.opp)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZplRK15StringSumHelperj' in file './library/libPropelleruino/cmm/\libPropelleruino.a(WString.opp)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZplRK15StringSumHelperl' in file './library/libPropelleruino/cmm/\libPropelleruino.a(WString.opp)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZplRK15StringSumHelperm' in file './library/libPropelleruino/cmm/\libPropelleruino.a(WString.opp)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZNK6String9compareToERKS_' in file './library/libPropelleruino/cmm/\libPropelleruino.a(WString.opp)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZNK6String6equalsERKS_' in file './library/libPropelleruino/cmm/\libPropelleruino.a(WString.opp)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZNK6String6equalsEPKc' in file './library/libPropelleruino/cmm/\libPropelleruino.a(WString.opp)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZNK6StringltERKS_' in file './library/libPropelleruino/cmm/\libPropelleruino.a(WString.opp)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZNK6StringgtERKS_' in file './library/libPropelleruino/cmm/\libPropelleruino.a(WString.opp)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZNK6StringleERKS_' in file './library/libPropelleruino/cmm/\libPropelleruino.a(WString.opp)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZNK6StringgeERKS_' in file './library/libPropelleruino/cmm/\libPropelleruino.a(WString.opp)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZNK6String16equalsIgnoreCaseERKS_' in file './library/libPropelleruino/cmm/\libPropelleruino.a(WString.opp)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZNK6String10startsWithERKS_j' in file './library/libPropelleruino/cmm/\libPropelleruino.a(WString.opp)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZNK6String10startsWithERKS_' in file './library/libPropelleruino/cmm/\libPropelleruino.a(WString.opp)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZNK6String8endsWithERKS_' in file './library/libPropelleruino/cmm/\libPropelleruino.a(WString.opp)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN6String9setCharAtEjc' in file './library/libPropelleruino/cmm/\libPropelleruino.a(WString.opp)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN6StringixEj' in file './library/libPropelleruino/cmm/\libPropelleruino.a(WString.opp)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZNK6StringixEj' in file './library/libPropelleruino/cmm/\libPropelleruino.a(WString.opp)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZNK6String6charAtEj' in file './library/libPropelleruino/cmm/\libPropelleruino.a(WString.opp)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZNK6String8getBytesEPhjj' in file './library/libPropelleruino/cmm/\libPropelleruino.a(WString.opp)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZNK6String7indexOfEcj' in file './library/libPropelleruino/cmm/\libPropelleruino.a(WString.opp)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZNK6String7indexOfEc' in file './library/libPropelleruino/cmm/\libPropelleruino.a(WString.opp)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZNK6String7indexOfERKS_j' in file './library/libPropelleruino/cmm/\libPropelleruino.a(WString.opp)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZNK6String7indexOfERKS_' in file './library/libPropelleruino/cmm/\libPropelleruino.a(WString.opp)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZNK6String11lastIndexOfEcj' in file './library/libPropelleruino/cmm/\libPropelleruino.a(WString.opp)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZNK6String11lastIndexOfEc' in file './library/libPropelleruino/cmm/\libPropelleruino.a(WString.opp)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZNK6String11lastIndexOfERKS_j' in file './library/libPropelleruino/cmm/\libPropelleruino.a(WString.opp)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZNK6String11lastIndexOfERKS_' in file './library/libPropelleruino/cmm/\libPropelleruino.a(WString.opp)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZNK6String9substringEjj' in file './library/libPropelleruino/cmm/\libPropelleruino.a(WString.opp)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZNK6String9substringEj' in file './library/libPropelleruino/cmm/\libPropelleruino.a(WString.opp)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN6String7replaceEcc' in file './library/libPropelleruino/cmm/\libPropelleruino.a(WString.opp)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN6String7replaceERKS_S1_' in file './library/libPropelleruino/cmm/\libPropelleruino.a(WString.opp)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN6String11toLowerCaseEv' in file './library/libPropelleruino/cmm/\libPropelleruino.a(WString.opp)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN6String11toUpperCaseEv' in file './library/libPropelleruino/cmm/\libPropelleruino.a(WString.opp)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN6String4trimEv' in file './library/libPropelleruino/cmm/\libPropelleruino.a(WString.opp)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZNK6String5toIntEv' in file './library/libPropelleruino/cmm/\libPropelleruino.a(WString.opp)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.bss._ZZN6StringixEjE19dummy_writable_char' in file './library/libPropelleruino/cmm/\libPropelleruino.a(WString.opp)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text.strreverse' in file './library/libPropelleruino/cmm/\libPropelleruino.a(nonstdlib.opp)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text.itoa' in file './library/libPropelleruino/cmm/\libPropelleruino.a(nonstdlib.opp)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text.utoa' in file './library/libPropelleruino/cmm/\libPropelleruino.a(nonstdlib.opp)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text.ltoa' in file './library/libPropelleruino/cmm/\libPropelleruino.a(nonstdlib.opp)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text.ultoa' in file './library/libPropelleruino/cmm/\libPropelleruino.a(nonstdlib.opp)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.rodata._ZL3num' in file './library/libPropelleruino/cmm/\libPropelleruino.a(nonstdlib.opp)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text.delay' in file './library/libPropelleruino/cmm/\libPropelleruino.a(wiring.o)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text.delayMicroseconds' in file './library/libPropelleruino/cmm/\libPropelleruino.a(wiring.o)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text.pinMode' in file './library/libPropelleruino/cmm/\libPropelleruino.a(wiring_digital.o)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text.digitalWrite' in file './library/libPropelleruino/cmm/\libPropelleruino.a(wiring_digital.o)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text.digitalRead' in file './library/libPropelleruino/cmm/\libPropelleruino.a(wiring_digital.o)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text.setup' in file './library/libPropelleruino/cmm/\libPropelleruino.a(main.opp)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text.loop' in file './library/libPropelleruino/cmm/\libPropelleruino.a(main.opp)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text.startup.main' in file './library/libPropelleruino/cmm/\libPropelleruino.a(main.opp)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.data' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/cmm/short-doubles\libstdc++.a(pure.o)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text.__cxa_pure_virtual' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/cmm/short-doubles\libstdc++.a(pure.o)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN10__cxxabiv111__terminateEPFvvE' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/cmm/short-doubles\libstdc++.a(eh_terminate.o)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.gcc_except_table' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/cmm/short-doubles\libstdc++.a(eh_terminate.o)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZSt9terminatev' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/cmm/short-doubles\libstdc++.a(eh_terminate.o)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN10__cxxabiv112__unexpectedEPFvvE' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/cmm/short-doubles\libstdc++.a(eh_terminate.o)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZSt10unexpectedv' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/cmm/short-doubles\libstdc++.a(eh_terminate.o)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZSt13set_terminatePFvvE' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/cmm/short-doubles\libstdc++.a(eh_terminate.o)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZSt14set_unexpectedPFvvE' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/cmm/short-doubles\libstdc++.a(eh_terminate.o)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.data._ZN10__cxxabiv119__terminate_handlerE' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/cmm/short-doubles\libstdc++.a(eh_term_handler.o)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.data._ZN10__cxxabiv120__unexpected_handlerE' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/cmm/short-doubles\libstdc++.a(eh_unex_handler.o)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.data' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/cmm/short-doubles\libstdc++.a(vterminate.o)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN9__gnu_cxx27__verbose_terminate_handlerEv' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/cmm/short-doubles\libstdc++.a(vterminate.o)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.gcc_except_table' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/cmm/short-doubles\libstdc++.a(vterminate.o)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.bss._ZZN9__gnu_cxx27__verbose_terminate_handlerEvE11terminating' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/cmm/short-doubles\libstdc++.a(vterminate.o)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/cmm/short-doubles\libstdc++.a(cp-demangle.o)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.data' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/cmm/short-doubles\libstdc++.a(cp-demangle.o)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text.__cxa_get_exception_ptr' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/cmm/short-doubles\libstdc++.a(eh_catch.o)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text.__cxa_begin_catch' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/cmm/short-doubles\libstdc++.a(eh_catch.o)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text.__cxa_end_catch' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/cmm/short-doubles\libstdc++.a(eh_catch.o)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZSt18uncaught_exceptionv' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/cmm/short-doubles\libstdc++.a(eh_catch.o)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.data' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/cmm/short-doubles\libstdc++.a(eh_exception.o)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZNSt9exceptionD2Ev' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/cmm/short-doubles\libstdc++.a(eh_exception.o)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZNSt13bad_exceptionD2Ev' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/cmm/short-doubles\libstdc++.a(eh_exception.o)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN10__cxxabiv115__forced_unwindD2Ev' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/cmm/short-doubles\libstdc++.a(eh_exception.o)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN10__cxxabiv119__foreign_exceptionD2Ev' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/cmm/short-doubles\libstdc++.a(eh_exception.o)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZNKSt9exception4whatEv' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/cmm/short-doubles\libstdc++.a(eh_exception.o)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZNKSt13bad_exception4whatEv' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/cmm/short-doubles\libstdc++.a(eh_exception.o)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN10__cxxabiv119__foreign_exceptionD0Ev' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/cmm/short-doubles\libstdc++.a(eh_exception.o)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN10__cxxabiv115__forced_unwindD0Ev' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/cmm/short-doubles\libstdc++.a(eh_exception.o)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZNSt13bad_exceptionD0Ev' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/cmm/short-doubles\libstdc++.a(eh_exception.o)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZNSt9exceptionD0Ev' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/cmm/short-doubles\libstdc++.a(eh_exception.o)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.rodata._ZTSSt9exception' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/cmm/short-doubles\libstdc++.a(eh_exception.o)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.rodata._ZTISt9exception' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/cmm/short-doubles\libstdc++.a(eh_exception.o)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.rodata._ZTSSt13bad_exception' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/cmm/short-doubles\libstdc++.a(eh_exception.o)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.rodata._ZTISt13bad_exception' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/cmm/short-doubles\libstdc++.a(eh_exception.o)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.rodata._ZTSN10__cxxabiv115__forced_unwindE' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/cmm/short-doubles\libstdc++.a(eh_exception.o)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.rodata._ZTIN10__cxxabiv115__forced_unwindE' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/cmm/short-doubles\libstdc++.a(eh_exception.o)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.rodata._ZTSN10__cxxabiv119__foreign_exceptionE' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/cmm/short-doubles\libstdc++.a(eh_exception.o)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.rodata._ZTIN10__cxxabiv119__foreign_exceptionE' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/cmm/short-doubles\libstdc++.a(eh_exception.o)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.rodata._ZTVSt9exception' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/cmm/short-doubles\libstdc++.a(eh_exception.o)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.rodata._ZTVSt13bad_exception' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/cmm/short-doubles\libstdc++.a(eh_exception.o)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.rodata._ZTVN10__cxxabiv115__forced_unwindE' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/cmm/short-doubles\libstdc++.a(eh_exception.o)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.rodata._ZTVN10__cxxabiv119__foreign_exceptionE' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/cmm/short-doubles\libstdc++.a(eh_exception.o)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text.__cxa_get_globals_fast' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/cmm/short-doubles\libstdc++.a(eh_globals.o)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text.__cxa_get_globals' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/cmm/short-doubles\libstdc++.a(eh_globals.o)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.bss._ZL10eh_globals' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/cmm/short-doubles\libstdc++.a(eh_globals.o)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZL12read_sleb128PKhPl' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/cmm/short-doubles\libstdc++.a(eh_personality.o)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZL21base_of_encoded_valuehP15_Unwind_Context' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/cmm/short-doubles\libstdc++.a(eh_personality.o)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZL28read_encoded_value_with_basehjPKhPj' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/cmm/short-doubles\libstdc++.a(eh_personality.o)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZL17parse_lsda_headerP15_Unwind_ContextPKhP16lsda_header_info.constprop.5' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/cmm/short-doubles\libstdc++.a(eh_personality.o)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZL15get_ttype_entryP16lsda_header_infom.constprop.6' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/cmm/short-doubles\libstdc++.a(eh_personality.o)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZL20check_exception_specP16lsda_header_infoPKSt9type_infoPvl.constprop.4' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/cmm/short-doubles\libstdc++.a(eh_personality.o)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text.__gxx_personality_sj0' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/cmm/short-doubles\libstdc++.a(eh_personality.o)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.gcc_except_table' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/cmm/short-doubles\libstdc++.a(eh_personality.o)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text.__cxa_call_unexpected' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/cmm/short-doubles\libstdc++.a(eh_personality.o)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZL23__gxx_exception_cleanup19_Unwind_Reason_CodeP17_Unwind_Exception' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/cmm/short-doubles\libstdc++.a(eh_throw.o)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text.__cxa_throw' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/cmm/short-doubles\libstdc++.a(eh_throw.o)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text.__cxa_rethrow' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/cmm/short-doubles\libstdc++.a(eh_throw.o)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text.__cxa_current_exception_type' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/cmm/short-doubles\libstdc++.a(eh_type.o)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN10__cxxabiv120__si_class_type_infoD2Ev' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/cmm/short-doubles\libstdc++.a(si_class_type_info.o)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN10__cxxabiv120__si_class_type_infoD0Ev' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/cmm/short-doubles\libstdc++.a(si_class_type_info.o)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZNK10__cxxabiv120__si_class_type_info11__do_upcastEPKNS_17__class_type_infoEPKvRNS1_15__upcast_resultE' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/cmm/short-doubles\libstdc++.a(si_class_type_info.o)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZNK10__cxxabiv120__si_class_type_info12__do_dyncastEiNS_17__class_type_info10__sub_kindEPKS1_PKvS4_S6_RNS1_16__dyncast_resultE' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/cmm/short-doubles\libstdc++.a(si_class_type_info.o)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZNK10__cxxabiv120__si_class_type_info20__do_find_public_srcEiPKvPKNS_17__class_type_infoES2_' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/cmm/short-doubles\libstdc++.a(si_class_type_info.o)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.rodata._ZTSN10__cxxabiv120__si_class_type_infoE' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/cmm/short-doubles\libstdc++.a(si_class_type_info.o)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.rodata._ZTIN10__cxxabiv120__si_class_type_infoE' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/cmm/short-doubles\libstdc++.a(si_class_type_info.o)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.rodata._ZTVN10__cxxabiv120__si_class_type_infoE' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/cmm/short-doubles\libstdc++.a(si_class_type_info.o)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZNSt9type_infoD2Ev' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/cmm/short-doubles\libstdc++.a(tinfo.o)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZNKSt9type_info14__is_pointer_pEv' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/cmm/short-doubles\libstdc++.a(tinfo.o)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZNKSt9type_info15__is_function_pEv' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/cmm/short-doubles\libstdc++.a(tinfo.o)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZNKSt9type_info11__do_upcastEPKN10__cxxabiv117__class_type_infoEPPv' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/cmm/short-doubles\libstdc++.a(tinfo.o)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZNSt9type_infoD0Ev' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/cmm/short-doubles\libstdc++.a(tinfo.o)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZNKSt9type_infoeqERKS_' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/cmm/short-doubles\libstdc++.a(tinfo.o)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZNKSt9type_info10__do_catchEPKS_PPvj' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/cmm/short-doubles\libstdc++.a(tinfo.o)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.rodata._ZTSSt9type_info' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/cmm/short-doubles\libstdc++.a(tinfo.o)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.rodata._ZTISt9type_info' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/cmm/short-doubles\libstdc++.a(tinfo.o)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.rodata._ZTVSt9type_info' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/cmm/short-doubles\libstdc++.a(tinfo.o)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZNK10__cxxabiv117__class_type_info11__do_upcastEPKS0_PPv' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/cmm/short-doubles\libstdc++.a(class_type_info.o)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZNK10__cxxabiv117__class_type_info20__do_find_public_srcEiPKvPKS0_S2_' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/cmm/short-doubles\libstdc++.a(class_type_info.o)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZNK10__cxxabiv117__class_type_info11__do_upcastEPKS0_PKvRNS0_15__upcast_resultE' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/cmm/short-doubles\libstdc++.a(class_type_info.o)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN10__cxxabiv117__class_type_infoD2Ev' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/cmm/short-doubles\libstdc++.a(class_type_info.o)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN10__cxxabiv117__class_type_infoD0Ev' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/cmm/short-doubles\libstdc++.a(class_type_info.o)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZNK10__cxxabiv117__class_type_info12__do_dyncastEiNS0_10__sub_kindEPKS0_PKvS3_S5_RNS0_16__dyncast_resultE' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/cmm/short-doubles\libstdc++.a(class_type_info.o)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZNK10__cxxabiv117__class_type_info10__do_catchEPKSt9type_infoPPvj' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/cmm/short-doubles\libstdc++.a(class_type_info.o)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.rodata._ZTSN10__cxxabiv117__class_type_infoE' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/cmm/short-doubles\libstdc++.a(class_type_info.o)'

    c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.rodata._ZTIN10__cxxabiv117__class_type_infoE' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/cmm/short-doubles\libstdc++.a(class_type_info.o)'

    c:/users/martin/propgcc/bin/../
  • jazzedjazzed Posts: 11,803
    edited 2013-06-16 12:31
    Hi Martin.

    If you use the compiler from the properties with -v in a command window, do you see propellergcc_v1_0_0_2054 ?

    I only see the 4 byte issue with the old version. Here's the new version dump:
    propeller-elf-gcc.exe -v
    Using built-in specs.
    COLLECT_GCC=C:\msys\opt\parallax\bin\propeller-elf-gcc.exe
    COLLECT_LTO_WRAPPER=c:/msys/opt/parallax/bin/../libexec/gcc/propeller-elf/4.6.1/lto-wrapper.exe
    Target: propeller-elf
    Configured with: ../../propgcc/gcc/configure --target=propeller-elf --prefix=/opt/parallax --disable-nls --disable-libss
    p --disable-lto --disable-shared --with-pkgversion=propellergcc_v1_0_0_2054 --with-bugurl=http://code.google.com/p/propg
    cc/issues
    Thread model: single
    gcc version 4.6.1 (propellergcc_v1_0_0_2054)
    
  • Martin_HMartin_H Posts: 4,051
    edited 2013-06-16 14:57
    I'll check that. I have two computers and I know I upgraded one. I might have forgotten to do the other.

    Also, can I call printf in a static constructor which happens before main is called? I'm testing the servo object and I don't see the output in the constructor but I do in main.
  • jazzedjazzed Posts: 11,803
    edited 2013-06-16 16:23
    Martin_H wrote: »
    I'll check that. I have two computers and I know I upgraded one. I might have forgotten to do the other.

    Also, can I call printf in a static constructor which happens before main is called? I'm testing the servo object and I don't see the output in the constructor but I do in main.

    You might want check your PATH environment variable. That is a critical item. Please make sure you only have one path to the propeller-gcc bin set. Also, SimpleIDE should be restarted if there are changes to where the compiler is placed.

    If you put printf in a static constructor, you may need to add a half second delay before it to give the terminal time to start up.
  • Martin_HMartin_H Posts: 4,051
    edited 2013-06-16 18:57
    jazzed wrote: »
    You might want check your PATH environment variable. That is a critical item. Please make sure you only have one path to the propeller-gcc bin set. Also, SimpleIDE should be restarted if there are changes to where the compiler is placed.

    If you put printf in a static constructor, you may need to add a half second delay before it to give the terminal time to start up.

    I think I only upgraded one machine because I downloaded the new version and I can do the upload with the full library. The neat part is I'm only at 8408 bytes for one of my tests. I've got nearly the entire core library, plus the servo, spi, and Adafruit graphics lib. That leave plenty of room for user programs because all the unused string functions get ignored. I need to add analogRead and software serial, but this is looking plenty doable. I'm using the Arduino samples as my unit tests and that's been helpful.

    Ah, the delay makes perfect sense. It's not big deal as most of the real works starts at attach, so I can put in a delay before that is called.
  • ercoerco Posts: 20,256
    edited 2013-06-16 21:43
    That's the bomb, Martin_H!
  • Martin_HMartin_H Posts: 4,051
    edited 2013-06-18 18:50
    Thanks Erco.

    @All, here's the latest library with a debugged servo object and my unit test. This unit test is the Arduino servo sweep example modified to use two servos and to add a #include <Arduino.h>. Really the only required deviation from the example is adding the #include because the Arduino IDE mashes that onto your program, while propgcc doesn't.

    ServoTest.zip

    NOTE: To use this library you need the newer version of propgcc referenced above to prune unused functions. The servo test for example ends up being over 5900 bytes which isn't bad, but the Arduino sketch is 2666 bytes which is more compact. It will be interesting to see if this multiple holds for large projects, or it is some one time cost on the Propeller.
  • cavelambcavelamb Posts: 720
    edited 2013-06-18 21:10
    That's all well and good, Martin.
    (No, not that Martin, the OTHER Martin!)

    But can I buy that touch screen yet?

    (I'll convert to C when I can!)
    (and that's saying a whole lot)
  • jazzedjazzed Posts: 11,803
    edited 2013-06-19 08:13
    Martin_H wrote: »
    The servo test for example ends up being over 5900 bytes which isn't bad, but the Arduino sketch is 2666 bytes which is more compact. It will be interesting to see if this multiple holds for large projects, or it is some one time cost on the Propeller.

    There is a "one time cost" involved. Every Propeller-GCC program needs a kernel that is about 2KB (this is true of Spin also, but it is hidden in ROM). So in this case the actual C code is about 4KB. If you use the non-standard Tiny lib in the example the code is about 4100 bytes. So in that case the actual C code is about 1100 bytes.

    @Martin_H, we need away to preserve your work for future reference. Arduino code is GPL AFAIK, so the Parallax OBEX is not a suitable place (at the moment). Do you have a repository?

    @cavelamb, I've seen those touch-screens at Radio-Shack. If you buy one, I will too and give you a hand if necessary.
  • Martin_HMartin_H Posts: 4,051
    edited 2013-06-19 08:42
    jazzed wrote: »
    @Martin_H, we need away to preserve your work for future reference. Arduino code is GPL AFAIK, so the Parallax OBEX is not a suitable place (at the moment). Do you have a repository?

    I plan to eventually bite the bullet and create a project on code.google.com. I've thought about the licensing issue and all the new modules I'm writing are MIT licensed which is considered GPL compatible. This means I'm allowed by the GPL to combine and redistribution with software that uses the MIT License. Any Arduino module that I'm reusing unchanged (e.g. WString.cpp) I've left as is with their existing GPL license and copyright. There are a few gray area modules (Arduino.h) where I reused things like the #defines and function prototypes, but omitted sections and dramatically rewrote the implementation. From the GPL point of view there's no way to contribute upstream and I'm certainly making the source available, so I MIT licensed those because they are compatible.

    I've noticed that libPropelleruino is starting to get slow to compile because the SimpleIDE doesn't implement dependency management. The question that is starting to nag at me is that I may need to repackage into sub-libraries just like the Simple Libraries that come with SimpleIDE. I'm thinking of breaking it into libPropelleruinoCore (Arduino and wiring), libPropelleruinoMotors (Servo, Stepper, DC motors), libPropelleruinoComm (SPI, I2C). This would put a small burden on consumers versus dealing with a single library.
  • jazzedjazzed Posts: 11,803
    edited 2013-06-19 09:03
    Martin, I look forward to the repository. Thanks.

    I'm a little confused. How is MIT compatible with GPL? GPL is "viral" but MIT is not for example.

    Regarding libraries. Sorry about missing dependency management. It has never been on the improvement RADAR. Some day I may have time for it.

    One of my high priorities is making SimpleIDE automatically find the libraries (there is primitive support now, but it does not recursively look at files). This would make it easy to add the different libraries you mention just by saying #include "PropellerinoCore" and #include "PropellerinoMotors" rather than needing to add the library to project manager. The only requirement for that to work would be specifying a library path. Today the default library path is SimpleIDE\Learn\Simple Libraries .... You could add your libraries under that path.

    Once we have the auto-include-library feature working, it would enable a much simpler IDE.
  • TinkersALotTinkersALot Posts: 535
    edited 2013-06-19 09:05
    Martin_H wrote: »
    I've noticed that libPropelleruino is starting to get slow to compile because the SimpleIDE doesn't implement dependency management. The question that is starting to nag at me is that I may need to repackage into sub-libraries just like the Simple Libraries that come with SimpleIDE. I'm thinking of breaking it into libPropelleruinoCore (Arduino and wiring), libPropelleruinoMotors (Servo, Stepper, DC motors), libPropelleruinoComm (SPI, I2C). This would put a small burden on consumers versus dealing with a single library.

    IMHO: slow compiles is an acceptable trade off for ease of use -- I can always get a coffee during a long build, but if something becomes "too hard" ... well then....another siren may beckon :)
  • Martin_HMartin_H Posts: 4,051
    edited 2013-06-19 09:22
    jazzed wrote: »
    I'm a little confused. How is MIT compatible with GPL? GPL is "viral" but MIT is not for example.

    There are two GPL licenses: the GPL and the lessor GPL. It is the lessor GPL that is MIT compatible while the GPL is not. The Arduino libraries have several different license conventions in them. A number are unlicensed without any copyright, some have an "as is" license, and all the rest seem to have the lessor GPL.
  • jazzedjazzed Posts: 11,803
    edited 2013-06-19 09:37
    Martin_H wrote: »
    There are two GPL licenses: the GPL and the lessor GPL. It is the lessor GPL that is MIT compatible while the GPL is not. The Arduino libraries have several different license conventions in them. A number are unlicensed without any copyright, some have an "as is" license, and all the rest seem to have the lessor GPL.

    Ah, Ok. Makes perfect sense for LGPL.

    @TinkersALot, Parallax is thinking of you and others with all their Education decisions. Many such decisions tend to trip me for some reason. I offer cautious objections and deliver with hope.
  • TinkersALotTinkersALot Posts: 535
    edited 2013-06-20 06:42
    @Jazzed, I find myself in a similar situation WRT contrasting various project deployment issues against complexity of use of a tool chain. The group I work for are currently packaging a small group of exe's, shared libraries, header files, idl files, documentation, example code, etc. into an API/SDK for our customers (currently I work in the medical device industry as a Software Engineer). So, we've, very recently, had the "ease of use vs. consideration-x" discussions. It is very fresh on my mind, and I always try to drive the solution toward ease of use. I could be wrong, but I've come to think that most will not use something that they think is "too hard" to use.
  • jazzedjazzed Posts: 11,803
    edited 2013-06-20 07:23
    Parallax Education is driving all the Propeller-C efforts and the SimpleIDE front end in particular. The Education program examples and libraries were all written by Parallax Education although user library contributions are starting to roll in now.

    The Parallax Education charter seems to be: make it possible to teach programming to students with absolutely no background. To support this idea, many things I value (and take for granted as well) are thrown out the window. Parallax knows what they want to make their program succeed and they have many customers (secondary school teachers, college professors, and students of many ages) who shape the end result.

    I am very happy that Martin has enabled using Arduino code on Propeller with SimpleIDE.
  • cavelambcavelamb Posts: 720
    edited 2013-06-21 06:31
    I had never heard of "Wiring" language, but it does indeed look a lot like C
    Trying to get a handle on this stuff...

    http://arduino.cc/en/Reference/HomePage
    and
    http://arduino.cc/en/Reference/HomePage

    And then the libraries?
    http://arduino.cc/en/Hacking/LibraryTutorial

    I think Martin picked the perfect avatar for this project!
    Definately big brain stuff...
  • Martin_HMartin_H Posts: 4,051
    edited 2013-06-21 08:20
    cavelamb wrote: »
    I had never heard of "Wiring" language, but it does indeed look a lot like C

    Here's a brief history of Arduino.

    Back in 2001 the Processing open source project was created around the Java programming languages. Essentially it consisted of the language (Java), an IDE, and a framework for using that language to make it amenable to casual programming. The Wiring project started in 2003 to extend Processing to the C++ programming language and microcontroller programming. They created the core primitives (delay, digitalWrite, pinMode, etc) that you see in Arduino sketches. The Arduino project founded in 2005 built on top of Wiring and specified a hardware platform and I believe the boot loader.

    tl;dr Wiring is C++
Sign In or Register to comment.