Int declaration location difference makes .text/hub overflow. Why?
I have two ints, x1 & y1 that, if globally declared, give the following error message when compiled. If I declare them in their own local cog function everything is fine.
Here's a partial but specific section of the compiler output:
Batch file that compiles and loads:
Compiler output:
Thanks to all in advance..... -Mike
Here's a partial but specific section of the compiler output:
c:/program files (x86)/simpleide/propeller-gcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: lmm/PGCCEFI.elf section `.text' will not fit in region `hub' c:/program files (x86)/simpleide/propeller-gcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: region `hub' overflowed by 15024 bytesHere's the code that causes the overflow message - x1 & y1 are declared on lines 27 & 28. If I comment them out of the main section and declare them on lines 83 & 84, in the cog they're actually active in, all is good. I would like to know what I'm doing wrong - similar use of global vars for debug/dev purposes in other GCC platforms hasn't been a problem. I'm surely hope it's just some rule that I've tripped over. I use ints hirpm and hiload (declared in lines 35,36, modified in lines 100 & 112 in the cog code and displayed in main code in 71 & 72) in a very similar manner and they work without issue. I did try declaring x1 & y1 volatile and unsigned - no change. If I declare them global, the .text section of the program grows by ~15K no matter what. I included the full compiler output as I'm using EditPlus, not SimpleIDE. The batch file I'm running is included in another code section below.
#include "simpletools.h" // Include simpletools library
//#include "fdserial.h" // Include Full Duplex Serial library
#define reboot() __builtin_propeller_clkset(0x80)
// For LMM cog 160 bytes declared as int
// Add enough for stack & calcs
unsigned int stack[(160 + (50 * 4)) / 4];
// Initialize the arrays
//int verpm[] = {500,1000,1500,2000,2500,3000,3500,4000,4500,5000,5500,6000,6500,7000,7500,8000,8500,9000,9500,10000};
volatile unsigned int verpm[20];
//int veload[] = {20,25,30,35,40,45,50,55,60,75,80,85,90,95,100,110,115,120,125,130};
unsigned int veload[20];
unsigned int vetable[20][20];
volatile unsigned int rpm,load;
unsigned int baseaddr = 40000; //EEPROM Adress
unsigned int veresult;
volatile unsigned int verpmsize = (sizeof(verpm)/4);
unsigned int veloadsize = (sizeof(veload)/4);
unsigned int cog2;
//Candidates for moving declarations to interp cog - here now for debug purposes.
//signed int x1;
//signed int y1;
int x1; // Here there be dragons
int y1; // More dragons here.....
//volatile int x1;
//volatile int y1;
//Debug vars
volatile int hirpm;
volatile int hiload;
// Function prototype
void interp(void *par);
// Cog 0 starts here
int main()
{
for ( int i = 0; i < 20; i++ )
{
verpm[i]=ee_getInt(baseaddr+2000+(i*4));
veload[i]=ee_getInt(baseaddr+2080+(i*4));
print("Loaded verpm[%2d] : %5d from EEPROM Address %x ",i,verpm[i],baseaddr+2000+(i*4));
print("Loaded veload[%2d]: %5d from EEPROM Address %x\n",i,veload[i],baseaddr+2080+(i*4));
for (int i2 = 0; i2 < 20; i2++)
{
vetable[i][i2]=ee_getInt(baseaddr+(i*80)+(i2*4));
}
}
//serial *SPORT = fdserial_open(31, 30, 0, 115200);
print("\n\n =->FIN<-=\n");
cog2 = cogstart(&interp, NULL, stack, sizeof(stack)); // Start interp cog
while(1)
{
for ( rpm = 0, load = 0; rpm < 12000; rpm=rpm+500,load=load+10 )
{
pause(500);
print("**************\n");
print("RPM - %d\n",rpm);
print("LOAD - %d\n",load);
//print("SizeofRpm - %d\n",verpmsize-1);
print("hirpm: %d\n",hirpm);
print("hiload: %d\n",hiload);
print("**************\n");
}
}
}
void interp(void *par)
{
//int x1; // These work fine when declared here
//int y1; // and here.....
while(1)
{ // Sanity check of rpm & load, make sure in bounds of table edges
if (rpm > verpm[verpmsize-1]) rpm = verpm[verpmsize-1];
else if(rpm < verpm[0]) rpm = verpm[0];
if (load > veload[veloadsize-1]) load = veload[veloadsize-1];
else if(load < veload[0]) load = veload[0];
// Done with Sanity check of rpm & load, make sure in bounds of table edges
// Get highest index into rpmtable
for(x1 = 19; x1+1 > 0; x1--)
{
if(rpm > verpm[x1])
{
hirpm = verpm[x1];
break;
}
}
// Done with Get highest index into rpmtable
// Get highest index into loadtable
for(y1 = 19; y1+1>0; y1--)
{
if(load > veload[y1])
{
hiload = veload[y1];
break;
}
}
pause(300);
// Done with Get highest index into loadtable
}
}
Batch file that compiles and loads:
propeller-elf-gcc -v -I . -L . -I %1/SimpleLibraries/Utility/libsimpletools -L %1/SimpleLibraries/Utility/libsimpletools/lmm/ -I %1/SimpleLibraries/TextDevices/libsimpletext -L %1/SimpleLibraries/TextDevices/libsimpletext/lmm/ -I %1/SimpleLibraries/Protocol/libsimplei2c -L %1/SimpleLibraries/Protocol/libsimplei2c/lmm/ -I %1/SimpleLibraries/TextDevices/libfdserial -L %1/SimpleLibraries/TextDevices/libfdserial/lmm/ -o lmm/%2.elf -Os -mlmm -Wall -m32bit-doubles -fno-exceptions -std=c99 -save-temps %2.c -lm -lsimpletools -lsimpletext -lsimplei2c -lfdserial -lm -lsimpletools -lsimpletext -lsimplei2c -lm -lsimpletools -lsimpletext -lm -lsimpletools -lm rem propeller-load -v -s %1\lmm\%2.elf propeller-load -v -e -r %1\lmm\%2.elf
Compiler output:
---------- Compile C Source ---------- Using built-in specs. COLLECT_GCC=propeller-elf-gcc COLLECT_LTO_WRAPPER=c:/program files (x86)/simpleide/propeller-gcc/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-libssp --disable-lto --disable-shared --with-pkgversion=propellergcc_v1_0_0_2162 --with-bugurl=http://code.google.com/p/propgcc/issues : (reconfigured) ../../propgcc/gcc/configure --target=propeller-elf --prefix=/opt/parallax --disable-nls --disable-libssp --disable-lto --disable-shared --with-pkgversion=propellergcc_v1_0_0_2162 --with-bugurl=http://code.google.com/p/propgcc/issues Thread model: single gcc version 4.6.1 (propellergcc_v1_0_0_2162) COLLECT_GCC_OPTIONS='-v' '-I' '.' '-L.' '-I' 'C:\PropGCC_EFI/SimpleLibraries/Utility/libsimpletools' '-LC:\PropGCC_EFI/SimpleLibraries/Utility/libsimpletools/lmm/' '-I' 'C:\PropGCC_EFI/SimpleLibraries/TextDevices/libsimpletext' '-LC:\PropGCC_EFI/SimpleLibraries/TextDevices/libsimpletext/lmm/' '-I' 'C:\PropGCC_EFI/SimpleLibraries/Protocol/libsimplei2c' '-LC:\PropGCC_EFI/SimpleLibraries/Protocol/libsimplei2c/lmm/' '-I' 'C:\PropGCC_EFI/SimpleLibraries/TextDevices/libfdserial' '-LC:\PropGCC_EFI/SimpleLibraries/TextDevices/libfdserial/lmm/' '-o' 'lmm/PGCCEFI.elf' '-Os' '-mlmm' '-Wall' '-m32bit-doubles' '-fno-exceptions' '-std=c99' '-save-temps' c:/program files (x86)/simpleide/propeller-gcc/bin/../libexec/gcc/propeller-elf/4.6.1/cc1.exe -E -quiet -v -I . -I C:\PropGCC_EFI/SimpleLibraries/Utility/libsimpletools -I C:\PropGCC_EFI/SimpleLibraries/TextDevices/libsimpletext -I C:\PropGCC_EFI/SimpleLibraries/Protocol/libsimplei2c -I C:\PropGCC_EFI/SimpleLibraries/TextDevices/libfdserial -imultilib short-doubles -iprefix c:\program files (x86)\simpleide\propeller-gcc\bin\../lib/gcc/propeller-elf/4.6.1/ PGCCEFI.c -mlmm -m32bit-doubles -std=c99 -Wall -fno-exceptions -Os -fpch-preprocess -o PGCCEFI.i ignoring nonexistent directory "c:\program files (x86)\simpleide\propeller-gcc\bin\../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/sys-include" ignoring duplicate directory "c:/program files (x86)/simpleide/propeller-gcc/lib/gcc/../../lib/gcc/propeller-elf/4.6.1/include" ignoring duplicate directory "c:/program files (x86)/simpleide/propeller-gcc/lib/gcc/../../lib/gcc/propeller-elf/4.6.1/include-fixed" ignoring nonexistent directory "c:/program files (x86)/simpleide/propeller-gcc/lib/gcc/../../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/sys-include" ignoring duplicate directory "c:/program files (x86)/simpleide/propeller-gcc/lib/gcc/../../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/include" #include "..." search starts here: #include <...> search starts here: . C:\PropGCC_EFI/SimpleLibraries/Utility/libsimpletools C:\PropGCC_EFI/SimpleLibraries/TextDevices/libsimpletext C:\PropGCC_EFI/SimpleLibraries/Protocol/libsimplei2c C:\PropGCC_EFI/SimpleLibraries/TextDevices/libfdserial c:\program files (x86)\simpleide\propeller-gcc\bin\../lib/gcc/propeller-elf/4.6.1/include c:\program files (x86)\simpleide\propeller-gcc\bin\../lib/gcc/propeller-elf/4.6.1/include-fixed c:\program files (x86)\simpleide\propeller-gcc\bin\../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/include End of search list. COLLECT_GCC_OPTIONS='-v' '-I' '.' '-L.' '-I' 'C:\PropGCC_EFI/SimpleLibraries/Utility/libsimpletools' '-LC:\PropGCC_EFI/SimpleLibraries/Utility/libsimpletools/lmm/' '-I' 'C:\PropGCC_EFI/SimpleLibraries/TextDevices/libsimpletext' '-LC:\PropGCC_EFI/SimpleLibraries/TextDevices/libsimpletext/lmm/' '-I' 'C:\PropGCC_EFI/SimpleLibraries/Protocol/libsimplei2c' '-LC:\PropGCC_EFI/SimpleLibraries/Protocol/libsimplei2c/lmm/' '-I' 'C:\PropGCC_EFI/SimpleLibraries/TextDevices/libfdserial' '-LC:\PropGCC_EFI/SimpleLibraries/TextDevices/libfdserial/lmm/' '-o' 'lmm/PGCCEFI.elf' '-Os' '-mlmm' '-Wall' '-m32bit-doubles' '-fno-exceptions' '-std=c99' '-save-temps' c:/program files (x86)/simpleide/propeller-gcc/bin/../libexec/gcc/propeller-elf/4.6.1/cc1.exe -fpreprocessed PGCCEFI.i -quiet -dumpbase PGCCEFI.c -mlmm -m32bit-doubles -auxbase PGCCEFI -Os -Wall -std=c99 -version -fno-exceptions -o PGCCEFI.s GNU C (propellergcc_v1_0_0_2162) version 4.6.1 (propeller-elf) compiled by GNU C version 4.6.2, GMP version 5.0.2, MPFR version 3.0.1, MPC version 0.9 GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 GNU C (propellergcc_v1_0_0_2162) version 4.6.1 (propeller-elf) compiled by GNU C version 4.6.2, GMP version 5.0.2, MPFR version 3.0.1, MPC version 0.9 GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 Compiler executable checksum: b164ade464d31b01e5f340d6fe7b3f00 COLLECT_GCC_OPTIONS='-v' '-I' '.' '-L.' '-I' 'C:\PropGCC_EFI/SimpleLibraries/Utility/libsimpletools' '-LC:\PropGCC_EFI/SimpleLibraries/Utility/libsimpletools/lmm/' '-I' 'C:\PropGCC_EFI/SimpleLibraries/TextDevices/libsimpletext' '-LC:\PropGCC_EFI/SimpleLibraries/TextDevices/libsimpletext/lmm/' '-I' 'C:\PropGCC_EFI/SimpleLibraries/Protocol/libsimplei2c' '-LC:\PropGCC_EFI/SimpleLibraries/Protocol/libsimplei2c/lmm/' '-I' 'C:\PropGCC_EFI/SimpleLibraries/TextDevices/libfdserial' '-LC:\PropGCC_EFI/SimpleLibraries/TextDevices/libfdserial/lmm/' '-o' 'lmm/PGCCEFI.elf' '-Os' '-mlmm' '-Wall' '-m32bit-doubles' '-fno-exceptions' '-std=c99' '-save-temps' c:/program files (x86)/simpleide/propeller-gcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/as.exe -lmm -o PGCCEFI.o PGCCEFI.s COMPILER_PATH=c:/program files (x86)/simpleide/propeller-gcc/bin/../libexec/gcc/propeller-elf/4.6.1/;c:/program files (x86)/simpleide/propeller-gcc/bin/../libexec/gcc/;c:/program files (x86)/simpleide/propeller-gcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ LIBRARY_PATH=c:/program files (x86)/simpleide/propeller-gcc/bin/../lib/gcc/propeller-elf/4.6.1/short-doubles/;c:/program files (x86)/simpleide/propeller-gcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/short-doubles/;c:/program files (x86)/simpleide/propeller-gcc/bin/../lib/gcc/propeller-elf/4.6.1/;c:/program files (x86)/simpleide/propeller-gcc/bin/../lib/gcc/;c:/program files (x86)/simpleide/propeller-gcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/ COLLECT_GCC_OPTIONS='-v' '-I' '.' '-L.' '-I' 'C:\PropGCC_EFI/SimpleLibraries/Utility/libsimpletools' '-LC:\PropGCC_EFI/SimpleLibraries/Utility/libsimpletools/lmm/' '-I' 'C:\PropGCC_EFI/SimpleLibraries/TextDevices/libsimpletext' '-LC:\PropGCC_EFI/SimpleLibraries/TextDevices/libsimpletext/lmm/' '-I' 'C:\PropGCC_EFI/SimpleLibraries/Protocol/libsimplei2c' '-LC:\PropGCC_EFI/SimpleLibraries/Protocol/libsimplei2c/lmm/' '-I' 'C:\PropGCC_EFI/SimpleLibraries/TextDevices/libfdserial' '-LC:\PropGCC_EFI/SimpleLibraries/TextDevices/libfdserial/lmm/' '-o' 'lmm/PGCCEFI.elf' '-Os' '-mlmm' '-Wall' '-m32bit-doubles' '-fno-exceptions' '-std=c99' '-save-temps' c:/program files (x86)/simpleide/propeller-gcc/bin/../libexec/gcc/propeller-elf/4.6.1/collect2.exe -mpropeller -o lmm/PGCCEFI.elf c:/program files (x86)/simpleide/propeller-gcc/bin/../lib/gcc/propeller-elf/4.6.1/short-doubles/spinboot.o c:/program files (x86)/simpleide/propeller-gcc/bin/../lib/gcc/propeller-elf/4.6.1/short-doubles/_crt0.o c:/program files (x86)/simpleide/propeller-gcc/bin/../lib/gcc/propeller-elf/4.6.1/short-doubles/_crtbegin.o -L. -LC:\PropGCC_EFI/SimpleLibraries/Utility/libsimpletools/lmm/ -LC:\PropGCC_EFI/SimpleLibraries/TextDevices/libsimpletext/lmm/ -LC:\PropGCC_EFI/SimpleLibraries/Protocol/libsimplei2c/lmm/ -LC:\PropGCC_EFI/SimpleLibraries/TextDevices/libfdserial/lmm/ -Lc:/program files (x86)/simpleide/propeller-gcc/bin/../lib/gcc/propeller-elf/4.6.1/short-doubles -Lc:/program files (x86)/simpleide/propeller-gcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/short-doubles -Lc:/program files (x86)/simpleide/propeller-gcc/bin/../lib/gcc/propeller-elf/4.6.1 -Lc:/program files (x86)/simpleide/propeller-gcc/bin/../lib/gcc -Lc:/program files (x86)/simpleide/propeller-gcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib PGCCEFI.o -lm -lsimpletools -lsimpletext -lsimplei2c -lfdserial -lm -lsimpletools -lsimpletext -lsimplei2c -lm -lsimpletools -lsimpletext -lm -lsimpletools -lm -lgcc --start-group -lc -lgcc --end-group -lgcc c:/program files (x86)/simpleide/propeller-gcc/bin/../lib/gcc/propeller-elf/4.6.1/short-doubles/_crtend.o c:/program files (x86)/simpleide/propeller-gcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: lmm/PGCCEFI.elf section `.text' will not fit in region `hub' c:/program files (x86)/simpleide/propeller-gcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: region `hub' overflowed by 15024 bytes collect2: ld returned 1 exit status Output completed (0 sec consumed) - Normal Termination
Thanks to all in advance..... -Mike

Comments
In SimpleIDE, right click on a file in the project manager and select Show Map File.
Or use this on the command line:
propeller-elf-gcc -Xlinker -Map=somefile.map somefile.c
#include <stdio.h> #include "propeller.h" //#include "fdserial.h" // Include Full Duplex Serial library #define reboot() __builtin_propeller_clkset(0x80) // For LMM cog 160 bytes declared as int // Add enough for stack & calcs unsigned int stack[(160 + (50 * 4)) / 4]; // Initialize the arrays volatile int verpm[] = {500,1000,1500,2000,2500,3000,3500,4000,4500,5000,5500,6000,6500,7000,7500,8000,8500,9000,9500,10000}; //volatile unsigned int verpm[20]; volatile int veload[] = {20,25,30,35,40,45,50,55,60,75,80,85,90,95,100,110,115,120,125,130}; //unsigned int veload[20]; unsigned int vetable[20][20]; volatile unsigned int rpm,load; unsigned int baseaddr = 40000; //EEPROM Adress unsigned int veresult; volatile unsigned int verpmsize = (sizeof(verpm)/4); unsigned int veloadsize = (sizeof(veload)/4); unsigned int cog2; //Candidates for moving declarations to interp cog - here now for debug purposes. //signed int x1; //signed int y1; int x1; // Here there be dragons int y1; // More dragons here..... //volatile int x1; //volatile int y1; //Debug vars volatile int hirpm; volatile int hiload; // Function prototype void interp(void *par); // Cog 0 starts here int main() { for ( int i = 0; i < 20; i++ ) { //verpm[i]=ee_getInt(baseaddr+2000+(i*4)); //veload[i]=ee_getInt(baseaddr+2080+(i*4)); printf("Loaded verpm[%2d] : %5d from EEPROM Address %x ",i,verpm[i],baseaddr+2000+(i*4)); printf("Loaded veload[%2d]: %5d from EEPROM Address %x\n",i,veload[i],baseaddr+2080+(i*4)); for (int i2 = 0; i2 < 20; i2++) { //vetable[i][i2]=ee_getInt(baseaddr+(i*80)+(i2*4)); } } //serial *SPORT = fdserial_open(31, 30, 0, 115200); printf("\n\n =->FIN<-=\n"); cog2 = cogstart(&interp, NULL, stack, sizeof(stack)); // Start interp cog while(1) { for ( rpm = 0, load = 0; rpm < 12000; rpm=rpm+500,load=load+10 ) { waitcnt(CLKFREQ/2 + CNT); printf("**************\n"); printf("RPM - %d\n",rpm); printf("LOAD - %d\n",load); //print("SizeofRpm - %d\n",verpmsize-1); printf("hirpm: %d\n",hirpm); printf("hiload: %d\n",hiload); printf("**************\n"); } } } void interp(void *par) { //int x1; // These work fine when declared here //int y1; // and here..... while(1) { // Sanity check of rpm & load, make sure in bounds of table edges if (rpm > verpm[verpmsize-1]) rpm = verpm[verpmsize-1]; else if(rpm < verpm[0]) rpm = verpm[0]; if (load > veload[veloadsize-1]) load = veload[veloadsize-1]; else if(load < veload[0]) load = veload[0]; // Done with Sanity check of rpm & load, make sure in bounds of table edges // Get highest index into rpmtable for(x1 = 19; x1+1 > 0; x1--) { if(rpm > verpm[x1]) { hirpm = verpm[x1]; break; } } // Done with Get highest index into rpmtable // Get highest index into loadtable for(y1 = 19; y1+1>0; y1--) { if(load > veload[y1]) { hiload = veload[y1]; break; } } waitcnt(CLKFREQ*300/1000 + CNT); // Done with Get highest index into loadtable } }And here's the compilation:
With this version it works. I'm not sure what to conclude from this. Just another data point I guess.
Edit: I've added the map file, just in case.
-Mike
Archive member included because of file (symbol) C:\PropGCC_EFI/SimpleLibraries/Utility/libsimpletools/lmm/\libsimpletools.a(pause.o) PGCCEFI.o (_pause) C:\PropGCC_EFI/SimpleLibraries/Utility/libsimpletools/lmm/\libsimpletools.a(setPauseDt.o) C:\PropGCC_EFI/SimpleLibraries/Utility/libsimpletools/lmm/\libsimpletools.a(pause.o) (_set_pause_dt) C:\PropGCC_EFI/SimpleLibraries/Utility/libsimpletools/lmm/\libsimpletools.a(eeprom_getInt.o) PGCCEFI.o (_ee_getInt) C:\PropGCC_EFI/SimpleLibraries/Utility/libsimpletools/lmm/\libsimpletools.a(i2c_in.o) C:\PropGCC_EFI/SimpleLibraries/Utility/libsimpletools/lmm/\libsimpletools.a(eeprom_getInt.o) (_i2c_in) C:\PropGCC_EFI/SimpleLibraries/Utility/libsimpletools/lmm/\libsimpletools.a(eeprom_init.o) C:\PropGCC_EFI/SimpleLibraries/Utility/libsimpletools/lmm/\libsimpletools.a(eeprom_getInt.o) (_ee_init) C:\PropGCC_EFI/SimpleLibraries/Utility/libsimpletools/lmm/\libsimpletools.a(i2c_init.o) C:\PropGCC_EFI/SimpleLibraries/Utility/libsimpletools/lmm/\libsimpletools.a(eeprom_init.o) (_i2c_newbus) C:\PropGCC_EFI/SimpleLibraries/TextDevices/libsimpletext/lmm/\libsimpletext.a(print.o) PGCCEFI.o (_print) C:\PropGCC_EFI/SimpleLibraries/TextDevices/libsimpletext/lmm/\libsimpletext.a(putStr.o) C:\PropGCC_EFI/SimpleLibraries/TextDevices/libsimpletext/lmm/\libsimpletext.a(print.o) (_putStr) C:\PropGCC_EFI/SimpleLibraries/TextDevices/libsimpletext/lmm/\libsimpletext.a(putChar.o) C:\PropGCC_EFI/SimpleLibraries/TextDevices/libsimpletext/lmm/\libsimpletext.a(putStr.o) (_putChar) C:\PropGCC_EFI/SimpleLibraries/TextDevices/libsimpletext/lmm/\libsimpletext.a(simpleterm.o) C:\PropGCC_EFI/SimpleLibraries/TextDevices/libsimpletext/lmm/\libsimpletext.a(putChar.o) (_dport_ptr) C:\PropGCC_EFI/SimpleLibraries/TextDevices/libsimpletext/lmm/\libsimpletext.a(dosprint.o) C:\PropGCC_EFI/SimpleLibraries/TextDevices/libsimpletext/lmm/\libsimpletext.a(print.o) (__dosprnt) C:\PropGCC_EFI/SimpleLibraries/TextDevices/libsimpletext/lmm/\libsimpletext.a(serial_rxtx.o) C:\PropGCC_EFI/SimpleLibraries/TextDevices/libsimpletext/lmm/\libsimpletext.a(simpleterm.o) (_serial_rxChar) C:\PropGCC_EFI/SimpleLibraries/TextDevices/libsimpletext/lmm/\libsimpletext.a(floatToString.o) C:\PropGCC_EFI/SimpleLibraries/TextDevices/libsimpletext/lmm/\libsimpletext.a(dosprint.o) (_float2string) C:\PropGCC_EFI/SimpleLibraries/Protocol/libsimplei2c/lmm/\libsimplei2c.a(simplei2c.o) C:\PropGCC_EFI/SimpleLibraries/Utility/libsimpletools/lmm/\libsimpletools.a(i2c_in.o) (_i2c_start) C:\PropGCC_EFI/SimpleLibraries/Utility/libsimpletools/lmm/\libsimpletools.a(fpucog.o) C:\PropGCC_EFI/SimpleLibraries/TextDevices/libsimpletext/lmm/\libsimpletext.a(floatToString.o) (___subsf3) c:/program files (x86)/simpleide/propeller-gcc/bin/../lib/gcc/propeller-elf/4.6.1/short-doubles\libgcc.a(gesf2.o) C:\PropGCC_EFI/SimpleLibraries/TextDevices/libsimpletext/lmm/\libsimpletext.a(floatToString.o) (___gesf2) c:/program files (x86)/simpleide/propeller-gcc/bin/../lib/gcc/propeller-elf/4.6.1/short-doubles\libgcc.a(lesf2.o) C:\PropGCC_EFI/SimpleLibraries/TextDevices/libsimpletext/lmm/\libsimpletext.a(floatToString.o) (___ltsf2) c:/program files (x86)/simpleide/propeller-gcc/bin/../lib/gcc/propeller-elf/4.6.1/short-doubles\libgcc.a(fixsfsi.o) C:\PropGCC_EFI/SimpleLibraries/TextDevices/libsimpletext/lmm/\libsimpletext.a(floatToString.o) (_(float, int, long long, short, float, short, int)) c:/program files (x86)/simpleide/propeller-gcc/bin/../lib/gcc/propeller-elf/4.6.1/short-doubles\libgcc.a(fixunssfsi.o) C:\PropGCC_EFI/SimpleLibraries/TextDevices/libsimpletext/lmm/\libsimpletext.a(floatToString.o) (___fixunssfsi) c:/program files (x86)/simpleide/propeller-gcc/bin/../lib/gcc/propeller-elf/4.6.1/short-doubles\libgcc.a(floatunsisf.o) C:\PropGCC_EFI/SimpleLibraries/TextDevices/libsimpletext/lmm/\libsimpletext.a(floatToString.o) (___floatunsisf) c:/program files (x86)/simpleide/propeller-gcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/short-doubles\libc.a(ctype.o) C:\PropGCC_EFI/SimpleLibraries/TextDevices/libsimpletext/lmm/\libsimpletext.a(dosprint.o) (___ctype) c:/program files (x86)/simpleide/propeller-gcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/short-doubles\libc.a(thread.o) c:/program files (x86)/simpleide/propeller-gcc/bin/../lib/gcc/propeller-elf/4.6.1/short-doubles/_crt0.o (__TLS) c:/program files (x86)/simpleide/propeller-gcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/short-doubles\libc.a(cogstart.o) PGCCEFI.o (_cogstart) c:/program files (x86)/simpleide/propeller-gcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/short-doubles\libc.a(memset.o) c:/program files (x86)/simpleide/propeller-gcc/bin/../lib/gcc/propeller-elf/4.6.1/short-doubles/_crtbegin.o (_memset) Allocating common symbols Common symbol size file _eeInitFlag 0x4 C:\PropGCC_EFI/SimpleLibraries/Utility/libsimpletools/lmm/\libsimpletools.a(eeprom_getInt.o) _rpm 0x4 PGCCEFI.o _eeprom 0x4 C:\PropGCC_EFI/SimpleLibraries/Utility/libsimpletools/lmm/\libsimpletools.a(eeprom_getInt.o) _verpm 0x50 PGCCEFI.o _hiload 0x4 PGCCEFI.o _veload 0x50 PGCCEFI.o _cog2 0x4 PGCCEFI.o _vetable 0x640 PGCCEFI.o _yq1 0x4 PGCCEFI.o _xq1 0x4 PGCCEFI.o _veresult 0x4 PGCCEFI.o _debug_serial 0x14 C:\PropGCC_EFI/SimpleLibraries/TextDevices/libsimpletext/lmm/\libsimpletext.a(simpleterm.o) _hirpm 0x4 PGCCEFI.o _stack 0x168 PGCCEFI.o _load 0x4 PGCCEFI.o Memory Configuration Name Origin Length Attributes hub 0x00000000 0x00008000 cog 0x00000000 0x000007c0 coguser 0x00000000 0x000007c0 ram 0x20000000 0x10000000 rom 0x30000000 0x10000000 drivers 0xc0000000 0x00100000 dummy 0xe0000000 0x00100000 *default* 0x00000000 0xffffffff Linker script and memory map LOAD c:/program files (x86)/simpleide/propeller-gcc/bin/../lib/gcc/propeller-elf/4.6.1/short-doubles/spinboot.o LOAD c:/program files (x86)/simpleide/propeller-gcc/bin/../lib/gcc/propeller-elf/4.6.1/short-doubles/_crt0.o LOAD c:/program files (x86)/simpleide/propeller-gcc/bin/../lib/gcc/propeller-elf/4.6.1/short-doubles/_crtbegin.o LOAD PGCCEFI.o LOAD c:/program files (x86)/simpleide/propeller-gcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/short-doubles\libm.a LOAD C:\PropGCC_EFI/SimpleLibraries/Utility/libsimpletools/lmm/\libsimpletools.a LOAD C:\PropGCC_EFI/SimpleLibraries/TextDevices/libsimpletext/lmm/\libsimpletext.a LOAD C:\PropGCC_EFI/SimpleLibraries/Protocol/libsimplei2c/lmm/\libsimplei2c.a LOAD C:\PropGCC_EFI/SimpleLibraries/TextDevices/libfdserial/lmm/\libfdserial.a LOAD c:/program files (x86)/simpleide/propeller-gcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/short-doubles\libm.a LOAD C:\PropGCC_EFI/SimpleLibraries/Utility/libsimpletools/lmm/\libsimpletools.a LOAD C:\PropGCC_EFI/SimpleLibraries/TextDevices/libsimpletext/lmm/\libsimpletext.a LOAD C:\PropGCC_EFI/SimpleLibraries/Protocol/libsimplei2c/lmm/\libsimplei2c.a LOAD c:/program files (x86)/simpleide/propeller-gcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/short-doubles\libm.a LOAD C:\PropGCC_EFI/SimpleLibraries/Utility/libsimpletools/lmm/\libsimpletools.a LOAD C:\PropGCC_EFI/SimpleLibraries/TextDevices/libsimpletext/lmm/\libsimpletext.a LOAD c:/program files (x86)/simpleide/propeller-gcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/short-doubles\libm.a LOAD C:\PropGCC_EFI/SimpleLibraries/Utility/libsimpletools/lmm/\libsimpletools.a LOAD c:/program files (x86)/simpleide/propeller-gcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/short-doubles\libm.a LOAD c:/program files (x86)/simpleide/propeller-gcc/bin/../lib/gcc/propeller-elf/4.6.1/short-doubles\libgcc.a START GROUP LOAD c:/program files (x86)/simpleide/propeller-gcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/short-doubles\libc.a LOAD c:/program files (x86)/simpleide/propeller-gcc/bin/../lib/gcc/propeller-elf/4.6.1/short-doubles\libgcc.a END GROUP LOAD c:/program files (x86)/simpleide/propeller-gcc/bin/../lib/gcc/propeller-elf/4.6.1/short-doubles\libgcc.a LOAD c:/program files (x86)/simpleide/propeller-gcc/bin/../lib/gcc/propeller-elf/4.6.1/short-doubles/_crtend.o .boot 0x00000000 0x20 *(.boot) .boot 0x00000000 0x20 c:/program files (x86)/simpleide/propeller-gcc/bin/../lib/gcc/propeller-elf/4.6.1/short-doubles/spinboot.o 0x00000000 __clkfreq 0x00000004 __clkmode 0x00000008 __sys_mbox .lmmkernel 0x00000000 0x794 load address 0x00000020 *(.lmmkernel) .lmmkernel 0x00000000 0x790 c:/program files (x86)/simpleide/propeller-gcc/bin/../lib/gcc/propeller-elf/4.6.1/short-doubles/_crt0.o 0x00000000 r0 0x00000000 __LMM_entry 0x00000004 r1 0x00000008 r2 0x0000000c r3 0x00000010 r4 0x00000014 r5 0x00000018 r6 0x0000001c r7 0x00000020 r8 0x00000024 r9 0x00000028 r10 0x0000002c r11 0x00000030 r12 0x00000034 r13 0x00000038 r14 0x0000003c lr 0x00000040 sp 0x00000044 pc 0x000000ac __LMM_MVI_r0 0x000000b8 __LMM_MVI_r1 0x000000c4 __LMM_MVI_r2 0x000000d0 __LMM_MVI_r3 0x000000dc __LMM_MVI_r4 0x000000e8 __LMM_MVI_r5 0x000000f4 __LMM_MVI_r6 0x00000100 __LMM_MVI_r7 0x0000010c __LMM_MVI_r8 0x00000118 __LMM_MVI_r9 0x00000124 __LMM_MVI_r10 0x00000130 __LMM_MVI_r11 0x0000013c __LMM_MVI_r12 0x00000148 __LMM_MVI_r13 0x00000154 __LMM_MVI_r14 0x00000160 __LMM_MVI_lr 0x0000016c __LMM_CALL 0x00000174 __LMM_CALL_INDIRECT 0x00000180 __LMM_JMP 0x00000188 __LMM_PUSHM 0x000001a8 __LMM_PUSHM_ret 0x000001b0 __LMM_POPRET 0x000001b8 __LMM_POPRET_ret 0x000001bc __LMM_POPM 0x000001dc __LMM_POPM_ret 0x000001e0 __MASK_0000FFFF 0x000001e4 __MASK_FFFFFFFF 0x000001e8 __TMP0 0x000001fc __CLZSI 0x00000200 __CTZSI 0x00000238 __CLZSI_ret 0x00000244 __UDIVSI 0x00000288 __UDIVSI_ret 0x00000290 __DIVSI 0x000002b8 __DIVSI_ret 0x000002c8 __MULSI 0x000002e8 __MULSI_ret 0x000002ec __C_LOCK_PTR 0x000002f0 __CMPSWAPSI 0x00000310 __CMPSWAPSI_ret 0x0000031c __LMM_RET 0x00000320 __LMM_FCACHE_LOAD 0x00000390 __LMM_FCACHE_START *(.kernel) .kernel 0x00000790 0x4 c:/program files (x86)/simpleide/propeller-gcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/short-doubles\libc.a(thread.o) 0x00000790 __TLS .init 0x000007b4 0xb8 *(.init*) .init 0x000007b4 0xa0 c:/program files (x86)/simpleide/propeller-gcc/bin/../lib/gcc/propeller-elf/4.6.1/short-doubles/_crtbegin.o 0x000007b4 start 0x000007b4 entry 0x000007fc ___init .init 0x00000854 0x18 c:/program files (x86)/simpleide/propeller-gcc/bin/../lib/gcc/propeller-elf/4.6.1/short-doubles/_crtend.o .text 0x0000086c 0x19bc *(.text*) .text 0x0000086c 0x0 c:/program files (x86)/simpleide/propeller-gcc/bin/../lib/gcc/propeller-elf/4.6.1/short-doubles/spinboot.o .text 0x0000086c 0x0 c:/program files (x86)/simpleide/propeller-gcc/bin/../lib/gcc/propeller-elf/4.6.1/short-doubles/_crt0.o .text 0x0000086c 0x0 c:/program files (x86)/simpleide/propeller-gcc/bin/../lib/gcc/propeller-elf/4.6.1/short-doubles/_crtbegin.o .text 0x0000086c 0x4ac PGCCEFI.o 0x0000086c _interp 0x00000a40 _main .text 0x00000d18 0x6c C:\PropGCC_EFI/SimpleLibraries/Utility/libsimpletools/lmm/\libsimpletools.a(pause.o) 0x00000d18 _pause .text 0x00000d84 0x10 C:\PropGCC_EFI/SimpleLibraries/Utility/libsimpletools/lmm/\libsimpletools.a(setPauseDt.o) 0x00000d84 _set_pause_dt .text 0x00000d94 0xd0 C:\PropGCC_EFI/SimpleLibraries/Utility/libsimpletools/lmm/\libsimpletools.a(eeprom_getInt.o) 0x00000d94 _ee_getInt .text 0x00000e64 0x0 C:\PropGCC_EFI/SimpleLibraries/Utility/libsimpletools/lmm/\libsimpletools.a(i2c_in.o) .text 0x00000e64 0x44 C:\PropGCC_EFI/SimpleLibraries/Utility/libsimpletools/lmm/\libsimpletools.a(eeprom_init.o) 0x00000e64 _ee_init .text 0x00000ea8 0x70 C:\PropGCC_EFI/SimpleLibraries/Utility/libsimpletools/lmm/\libsimpletools.a(i2c_init.o) 0x00000ea8 _i2c_newbus .text 0x00000f18 0x4c C:\PropGCC_EFI/SimpleLibraries/TextDevices/libsimpletext/lmm/\libsimpletext.a(print.o) 0x00000f18 _print .text 0x00000f64 0x38 C:\PropGCC_EFI/SimpleLibraries/TextDevices/libsimpletext/lmm/\libsimpletext.a(putStr.o) 0x00000f64 _putStr .text 0x00000f9c 0x6c C:\PropGCC_EFI/SimpleLibraries/TextDevices/libsimpletext/lmm/\libsimpletext.a(putChar.o) 0x00000f9c _putChar .text 0x00001008 0x10c C:\PropGCC_EFI/SimpleLibraries/TextDevices/libsimpletext/lmm/\libsimpletext.a(simpleterm.o) 0x00001008 _simpleterm_open 0x00001104 _simpleterm_pointer .text 0x00001114 0x3a0 C:\PropGCC_EFI/SimpleLibraries/TextDevices/libsimpletext/lmm/\libsimpletext.a(dosprint.o) 0x00001200 __dosprnt .text 0x000014b4 0x130 C:\PropGCC_EFI/SimpleLibraries/TextDevices/libsimpletext/lmm/\libsimpletext.a(serial_rxtx.o) 0x00001534 _serial_rxChar 0x0000158c _serial_txChar .text 0x000015e4 0x380 C:\PropGCC_EFI/SimpleLibraries/TextDevices/libsimpletext/lmm/\libsimpletext.a(floatToString.o) 0x000015e4 _float2string .text 0x00001964 0x0 C:\PropGCC_EFI/SimpleLibraries/Protocol/libsimplei2c/lmm/\libsimplei2c.a(simplei2c.o) .text 0x00001964 0x370 C:\PropGCC_EFI/SimpleLibraries/Utility/libsimpletools/lmm/\libsimpletools.a(fpucog.o) 0x00001a44 _start_fpu_cog 0x00001aa4 _stop_fpu_cog 0x00001acc ___adddf3 0x00001af8 ___subdf3 0x00001b24 ___muldf3 0x00001b50 ___divdf3 0x00001b7c ___addsf3 0x00001b9c ___subsf3 0x00001bbc ___mulsf3 0x00001bdc ___divsf3 0x00001bfc ___floatsisf 0x00001c20 ___floatunssisf 0x00001c44 ___floatsidf 0x00001c68 ___floatunssidf 0x00001c8c ___extendsfdf2 0x00001cb0 ___truncdfsf2 .text 0x00001cd4 0x118 c:/program files (x86)/simpleide/propeller-gcc/bin/../lib/gcc/propeller-elf/4.6.1/short-doubles\libgcc.a(gesf2.o) 0x00001cd4 ___gesf2 0x00001cd4 ___gtsf2 .text 0x00001dec 0x118 c:/program files (x86)/simpleide/propeller-gcc/bin/../lib/gcc/propeller-elf/4.6.1/short-doubles\libgcc.a(lesf2.o) 0x00001dec ___ltsf2 0x00001dec ___lesf2 .text 0x00001f04 0x7c c:/program files (x86)/simpleide/propeller-gcc/bin/../lib/gcc/propeller-elf/4.6.1/short-doubles\libgcc.a(fixsfsi.o) 0x00001f04 _(float, int, long long, short, float, short, int) .text 0x00001f80 0x7c c:/program files (x86)/simpleide/propeller-gcc/bin/../lib/gcc/propeller-elf/4.6.1/short-doubles\libgcc.a(fixunssfsi.o) 0x00001f80 ___fixunssfsi .text 0x00001ffc 0x10c c:/program files (x86)/simpleide/propeller-gcc/bin/../lib/gcc/propeller-elf/4.6.1/short-doubles\libgcc.a(floatunsisf.o) 0x00001ffc ___floatunsisf .text 0x00002108 0x0 c:/program files (x86)/simpleide/propeller-gcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/short-doubles\libc.a(ctype.o) .text 0x00002108 0x4 c:/program files (x86)/simpleide/propeller-gcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/short-doubles\libc.a(thread.o) .text 0x0000210c 0x80 c:/program files (x86)/simpleide/propeller-gcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/short-doubles\libc.a(cogstart.o) 0x0000210c _cogstart .text 0x0000218c 0x9c c:/program files (x86)/simpleide/propeller-gcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/short-doubles\libc.a(memset.o) 0x0000218c _memset .text 0x00002228 0x0 c:/program files (x86)/simpleide/propeller-gcc/bin/../lib/gcc/propeller-elf/4.6.1/short-doubles/_crtend.o 0x00002228 _etext = . .fpu.cog 0x00000000 0x71c load address 0x00002228 .fpu.cog 0x00000000 0x71c C:\PropGCC_EFI/SimpleLibraries/Utility/libsimpletools/lmm/\libsimpletools.a(fpucog.o) .fini 0x00002944 0x3c *(.fini*) .fini 0x00002944 0x28 c:/program files (x86)/simpleide/propeller-gcc/bin/../lib/gcc/propeller-elf/4.6.1/short-doubles/_crtbegin.o 0x00002944 _exit .fini 0x0000296c 0x14 c:/program files (x86)/simpleide/propeller-gcc/bin/../lib/gcc/propeller-elf/4.6.1/short-doubles/_crtend.o 0x00002970 __Exit 0x00002970 __exit 0x0000297c __ExitHook .hub 0x00002980 0x744 *(.hubstart) *(.hubtext*) .hubtext 0x00002980 0xc8 C:\PropGCC_EFI/SimpleLibraries/Utility/libsimpletools/lmm/\libsimpletools.a(i2c_in.o) 0x00002980 _i2c_in .hubtext 0x00002a48 0x4d4 C:\PropGCC_EFI/SimpleLibraries/Protocol/libsimplei2c/lmm/\libsimplei2c.a(simplei2c.o) 0x00002acc _i2c_start 0x00002b80 _i2c_stop 0x00002c00 _i2c_open 0x00002c68 _i2c_writeByte 0x00002d24 _i2c_readByte 0x00002e20 _i2c_writeData 0x00002e80 _i2c_readData 0x00002eec _i2c_poll *(.hubdata*) *(.hub) .hub 0x00002f1c 0x2c C:\PropGCC_EFI/SimpleLibraries/TextDevices/libsimpletext/lmm/\libsimpletext.a(simpleterm.o) 0x00002f1c _debug_port 0x00002f44 _dport_ptr .hub 0x00002f48 0x4 C:\PropGCC_EFI/SimpleLibraries/Utility/libsimpletools/lmm/\libsimpletools.a(fpucog.o) *(.data) .data 0x00002f4c 0x0 c:/program files (x86)/simpleide/propeller-gcc/bin/../lib/gcc/propeller-elf/4.6.1/short-doubles/spinboot.o .data 0x00002f4c 0x0 c:/program files (x86)/simpleide/propeller-gcc/bin/../lib/gcc/propeller-elf/4.6.1/short-doubles/_crt0.o .data 0x00002f4c 0x0 c:/program files (x86)/simpleide/propeller-gcc/bin/../lib/gcc/propeller-elf/4.6.1/short-doubles/_crtbegin.o .data 0x00002f4c 0xd0 PGCCEFI.o 0x00003010 _veloadsize 0x00003014 _verpmsize 0x00003018 _baseaddr .data 0x0000301c 0x0 C:\PropGCC_EFI/SimpleLibraries/Utility/libsimpletools/lmm/\libsimpletools.a(pause.o) .data 0x0000301c 0x0 C:\PropGCC_EFI/SimpleLibraries/Utility/libsimpletools/lmm/\libsimpletools.a(setPauseDt.o) .data 0x0000301c 0x0 C:\PropGCC_EFI/SimpleLibraries/Utility/libsimpletools/lmm/\libsimpletools.a(eeprom_getInt.o) .data 0x0000301c 0x0 C:\PropGCC_EFI/SimpleLibraries/Utility/libsimpletools/lmm/\libsimpletools.a(i2c_in.o) .data 0x0000301c 0x0 C:\PropGCC_EFI/SimpleLibraries/Utility/libsimpletools/lmm/\libsimpletools.a(eeprom_init.o) .data 0x0000301c 0x0 C:\PropGCC_EFI/SimpleLibraries/Utility/libsimpletools/lmm/\libsimpletools.a(i2c_init.o) .data 0x0000301c 0x0 C:\PropGCC_EFI/SimpleLibraries/TextDevices/libsimpletext/lmm/\libsimpletext.a(print.o) .data 0x0000301c 0x0 C:\PropGCC_EFI/SimpleLibraries/TextDevices/libsimpletext/lmm/\libsimpletext.a(putStr.o) .data 0x0000301c 0x0 C:\PropGCC_EFI/SimpleLibraries/TextDevices/libsimpletext/lmm/\libsimpletext.a(putChar.o) .data 0x0000301c 0x0 C:\PropGCC_EFI/SimpleLibraries/TextDevices/libsimpletext/lmm/\libsimpletext.a(simpleterm.o) .data 0x0000301c 0x14 C:\PropGCC_EFI/SimpleLibraries/TextDevices/libsimpletext/lmm/\libsimpletext.a(dosprint.o) .data 0x00003030 0x0 C:\PropGCC_EFI/SimpleLibraries/TextDevices/libsimpletext/lmm/\libsimpletext.a(serial_rxtx.o) .data 0x00003030 0x8 C:\PropGCC_EFI/SimpleLibraries/TextDevices/libsimpletext/lmm/\libsimpletext.a(floatToString.o) .data 0x00003038 0x0 C:\PropGCC_EFI/SimpleLibraries/Protocol/libsimplei2c/lmm/\libsimplei2c.a(simplei2c.o) .data 0x00003038 0x0 C:\PropGCC_EFI/SimpleLibraries/Utility/libsimpletools/lmm/\libsimpletools.a(fpucog.o) .data 0x00003038 0x0 c:/program files (x86)/simpleide/propeller-gcc/bin/../lib/gcc/propeller-elf/4.6.1/short-doubles\libgcc.a(gesf2.o) .data 0x00003038 0x0 c:/program files (x86)/simpleide/propeller-gcc/bin/../lib/gcc/propeller-elf/4.6.1/short-doubles\libgcc.a(lesf2.o) .data 0x00003038 0x0 c:/program files (x86)/simpleide/propeller-gcc/bin/../lib/gcc/propeller-elf/4.6.1/short-doubles\libgcc.a(fixsfsi.o) .data 0x00003038 0x0 c:/program files (x86)/simpleide/propeller-gcc/bin/../lib/gcc/propeller-elf/4.6.1/short-doubles\libgcc.a(fixunssfsi.o) .data 0x00003038 0x0 c:/program files (x86)/simpleide/propeller-gcc/bin/../lib/gcc/propeller-elf/4.6.1/short-doubles\libgcc.a(floatunsisf.o) .data 0x00003038 0x84 c:/program files (x86)/simpleide/propeller-gcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/short-doubles\libc.a(ctype.o) 0x00003038 ___ctype .data 0x000030bc 0x4 c:/program files (x86)/simpleide/propeller-gcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/short-doubles\libc.a(thread.o) 0x000030bc ___yield_ptr .data 0x000030c0 0x0 c:/program files (x86)/simpleide/propeller-gcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/short-doubles\libc.a(cogstart.o) .data 0x000030c0 0x0 c:/program files (x86)/simpleide/propeller-gcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/short-doubles\libc.a(memset.o) .data 0x000030c0 0x0 c:/program files (x86)/simpleide/propeller-gcc/bin/../lib/gcc/propeller-elf/4.6.1/short-doubles/_crtend.o *(.data*) *(.rodata) *(.rodata*) *(.gnu.linkonce.d*) 0x000030c0 PROVIDE (__C_LOCK, .) 0x000030c0 0x4 LONG 0x0 .ctors 0x000030c4 0xc *(.ctors*) .ctors 0x000030c4 0x4 C:\PropGCC_EFI/SimpleLibraries/TextDevices/libsimpletext/lmm/\libsimpletext.a(simpleterm.o) .ctors 0x000030c8 0x4 C:\PropGCC_EFI/SimpleLibraries/Utility/libsimpletools/lmm/\libsimpletools.a(fpucog.o) .ctors 0x000030cc 0x4 c:/program files (x86)/simpleide/propeller-gcc/bin/../lib/gcc/propeller-elf/4.6.1/short-doubles/_crtend.o 0x000030cc __argv 0x000030cc __environ .dtors 0x000030d0 0x4 *(.dtors*) .dtors 0x000030d0 0x4 c:/program files (x86)/simpleide/propeller-gcc/bin/../lib/gcc/propeller-elf/4.6.1/short-doubles/_crtend.o .data 0x000030d4 0x0 0x000030d4 . = ALIGN (0x4) .bss 0x000030d4 0xa0c 0x000030d4 PROVIDE (__bss_start, .) *(.bss) .bss 0x000030d4 0x0 c:/program files (x86)/simpleide/propeller-gcc/bin/../lib/gcc/propeller-elf/4.6.1/short-doubles/spinboot.o .bss 0x000030d4 0x0 c:/program files (x86)/simpleide/propeller-gcc/bin/../lib/gcc/propeller-elf/4.6.1/short-doubles/_crt0.o .bss 0x000030d4 0x0 c:/program files (x86)/simpleide/propeller-gcc/bin/../lib/gcc/propeller-elf/4.6.1/short-doubles/_crtbegin.o .bss 0x000030d4 0x0 PGCCEFI.o .bss 0x000030d4 0x4 C:\PropGCC_EFI/SimpleLibraries/Utility/libsimpletools/lmm/\libsimpletools.a(pause.o) 0x000030d4 _pauseTicks .bss 0x000030d8 0x0 C:\PropGCC_EFI/SimpleLibraries/Utility/libsimpletools/lmm/\libsimpletools.a(setPauseDt.o) .bss 0x000030d8 0x0 C:\PropGCC_EFI/SimpleLibraries/Utility/libsimpletools/lmm/\libsimpletools.a(eeprom_getInt.o) .bss 0x000030d8 0x0 C:\PropGCC_EFI/SimpleLibraries/Utility/libsimpletools/lmm/\libsimpletools.a(i2c_in.o) .bss 0x000030d8 0x0 C:\PropGCC_EFI/SimpleLibraries/Utility/libsimpletools/lmm/\libsimpletools.a(eeprom_init.o) .bss 0x000030d8 0xa4 C:\PropGCC_EFI/SimpleLibraries/Utility/libsimpletools/lmm/\libsimpletools.a(i2c_init.o) 0x000030d8 _buscnt .bss 0x0000317c 0x0 C:\PropGCC_EFI/SimpleLibraries/TextDevices/libsimpletext/lmm/\libsimpletext.a(print.o) .bss 0x0000317c 0x0 C:\PropGCC_EFI/SimpleLibraries/TextDevices/libsimpletext/lmm/\libsimpletext.a(putStr.o) .bss 0x0000317c 0x0 C:\PropGCC_EFI/SimpleLibraries/TextDevices/libsimpletext/lmm/\libsimpletext.a(putChar.o) .bss 0x0000317c 0x0 C:\PropGCC_EFI/SimpleLibraries/TextDevices/libsimpletext/lmm/\libsimpletext.a(simpleterm.o) .bss 0x0000317c 0x20 C:\PropGCC_EFI/SimpleLibraries/TextDevices/libsimpletext/lmm/\libsimpletext.a(dosprint.o) .bss 0x0000319c 0x0 C:\PropGCC_EFI/SimpleLibraries/TextDevices/libsimpletext/lmm/\libsimpletext.a(serial_rxtx.o) .bss 0x0000319c 0x0 C:\PropGCC_EFI/SimpleLibraries/TextDevices/libsimpletext/lmm/\libsimpletext.a(floatToString.o) .bss 0x0000319c 0x0 C:\PropGCC_EFI/SimpleLibraries/Protocol/libsimplei2c/lmm/\libsimplei2c.a(simplei2c.o) .bss 0x0000319c 0x18 C:\PropGCC_EFI/SimpleLibraries/Utility/libsimpletools/lmm/\libsimpletools.a(fpucog.o) .bss 0x000031b4 0x0 c:/program files (x86)/simpleide/propeller-gcc/bin/../lib/gcc/propeller-elf/4.6.1/short-doubles\libgcc.a(gesf2.o) .bss 0x000031b4 0x0 c:/program files (x86)/simpleide/propeller-gcc/bin/../lib/gcc/propeller-elf/4.6.1/short-doubles\libgcc.a(lesf2.o) .bss 0x000031b4 0x0 c:/program files (x86)/simpleide/propeller-gcc/bin/../lib/gcc/propeller-elf/4.6.1/short-doubles\libgcc.a(fixsfsi.o) .bss 0x000031b4 0x0 c:/program files (x86)/simpleide/propeller-gcc/bin/../lib/gcc/propeller-elf/4.6.1/short-doubles\libgcc.a(fixunssfsi.o) .bss 0x000031b4 0x0 c:/program files (x86)/simpleide/propeller-gcc/bin/../lib/gcc/propeller-elf/4.6.1/short-doubles\libgcc.a(floatunsisf.o) .bss 0x000031b4 0x0 c:/program files (x86)/simpleide/propeller-gcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/short-doubles\libc.a(ctype.o) .bss 0x000031b4 0xa8 c:/program files (x86)/simpleide/propeller-gcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/short-doubles\libc.a(thread.o) 0x000031b4 ___napuntil_ptr .bss 0x0000325c 0x0 c:/program files (x86)/simpleide/propeller-gcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/short-doubles\libc.a(cogstart.o) .bss 0x0000325c 0x0 c:/program files (x86)/simpleide/propeller-gcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/short-doubles\libc.a(memset.o) .bss 0x0000325c 0x0 c:/program files (x86)/simpleide/propeller-gcc/bin/../lib/gcc/propeller-elf/4.6.1/short-doubles/_crtend.o *(.bss*) *(COMMON) COMMON 0x0000325c 0x868 PGCCEFI.o 0x0000325c _rpm 0x00003260 _verpm 0x000032b0 _hiload 0x000032b4 _veload 0x00003304 _cog2 0x00003308 _vetable 0x00003948 _yq1 0x0000394c _xq1 0x00003950 _veresult 0x00003954 _hirpm 0x00003958 _stack 0x00003ac0 _load COMMON 0x00003ac4 0x8 C:\PropGCC_EFI/SimpleLibraries/Utility/libsimpletools/lmm/\libsimpletools.a(eeprom_getInt.o) 0x00003ac4 _eeInitFlag 0x00003ac8 _eeprom COMMON 0x00003acc 0x14 C:\PropGCC_EFI/SimpleLibraries/TextDevices/libsimpletext/lmm/\libsimpletext.a(simpleterm.o) 0x00003acc _debug_serial 0x00003ae0 PROVIDE (__bss_end, .) .hub_heap 0x00003ae0 0x4 0x00003ae4 . = (. + 0x4) *fill* 0x00003ae0 0x4 00 0x00003ae0 ___hub_heap_start = ADDR (.hub_heap) .drivers *(.drivers) 0x00000020 __load_start_kernel = LOADADDR (.lmmkernel) 0x000030c4 ___CTOR_LIST__ = ADDR (.ctors) 0x000030d0 ___DTOR_LIST__ = ADDR (.dtors) .hash *(.hash) .dynsym *(.dynsym) .dynstr *(.dynstr) .gnu.version *(.gnu.version) .gnu.version_d *(.gnu.version_d) .gnu.version_r *(.gnu.version_r) .rel.init *(.rel.init) .rela.init *(.rela.init) .rel.text *(.rel.text) *(.rel.text.*) *(.rel.gnu.linkonce.t*) .rela.text *(.rela.text) *(.rela.text.*) *(.rela.gnu.linkonce.t*) .rel.fini *(.rel.fini) .rela.fini *(.rela.fini) .rel.rodata *(.rel.rodata) *(.rel.rodata.*) *(.rel.gnu.linkonce.r*) .rela.rodata *(.rela.rodata) *(.rela.rodata.*) *(.rela.gnu.linkonce.r*) .rel.data *(.rel.data) *(.rel.data.*) *(.rel.gnu.linkonce.d*) .rela.data *(.rela.data) *(.rela.data.*) *(.rela.gnu.linkonce.d*) .rel.ctors *(.rel.ctors) .rela.ctors *(.rela.ctors) .rel.dtors *(.rel.dtors) .rela.dtors *(.rela.dtors) .rel.got *(.rel.got) .rela.got *(.rela.got) .rel.bss *(.rel.bss) .rela.bss *(.rela.bss) .rel.plt *(.rel.plt) .rela.plt *(.rela.plt) .stab *(.stab) .stabstr *(.stabstr) .stab.excl *(.stab.excl) .stab.exclstr *(.stab.exclstr) .stab.index *(.stab.index) .stab.indexstr *(.stab.indexstr) .comment *(.comment) .debug *(.debug) .line *(.line) .debug_srcinfo *(.debug_srcinfo .zdebug_srcinfo) .debug_sfnames *(.debug_sfnames .zdebug_sfnames) .debug_aranges 0x00000000 0xa0 *(.debug_aranges .zdebug_aranges) .debug_aranges 0x00000000 0x20 c:/program files (x86)/simpleide/propeller-gcc/bin/../lib/gcc/propeller-elf/4.6.1/short-doubles\libgcc.a(gesf2.o) .debug_aranges 0x00000020 0x20 c:/program files (x86)/simpleide/propeller-gcc/bin/../lib/gcc/propeller-elf/4.6.1/short-doubles\libgcc.a(lesf2.o) .debug_aranges 0x00000040 0x20 c:/program files (x86)/simpleide/propeller-gcc/bin/../lib/gcc/propeller-elf/4.6.1/short-doubles\libgcc.a(fixsfsi.o) .debug_aranges 0x00000060 0x20 c:/program files (x86)/simpleide/propeller-gcc/bin/../lib/gcc/propeller-elf/4.6.1/short-doubles\libgcc.a(fixunssfsi.o) .debug_aranges 0x00000080 0x20 c:/program files (x86)/simpleide/propeller-gcc/bin/../lib/gcc/propeller-elf/4.6.1/short-doubles\libgcc.a(floatunsisf.o) .debug_pubnames *(.debug_pubnames .zdebug_pubnames) .debug_info 0x00000000 0xdba *(.debug_info .gnu.linkonce.wi.* .zdebug_info) .debug_info 0x00000000 0x300 c:/program files (x86)/simpleide/propeller-gcc/bin/../lib/gcc/propeller-elf/4.6.1/short-doubles\libgcc.a(gesf2.o) .debug_info 0x00000300 0x300 c:/program files (x86)/simpleide/propeller-gcc/bin/../lib/gcc/propeller-elf/4.6.1/short-doubles\libgcc.a(lesf2.o) .debug_info 0x00000600 0x28b c:/program files (x86)/simpleide/propeller-gcc/bin/../lib/gcc/propeller-elf/4.6.1/short-doubles\libgcc.a(fixsfsi.o) .debug_info 0x0000088b 0x27f c:/program files (x86)/simpleide/propeller-gcc/bin/../lib/gcc/propeller-elf/4.6.1/short-doubles\libgcc.a(fixunssfsi.o) .debug_info 0x00000b0a 0x2b0 c:/program files (x86)/simpleide/propeller-gcc/bin/../lib/gcc/propeller-elf/4.6.1/short-doubles\libgcc.a(floatunsisf.o) .debug_abbrev 0x00000000 0x44e *(.debug_abbrev .zdebug_abbrev) .debug_abbrev 0x00000000 0xdc c:/program files (x86)/simpleide/propeller-gcc/bin/../lib/gcc/propeller-elf/4.6.1/short-doubles\libgcc.a(gesf2.o) .debug_abbrev 0x000000dc 0xdc c:/program files (x86)/simpleide/propeller-gcc/bin/../lib/gcc/propeller-elf/4.6.1/short-doubles\libgcc.a(lesf2.o) .debug_abbrev 0x000001b8 0xdc c:/program files (x86)/simpleide/propeller-gcc/bin/../lib/gcc/propeller-elf/4.6.1/short-doubles\libgcc.a(fixsfsi.o) .debug_abbrev 0x00000294 0xcd c:/program files (x86)/simpleide/propeller-gcc/bin/../lib/gcc/propeller-elf/4.6.1/short-doubles\libgcc.a(fixunssfsi.o) .debug_abbrev 0x00000361 0xed c:/program files (x86)/simpleide/propeller-gcc/bin/../lib/gcc/propeller-elf/4.6.1/short-doubles\libgcc.a(floatunsisf.o) .debug_line 0x00000000 0x3ea *(.debug_line .zdebug_line) .debug_line 0x00000000 0xe7 c:/program files (x86)/simpleide/propeller-gcc/bin/../lib/gcc/propeller-elf/4.6.1/short-doubles\libgcc.a(gesf2.o) .debug_line 0x000000e7 0xe7 c:/program files (x86)/simpleide/propeller-gcc/bin/../lib/gcc/propeller-elf/4.6.1/short-doubles\libgcc.a(lesf2.o) .debug_line 0x000001ce 0xa9 c:/program files (x86)/simpleide/propeller-gcc/bin/../lib/gcc/propeller-elf/4.6.1/short-doubles\libgcc.a(fixsfsi.o) .debug_line 0x00000277 0xad c:/program files (x86)/simpleide/propeller-gcc/bin/../lib/gcc/propeller-elf/4.6.1/short-doubles\libgcc.a(fixunssfsi.o) .debug_line 0x00000324 0xc6 c:/program files (x86)/simpleide/propeller-gcc/bin/../lib/gcc/propeller-elf/4.6.1/short-doubles\libgcc.a(floatunsisf.o) .debug_frame 0x00000000 0xc4 *(.debug_frame .zdebug_frame) .debug_frame 0x00000000 0x2c c:/program files (x86)/simpleide/propeller-gcc/bin/../lib/gcc/propeller-elf/4.6.1/short-doubles\libgcc.a(gesf2.o) .debug_frame 0x0000002c 0x2c c:/program files (x86)/simpleide/propeller-gcc/bin/../lib/gcc/propeller-elf/4.6.1/short-doubles\libgcc.a(lesf2.o) .debug_frame 0x00000058 0x24 c:/program files (x86)/simpleide/propeller-gcc/bin/../lib/gcc/propeller-elf/4.6.1/short-doubles\libgcc.a(fixsfsi.o) .debug_frame 0x0000007c 0x24 c:/program files (x86)/simpleide/propeller-gcc/bin/../lib/gcc/propeller-elf/4.6.1/short-doubles\libgcc.a(fixunssfsi.o) .debug_frame 0x000000a0 0x24 c:/program files (x86)/simpleide/propeller-gcc/bin/../lib/gcc/propeller-elf/4.6.1/short-doubles\libgcc.a(floatunsisf.o) .debug_str *(.debug_str .zdebug_str) .debug_loc 0x00000000 0x46f *(.debug_loc .zdebug_loc) .debug_loc 0x00000000 0x101 c:/program files (x86)/simpleide/propeller-gcc/bin/../lib/gcc/propeller-elf/4.6.1/short-doubles\libgcc.a(gesf2.o) .debug_loc 0x00000101 0x101 c:/program files (x86)/simpleide/propeller-gcc/bin/../lib/gcc/propeller-elf/4.6.1/short-doubles\libgcc.a(lesf2.o) .debug_loc 0x00000202 0xa9 c:/program files (x86)/simpleide/propeller-gcc/bin/../lib/gcc/propeller-elf/4.6.1/short-doubles\libgcc.a(fixsfsi.o) .debug_loc 0x000002ab 0xbf c:/program files (x86)/simpleide/propeller-gcc/bin/../lib/gcc/propeller-elf/4.6.1/short-doubles\libgcc.a(fixunssfsi.o) .debug_loc 0x0000036a 0x105 c:/program files (x86)/simpleide/propeller-gcc/bin/../lib/gcc/propeller-elf/4.6.1/short-doubles\libgcc.a(floatunsisf.o) .debug_macinfo *(.debug_macinfo .zdebug_macinfo) 0x000007c0 PROVIDE (par, PAR) 0x000007c4 PROVIDE (cnt, CNT) 0x000007c8 PROVIDE (ina, INA) 0x000007cc PROVIDE (inb, INB) 0x000007d0 PROVIDE (outa, OUTA) 0x000007d4 PROVIDE (outb, OUTB) 0x000007d8 PROVIDE (dira, DIRA) 0x000007dc PROVIDE (dirb, DIRB) 0x000007e0 PROVIDE (ctra, CTRA) 0x000007e4 PROVIDE (ctrb, CTRB) 0x000007e8 PROVIDE (frqa, FRQA) 0x000007ec PROVIDE (frqb, FRQB) 0x000007f0 PROVIDE (phsa, PHSA) 0x000007f4 PROVIDE (phsb, PHSB) 0x000007f8 PROVIDE (vcfg, VCFG) 0x000007fc PROVIDE (vscl, VSCL) 0x00003af0 PROVIDE (__hub_end, (ADDR (.hub_heap) + 0x10)) 0x00008000 PROVIDE (__stack_end, 0x8000) OUTPUT(lmm/PGCCEFI.elf elf32-propeller) 0x00002228 PROVIDE (__load_start_fpu_cog, LOADADDR (.fpu.cog)) 0x00002944 PROVIDE (__load_stop_fpu_cog, (LOADADDR (.fpu.cog) + SIZEOF (.fpu.cog))) .debug_ranges 0x00000000 0x140 .debug_ranges 0x00000000 0x68 c:/program files (x86)/simpleide/propeller-gcc/bin/../lib/gcc/propeller-elf/4.6.1/short-doubles\libgcc.a(gesf2.o) .debug_ranges 0x00000068 0x68 c:/program files (x86)/simpleide/propeller-gcc/bin/../lib/gcc/propeller-elf/4.6.1/short-doubles\libgcc.a(lesf2.o) .debug_ranges 0x000000d0 0x38 c:/program files (x86)/simpleide/propeller-gcc/bin/../lib/gcc/propeller-elf/4.6.1/short-doubles\libgcc.a(fixsfsi.o) .debug_ranges 0x00000108 0x38 c:/program files (x86)/simpleide/propeller-gcc/bin/../lib/gcc/propeller-elf/4.6.1/short-doubles\libgcc.a(fixunssfsi.o)-Mike
-Mike
You can use iprint() now to save around 2KB instead of the floating point enabled print() function.
The format specifier documentation is in the code now, but hasn't made it to the html doc set yet. A new release is planned soon.
Function printf (and friends) is for programming environments where we don't have to live in a straight-jacket.
Floating point is still there. We just encountered a small issue with using fpu_cog.c (in the release branch), and had to remove it for now. If you like, you can manually add fpu_cog.c into your project and get the benefits of it.