From: SourceForge.net <no...@so...> - 2006-11-02 09:15:54
|
Support Requests item #566117, was opened at 2002-06-08 00:14 Message generated for change (Comment added) made by nobody You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=200599&aid=566117&group_id=599 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: None Group: None Status: Closed Priority: 5 Private: No Submitted By: Ravi Shankar (cv_ravishankar) Assigned to: Bernhard Held (bernhardheld) Summary: float to ascii conversion Initial Comment: Hi I need to convert a float value to ascii to show it on a monitor. Can somebody help ---------------------------------------------------------------------- Comment By: Nobody/Anonymous (nobody) Date: 2006-11-02 01:15 Message: Logged In: NO I have tried to convert a float value (a decimal value of 12.5) to ascii using sprintf function, it gives "<NO FLOAT>" as return value. ---------------------------------------------------------------------- Comment By: Bernhard Held (bernhardheld) Date: 2003-05-10 13:31 Message: Logged In: YES user_id=203539 You could use output_float() in lib/src/vprintf.c as a start. ---------------------------------------------------------------------- Comment By: Nobody/Anonymous (nobody) Date: 2002-07-29 03:50 Message: Logged In: NO try using: float x = 12; char ascii [30]; sprintf (ascii, "%f", x); /* here is your float value, in ascii */ ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=200599&aid=566117&group_id=599 |
From: SourceForge.net <no...@so...> - 2006-11-02 10:28:34
|
Support Requests item #566117, was opened at 2002-06-08 07:14 Message generated for change (Comment added) made by tecodev You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=200599&aid=566117&group_id=599 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: None Group: None Status: Closed Priority: 5 Private: No Submitted By: Ravi Shankar (cv_ravishankar) Assigned to: Bernhard Held (bernhardheld) Summary: float to ascii conversion Initial Comment: Hi I need to convert a float value to ascii to show it on a monitor. Can somebody help ---------------------------------------------------------------------- >Comment By: Raphael Neider (tecodev) Date: 2006-11-02 10:28 Message: Logged In: YES user_id=1115835 > [sprintf] gives "<NO FLOAT>" as return value. This is because the library is built without float support to keeo it small. Assuming you do not use a PIC device, you may however use some #define in the library files to turn float support on, recompile the library... and pay the price for floats in code size. Regards, Raphael ---------------------------------------------------------------------- Comment By: Nobody/Anonymous (nobody) Date: 2006-11-02 09:15 Message: Logged In: NO I have tried to convert a float value (a decimal value of 12.5) to ascii using sprintf function, it gives "<NO FLOAT>" as return value. ---------------------------------------------------------------------- Comment By: Bernhard Held (bernhardheld) Date: 2003-05-10 20:31 Message: Logged In: YES user_id=203539 You could use output_float() in lib/src/vprintf.c as a start. ---------------------------------------------------------------------- Comment By: Nobody/Anonymous (nobody) Date: 2002-07-29 10:50 Message: Logged In: NO try using: float x = 12; char ascii [30]; sprintf (ascii, "%f", x); /* here is your float value, in ascii */ ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=200599&aid=566117&group_id=599 |
From: SourceForge.net <no...@so...> - 2006-12-01 08:21:23
|
Support Requests item #566117, was opened at 2002-06-08 00:14 Message generated for change (Comment added) made by nobody You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=200599&aid=566117&group_id=599 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: None Group: None Status: Closed Priority: 5 Private: No Submitted By: Ravi Shankar (cv_ravishankar) Assigned to: Bernhard Held (bernhardheld) Summary: float to ascii conversion Initial Comment: Hi I need to convert a float value to ascii to show it on a monitor. Can somebody help ---------------------------------------------------------------------- Comment By: Nobody/Anonymous (nobody) Date: 2006-12-01 00:21 Message: Logged In: NO I had compiled sprintf.c file as below: C:\MIDE\asem51\sdcc\lib\src\old>c:\mide\sdcc\bin\sdcc --model-large sprintf.c -D USE_FLOATS=1 sprintf.c:55: error 74: function 'main' undefined please, help. Regards. ---------------------------------------------------------------------- Comment By: Raphael Neider (tecodev) Date: 2006-11-02 02:28 Message: Logged In: YES user_id=1115835 > [sprintf] gives "<NO FLOAT>" as return value. This is because the library is built without float support to keeo it small. Assuming you do not use a PIC device, you may however use some #define in the library files to turn float support on, recompile the library... and pay the price for floats in code size. Regards, Raphael ---------------------------------------------------------------------- Comment By: Nobody/Anonymous (nobody) Date: 2006-11-02 01:15 Message: Logged In: NO I have tried to convert a float value (a decimal value of 12.5) to ascii using sprintf function, it gives "<NO FLOAT>" as return value. ---------------------------------------------------------------------- Comment By: Bernhard Held (bernhardheld) Date: 2003-05-10 13:31 Message: Logged In: YES user_id=203539 You could use output_float() in lib/src/vprintf.c as a start. ---------------------------------------------------------------------- Comment By: Nobody/Anonymous (nobody) Date: 2002-07-29 03:50 Message: Logged In: NO try using: float x = 12; char ascii [30]; sprintf (ascii, "%f", x); /* here is your float value, in ascii */ ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=200599&aid=566117&group_id=599 |
From: SourceForge.net <no...@so...> - 2006-12-01 08:25:29
|
Support Requests item #566117, was opened at 2002-06-08 07:14 Message generated for change (Comment added) made by tecodev You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=200599&aid=566117&group_id=599 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: None Group: None Status: Closed Priority: 5 Private: No Submitted By: Ravi Shankar (cv_ravishankar) Assigned to: Bernhard Held (bernhardheld) Summary: float to ascii conversion Initial Comment: Hi I need to convert a float value to ascii to show it on a monitor. Can somebody help ---------------------------------------------------------------------- >Comment By: Raphael Neider (tecodev) Date: 2006-12-01 08:25 Message: Logged In: YES user_id=1115835 Originator: NO You forgot -c (compile and assemble but do not link), your command line should be C:\MIDE\asem51\sdcc\lib\src\old> c:\mide\sdcc\bin\sdcc --model-large -DUSE_FLOATS=1 -c sprintf.c Hope that helps, Raphael ---------------------------------------------------------------------- Comment By: Nobody/Anonymous (nobody) Date: 2006-12-01 08:21 Message: Logged In: NO I had compiled sprintf.c file as below: C:\MIDE\asem51\sdcc\lib\src\old>c:\mide\sdcc\bin\sdcc --model-large sprintf.c -D USE_FLOATS=1 sprintf.c:55: error 74: function 'main' undefined please, help. Regards. ---------------------------------------------------------------------- Comment By: Raphael Neider (tecodev) Date: 2006-11-02 10:28 Message: Logged In: YES user_id=1115835 > [sprintf] gives "<NO FLOAT>" as return value. This is because the library is built without float support to keeo it small. Assuming you do not use a PIC device, you may however use some #define in the library files to turn float support on, recompile the library... and pay the price for floats in code size. Regards, Raphael ---------------------------------------------------------------------- Comment By: Nobody/Anonymous (nobody) Date: 2006-11-02 09:15 Message: Logged In: NO I have tried to convert a float value (a decimal value of 12.5) to ascii using sprintf function, it gives "<NO FLOAT>" as return value. ---------------------------------------------------------------------- Comment By: Bernhard Held (bernhardheld) Date: 2003-05-10 20:31 Message: Logged In: YES user_id=203539 You could use output_float() in lib/src/vprintf.c as a start. ---------------------------------------------------------------------- Comment By: Nobody/Anonymous (nobody) Date: 2002-07-29 10:50 Message: Logged In: NO try using: float x = 12; char ascii [30]; sprintf (ascii, "%f", x); /* here is your float value, in ascii */ ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=200599&aid=566117&group_id=599 |
From: SourceForge.net <no...@so...> - 2006-12-01 09:01:14
|
Support Requests item #566117, was opened at 2002-06-08 00:14 Message generated for change (Comment added) made by nobody You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=200599&aid=566117&group_id=599 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: None Group: None Status: Closed Priority: 5 Private: No Submitted By: Ravi Shankar (cv_ravishankar) Assigned to: Bernhard Held (bernhardheld) Summary: float to ascii conversion Initial Comment: Hi I need to convert a float value to ascii to show it on a monitor. Can somebody help ---------------------------------------------------------------------- Comment By: Nobody/Anonymous (nobody) Date: 2006-12-01 01:01 Message: Logged In: NO Hi Raphael, I had compiled all three files as follow, C:\MIDE\sdcc\lib\src\new>c:\MIDE\sdcc\bin\sdcc --model-large -DUSE_FLOATS=1 -c printf_large.c C:\MIDE\sdcc\lib\src\new>c:\MIDE\sdcc\bin\sdcc --model-large -DUSE_FLOATS=1 -c srintf.c C:\MIDE\sdcc\lib\src\new>c:\MIDE\sdcc\bin\sdcc --model-large -DUSE_FLOATS=1 -c vprintf.c and move *.rel and *.asm from directory C:\MIDE\sdcc\lib\src\new to C:\MIDE\sdcc\lib\large and then compile test.c as follow, D:\WorkDir\Mikro\Komunikasi\Fax\01>c:\mide\sdcc\bin\sdcc test.c --model-large --lib-path c:\mide\sdcc\lib\large i downloaded the .hex file to development board, and still i got <NO FLOAT> when i use sprintf to format print floating point number. Please, help. Regards. ---------------------------------------------------------------------- Comment By: Raphael Neider (tecodev) Date: 2006-12-01 00:25 Message: Logged In: YES user_id=1115835 Originator: NO You forgot -c (compile and assemble but do not link), your command line should be C:\MIDE\asem51\sdcc\lib\src\old> c:\mide\sdcc\bin\sdcc --model-large -DUSE_FLOATS=1 -c sprintf.c Hope that helps, Raphael ---------------------------------------------------------------------- Comment By: Nobody/Anonymous (nobody) Date: 2006-12-01 00:21 Message: Logged In: NO I had compiled sprintf.c file as below: C:\MIDE\asem51\sdcc\lib\src\old>c:\mide\sdcc\bin\sdcc --model-large sprintf.c -D USE_FLOATS=1 sprintf.c:55: error 74: function 'main' undefined please, help. Regards. ---------------------------------------------------------------------- Comment By: Raphael Neider (tecodev) Date: 2006-11-02 02:28 Message: Logged In: YES user_id=1115835 > [sprintf] gives "<NO FLOAT>" as return value. This is because the library is built without float support to keeo it small. Assuming you do not use a PIC device, you may however use some #define in the library files to turn float support on, recompile the library... and pay the price for floats in code size. Regards, Raphael ---------------------------------------------------------------------- Comment By: Nobody/Anonymous (nobody) Date: 2006-11-02 01:15 Message: Logged In: NO I have tried to convert a float value (a decimal value of 12.5) to ascii using sprintf function, it gives "<NO FLOAT>" as return value. ---------------------------------------------------------------------- Comment By: Bernhard Held (bernhardheld) Date: 2003-05-10 13:31 Message: Logged In: YES user_id=203539 You could use output_float() in lib/src/vprintf.c as a start. ---------------------------------------------------------------------- Comment By: Nobody/Anonymous (nobody) Date: 2002-07-29 03:50 Message: Logged In: NO try using: float x = 12; char ascii [30]; sprintf (ascii, "%f", x); /* here is your float value, in ascii */ ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=200599&aid=566117&group_id=599 |
From: SourceForge.net <no...@so...> - 2006-12-01 19:14:29
|
Support Requests item #566117, was opened at 2002-06-08 07:14 Message generated for change (Comment added) made by candanabi You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=200599&aid=566117&group_id=599 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: None Group: None Status: Closed Priority: 5 Private: No Submitted By: Ravi Shankar (cv_ravishankar) Assigned to: Bernhard Held (bernhardheld) Summary: float to ascii conversion Initial Comment: Hi I need to convert a float value to ascii to show it on a monitor. Can somebody help ---------------------------------------------------------------------- Comment By: Anton (candanabi) Date: 2006-12-01 19:14 Message: Logged In: YES user_id=1099099 Originator: NO Yeah i did the same thing as you do nobody, i had the same result. ---------------------------------------------------------------------- Comment By: Nobody/Anonymous (nobody) Date: 2006-12-01 09:01 Message: Logged In: NO Hi Raphael, I had compiled all three files as follow, C:\MIDE\sdcc\lib\src\new>c:\MIDE\sdcc\bin\sdcc --model-large -DUSE_FLOATS=1 -c printf_large.c C:\MIDE\sdcc\lib\src\new>c:\MIDE\sdcc\bin\sdcc --model-large -DUSE_FLOATS=1 -c srintf.c C:\MIDE\sdcc\lib\src\new>c:\MIDE\sdcc\bin\sdcc --model-large -DUSE_FLOATS=1 -c vprintf.c and move *.rel and *.asm from directory C:\MIDE\sdcc\lib\src\new to C:\MIDE\sdcc\lib\large and then compile test.c as follow, D:\WorkDir\Mikro\Komunikasi\Fax\01>c:\mide\sdcc\bin\sdcc test.c --model-large --lib-path c:\mide\sdcc\lib\large i downloaded the .hex file to development board, and still i got <NO FLOAT> when i use sprintf to format print floating point number. Please, help. Regards. ---------------------------------------------------------------------- Comment By: Raphael Neider (tecodev) Date: 2006-12-01 08:25 Message: Logged In: YES user_id=1115835 Originator: NO You forgot -c (compile and assemble but do not link), your command line should be C:\MIDE\asem51\sdcc\lib\src\old> c:\mide\sdcc\bin\sdcc --model-large -DUSE_FLOATS=1 -c sprintf.c Hope that helps, Raphael ---------------------------------------------------------------------- Comment By: Nobody/Anonymous (nobody) Date: 2006-12-01 08:21 Message: Logged In: NO I had compiled sprintf.c file as below: C:\MIDE\asem51\sdcc\lib\src\old>c:\mide\sdcc\bin\sdcc --model-large sprintf.c -D USE_FLOATS=1 sprintf.c:55: error 74: function 'main' undefined please, help. Regards. ---------------------------------------------------------------------- Comment By: Raphael Neider (tecodev) Date: 2006-11-02 10:28 Message: Logged In: YES user_id=1115835 > [sprintf] gives "<NO FLOAT>" as return value. This is because the library is built without float support to keeo it small. Assuming you do not use a PIC device, you may however use some #define in the library files to turn float support on, recompile the library... and pay the price for floats in code size. Regards, Raphael ---------------------------------------------------------------------- Comment By: Nobody/Anonymous (nobody) Date: 2006-11-02 09:15 Message: Logged In: NO I have tried to convert a float value (a decimal value of 12.5) to ascii using sprintf function, it gives "<NO FLOAT>" as return value. ---------------------------------------------------------------------- Comment By: Bernhard Held (bernhardheld) Date: 2003-05-10 20:31 Message: Logged In: YES user_id=203539 You could use output_float() in lib/src/vprintf.c as a start. ---------------------------------------------------------------------- Comment By: Nobody/Anonymous (nobody) Date: 2002-07-29 10:50 Message: Logged In: NO try using: float x = 12; char ascii [30]; sprintf (ascii, "%f", x); /* here is your float value, in ascii */ ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=200599&aid=566117&group_id=599 |
From: SourceForge.net <no...@so...> - 2006-12-01 22:59:43
|
Support Requests item #566117, was opened at 2002-06-08 07:14 Message generated for change (Comment added) made by tecodev You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=200599&aid=566117&group_id=599 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: None Group: None Status: Closed Priority: 5 Private: No Submitted By: Ravi Shankar (cv_ravishankar) Assigned to: Bernhard Held (bernhardheld) Summary: float to ascii conversion Initial Comment: Hi I need to convert a float value to ascii to show it on a monitor. Can somebody help ---------------------------------------------------------------------- >Comment By: Raphael Neider (tecodev) Date: 2006-12-01 22:59 Message: Logged In: YES user_id=1115835 Originator: NO OK, last idea for my part (no mcs51/library guy): Try to explicitly link the newly compiled printf-files into your project. Something like c:\mide\sdcc\bin\sdcc test.c printf_large.rel --model-large --lib-path c:\mide\sdcc\lib\large might do the job. Maybe giving the other *print*.rel files as well helps? Please, could anyone from the mcs51/library fraction speak up as to how to get this done?!? Regards, Raphael ---------------------------------------------------------------------- Comment By: Anton (candanabi) Date: 2006-12-01 19:14 Message: Logged In: YES user_id=1099099 Originator: NO Yeah i did the same thing as you do nobody, i had the same result. ---------------------------------------------------------------------- Comment By: Nobody/Anonymous (nobody) Date: 2006-12-01 09:01 Message: Logged In: NO Hi Raphael, I had compiled all three files as follow, C:\MIDE\sdcc\lib\src\new>c:\MIDE\sdcc\bin\sdcc --model-large -DUSE_FLOATS=1 -c printf_large.c C:\MIDE\sdcc\lib\src\new>c:\MIDE\sdcc\bin\sdcc --model-large -DUSE_FLOATS=1 -c srintf.c C:\MIDE\sdcc\lib\src\new>c:\MIDE\sdcc\bin\sdcc --model-large -DUSE_FLOATS=1 -c vprintf.c and move *.rel and *.asm from directory C:\MIDE\sdcc\lib\src\new to C:\MIDE\sdcc\lib\large and then compile test.c as follow, D:\WorkDir\Mikro\Komunikasi\Fax\01>c:\mide\sdcc\bin\sdcc test.c --model-large --lib-path c:\mide\sdcc\lib\large i downloaded the .hex file to development board, and still i got <NO FLOAT> when i use sprintf to format print floating point number. Please, help. Regards. ---------------------------------------------------------------------- Comment By: Raphael Neider (tecodev) Date: 2006-12-01 08:25 Message: Logged In: YES user_id=1115835 Originator: NO You forgot -c (compile and assemble but do not link), your command line should be C:\MIDE\asem51\sdcc\lib\src\old> c:\mide\sdcc\bin\sdcc --model-large -DUSE_FLOATS=1 -c sprintf.c Hope that helps, Raphael ---------------------------------------------------------------------- Comment By: Nobody/Anonymous (nobody) Date: 2006-12-01 08:21 Message: Logged In: NO I had compiled sprintf.c file as below: C:\MIDE\asem51\sdcc\lib\src\old>c:\mide\sdcc\bin\sdcc --model-large sprintf.c -D USE_FLOATS=1 sprintf.c:55: error 74: function 'main' undefined please, help. Regards. ---------------------------------------------------------------------- Comment By: Raphael Neider (tecodev) Date: 2006-11-02 10:28 Message: Logged In: YES user_id=1115835 > [sprintf] gives "<NO FLOAT>" as return value. This is because the library is built without float support to keeo it small. Assuming you do not use a PIC device, you may however use some #define in the library files to turn float support on, recompile the library... and pay the price for floats in code size. Regards, Raphael ---------------------------------------------------------------------- Comment By: Nobody/Anonymous (nobody) Date: 2006-11-02 09:15 Message: Logged In: NO I have tried to convert a float value (a decimal value of 12.5) to ascii using sprintf function, it gives "<NO FLOAT>" as return value. ---------------------------------------------------------------------- Comment By: Bernhard Held (bernhardheld) Date: 2003-05-10 20:31 Message: Logged In: YES user_id=203539 You could use output_float() in lib/src/vprintf.c as a start. ---------------------------------------------------------------------- Comment By: Nobody/Anonymous (nobody) Date: 2002-07-29 10:50 Message: Logged In: NO try using: float x = 12; char ascii [30]; sprintf (ascii, "%f", x); /* here is your float value, in ascii */ ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=200599&aid=566117&group_id=599 |
From: SourceForge.net <no...@so...> - 2006-12-02 04:35:12
|
Support Requests item #566117, was opened at 2002-06-08 07:14 Message generated for change (Comment added) made by candanabi You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=200599&aid=566117&group_id=599 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: None Group: None Status: Closed Priority: 5 Private: No Submitted By: Ravi Shankar (cv_ravishankar) Assigned to: Bernhard Held (bernhardheld) Summary: float to ascii conversion Initial Comment: Hi I need to convert a float value to ascii to show it on a monitor. Can somebody help ---------------------------------------------------------------------- Comment By: Anton (candanabi) Date: 2006-12-02 04:35 Message: Logged In: YES user_id=1099099 Originator: NO Hi Raphael, I had tried what you told me to do, i compile as follow D:\WorkDir\Mikro\Komunikasi\Fax\01>c:\mide\sdcc\bin\sdcc test.c c:\mide\sdcc\lib\large\printf_large.rel --model-large --lib-path c:\mide\sdcc\lib\large c:\mide\sdcc\lib\large\printf_large.lst: cannot open. no .hex file generated. Regards. ---------------------------------------------------------------------- Comment By: Raphael Neider (tecodev) Date: 2006-12-01 22:59 Message: Logged In: YES user_id=1115835 Originator: NO OK, last idea for my part (no mcs51/library guy): Try to explicitly link the newly compiled printf-files into your project. Something like c:\mide\sdcc\bin\sdcc test.c printf_large.rel --model-large --lib-path c:\mide\sdcc\lib\large might do the job. Maybe giving the other *print*.rel files as well helps? Please, could anyone from the mcs51/library fraction speak up as to how to get this done?!? Regards, Raphael ---------------------------------------------------------------------- Comment By: Anton (candanabi) Date: 2006-12-01 19:14 Message: Logged In: YES user_id=1099099 Originator: NO Yeah i did the same thing as you do nobody, i had the same result. ---------------------------------------------------------------------- Comment By: Nobody/Anonymous (nobody) Date: 2006-12-01 09:01 Message: Logged In: NO Hi Raphael, I had compiled all three files as follow, C:\MIDE\sdcc\lib\src\new>c:\MIDE\sdcc\bin\sdcc --model-large -DUSE_FLOATS=1 -c printf_large.c C:\MIDE\sdcc\lib\src\new>c:\MIDE\sdcc\bin\sdcc --model-large -DUSE_FLOATS=1 -c srintf.c C:\MIDE\sdcc\lib\src\new>c:\MIDE\sdcc\bin\sdcc --model-large -DUSE_FLOATS=1 -c vprintf.c and move *.rel and *.asm from directory C:\MIDE\sdcc\lib\src\new to C:\MIDE\sdcc\lib\large and then compile test.c as follow, D:\WorkDir\Mikro\Komunikasi\Fax\01>c:\mide\sdcc\bin\sdcc test.c --model-large --lib-path c:\mide\sdcc\lib\large i downloaded the .hex file to development board, and still i got <NO FLOAT> when i use sprintf to format print floating point number. Please, help. Regards. ---------------------------------------------------------------------- Comment By: Raphael Neider (tecodev) Date: 2006-12-01 08:25 Message: Logged In: YES user_id=1115835 Originator: NO You forgot -c (compile and assemble but do not link), your command line should be C:\MIDE\asem51\sdcc\lib\src\old> c:\mide\sdcc\bin\sdcc --model-large -DUSE_FLOATS=1 -c sprintf.c Hope that helps, Raphael ---------------------------------------------------------------------- Comment By: Nobody/Anonymous (nobody) Date: 2006-12-01 08:21 Message: Logged In: NO I had compiled sprintf.c file as below: C:\MIDE\asem51\sdcc\lib\src\old>c:\mide\sdcc\bin\sdcc --model-large sprintf.c -D USE_FLOATS=1 sprintf.c:55: error 74: function 'main' undefined please, help. Regards. ---------------------------------------------------------------------- Comment By: Raphael Neider (tecodev) Date: 2006-11-02 10:28 Message: Logged In: YES user_id=1115835 > [sprintf] gives "<NO FLOAT>" as return value. This is because the library is built without float support to keeo it small. Assuming you do not use a PIC device, you may however use some #define in the library files to turn float support on, recompile the library... and pay the price for floats in code size. Regards, Raphael ---------------------------------------------------------------------- Comment By: Nobody/Anonymous (nobody) Date: 2006-11-02 09:15 Message: Logged In: NO I have tried to convert a float value (a decimal value of 12.5) to ascii using sprintf function, it gives "<NO FLOAT>" as return value. ---------------------------------------------------------------------- Comment By: Bernhard Held (bernhardheld) Date: 2003-05-10 20:31 Message: Logged In: YES user_id=203539 You could use output_float() in lib/src/vprintf.c as a start. ---------------------------------------------------------------------- Comment By: Nobody/Anonymous (nobody) Date: 2002-07-29 10:50 Message: Logged In: NO try using: float x = 12; char ascii [30]; sprintf (ascii, "%f", x); /* here is your float value, in ascii */ ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=200599&aid=566117&group_id=599 |
From: SourceForge.net <no...@so...> - 2006-12-02 10:16:49
|
Support Requests item #566117, was opened at 2002-06-08 09:14 Message generated for change (Comment added) made by maartenbrock You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=200599&aid=566117&group_id=599 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: None Group: None Status: Closed Priority: 5 Private: No Submitted By: Ravi Shankar (cv_ravishankar) Assigned to: Bernhard Held (bernhardheld) Summary: float to ascii conversion Initial Comment: Hi I need to convert a float value to ascii to show it on a monitor. Can somebody help ---------------------------------------------------------------------- >Comment By: Maarten Brock (maartenbrock) Date: 2006-12-02 11:16 Message: Logged In: YES user_id=888171 Originator: NO This should just work. Which version of SDCC are you using? If you explicitly link with your copy of printf_large.rel SDCC expects printf_large.lst in the same directory. If you copy the .rel to the standard library path for large memory model however it does not need it. After linking also have a look in the .map file. It should have the function _output_float in it. It also shows where printf_large came from. Maarten ---------------------------------------------------------------------- Comment By: Anton (candanabi) Date: 2006-12-02 05:35 Message: Logged In: YES user_id=1099099 Originator: NO Hi Raphael, I had tried what you told me to do, i compile as follow D:\WorkDir\Mikro\Komunikasi\Fax\01>c:\mide\sdcc\bin\sdcc test.c c:\mide\sdcc\lib\large\printf_large.rel --model-large --lib-path c:\mide\sdcc\lib\large c:\mide\sdcc\lib\large\printf_large.lst: cannot open. no .hex file generated. Regards. ---------------------------------------------------------------------- Comment By: Raphael Neider (tecodev) Date: 2006-12-01 23:59 Message: Logged In: YES user_id=1115835 Originator: NO OK, last idea for my part (no mcs51/library guy): Try to explicitly link the newly compiled printf-files into your project. Something like c:\mide\sdcc\bin\sdcc test.c printf_large.rel --model-large --lib-path c:\mide\sdcc\lib\large might do the job. Maybe giving the other *print*.rel files as well helps? Please, could anyone from the mcs51/library fraction speak up as to how to get this done?!? Regards, Raphael ---------------------------------------------------------------------- Comment By: Anton (candanabi) Date: 2006-12-01 20:14 Message: Logged In: YES user_id=1099099 Originator: NO Yeah i did the same thing as you do nobody, i had the same result. ---------------------------------------------------------------------- Comment By: Nobody/Anonymous (nobody) Date: 2006-12-01 10:01 Message: Logged In: NO Hi Raphael, I had compiled all three files as follow, C:\MIDE\sdcc\lib\src\new>c:\MIDE\sdcc\bin\sdcc --model-large -DUSE_FLOATS=1 -c printf_large.c C:\MIDE\sdcc\lib\src\new>c:\MIDE\sdcc\bin\sdcc --model-large -DUSE_FLOATS=1 -c srintf.c C:\MIDE\sdcc\lib\src\new>c:\MIDE\sdcc\bin\sdcc --model-large -DUSE_FLOATS=1 -c vprintf.c and move *.rel and *.asm from directory C:\MIDE\sdcc\lib\src\new to C:\MIDE\sdcc\lib\large and then compile test.c as follow, D:\WorkDir\Mikro\Komunikasi\Fax\01>c:\mide\sdcc\bin\sdcc test.c --model-large --lib-path c:\mide\sdcc\lib\large i downloaded the .hex file to development board, and still i got <NO FLOAT> when i use sprintf to format print floating point number. Please, help. Regards. ---------------------------------------------------------------------- Comment By: Raphael Neider (tecodev) Date: 2006-12-01 09:25 Message: Logged In: YES user_id=1115835 Originator: NO You forgot -c (compile and assemble but do not link), your command line should be C:\MIDE\asem51\sdcc\lib\src\old> c:\mide\sdcc\bin\sdcc --model-large -DUSE_FLOATS=1 -c sprintf.c Hope that helps, Raphael ---------------------------------------------------------------------- Comment By: Nobody/Anonymous (nobody) Date: 2006-12-01 09:21 Message: Logged In: NO I had compiled sprintf.c file as below: C:\MIDE\asem51\sdcc\lib\src\old>c:\mide\sdcc\bin\sdcc --model-large sprintf.c -D USE_FLOATS=1 sprintf.c:55: error 74: function 'main' undefined please, help. Regards. ---------------------------------------------------------------------- Comment By: Raphael Neider (tecodev) Date: 2006-11-02 11:28 Message: Logged In: YES user_id=1115835 > [sprintf] gives "<NO FLOAT>" as return value. This is because the library is built without float support to keeo it small. Assuming you do not use a PIC device, you may however use some #define in the library files to turn float support on, recompile the library... and pay the price for floats in code size. Regards, Raphael ---------------------------------------------------------------------- Comment By: Nobody/Anonymous (nobody) Date: 2006-11-02 10:15 Message: Logged In: NO I have tried to convert a float value (a decimal value of 12.5) to ascii using sprintf function, it gives "<NO FLOAT>" as return value. ---------------------------------------------------------------------- Comment By: Bernhard Held (bernhardheld) Date: 2003-05-10 22:31 Message: Logged In: YES user_id=203539 You could use output_float() in lib/src/vprintf.c as a start. ---------------------------------------------------------------------- Comment By: Nobody/Anonymous (nobody) Date: 2002-07-29 12:50 Message: Logged In: NO try using: float x = 12; char ascii [30]; sprintf (ascii, "%f", x); /* here is your float value, in ascii */ ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=200599&aid=566117&group_id=599 |
From: SourceForge.net <no...@so...> - 2006-12-02 11:53:21
|
Support Requests item #566117, was opened at 2002-06-08 07:14 Message generated for change (Comment added) made by candanabi You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=200599&aid=566117&group_id=599 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: None Group: None Status: Closed Priority: 5 Private: No Submitted By: Ravi Shankar (cv_ravishankar) Assigned to: Bernhard Held (bernhardheld) Summary: float to ascii conversion Initial Comment: Hi I need to convert a float value to ascii to show it on a monitor. Can somebody help ---------------------------------------------------------------------- Comment By: Anton (candanabi) Date: 2006-12-02 11:53 Message: Logged In: YES user_id=1099099 Originator: NO I am using MIDE as editor, it come with ASM-51, Emul8051, and SDCC ver 2.6.1 M-IDE Studio for MCS-51 : Release 0.2.5.10 < Toolchain List > Emul8051 : TS Controls Emulator 8051 v1.0 ASEM-51 : mcs-51 family macro assembler v1.3 (MCU files collection Jul 17, 2005) SDCC : mcs51/gbz80/z80/avr/ds390/pic16/pic14/TININative/xa51/ds400/hc08 2.6.1 #4376 (Sep 14 2006) (MINGW32) The test.c source file is as follow, #include <stdio.h> #include <at89x52.h> #include "x51lcd.h" unsigned char STR[17]; void InitLCD(void) { x51LCD_SetPortAddress(0xE000, 0xE001); x51LCD_8bitsData(); x51LCD_DisplayOff(); x51LCD_DisplayClear(); x51LCD_CursorHome(); x51LCD_IncrementNoDisplayShift(); x51LCD_DisplayOn(); x51LCD_CursorOn(); x51LCD_BlinkOn(); } void main (void) { InitLCD(); sprintf(STR, "%f", 2.5); x51LCD_PrintStr(0x00, STR); while(1); } I had compiled three printf files as follow C:\MIDE\sdcc\lib\src\new>c:\MIDE\sdcc\bin\sdcc --model-large -DUSE_FLOATS=1 -c printf_large.c C:\MIDE\sdcc\lib\src\new>c:\MIDE\sdcc\bin\sdcc --model-large -DUSE_FLOATS=1 -c srintf.c C:\MIDE\sdcc\lib\src\new>c:\MIDE\sdcc\bin\sdcc --model-large -DUSE_FLOATS=1 -c vprintf.c and had compiled test.c as follow, D:\WorkDir\Mikro\Komunikasi\Fax\01>c:\mide\sdcc\bin\sdcc test.c --model-large --lib-path c:\mide\sdcc\lib\large and the generated map file is as below, Hexadecimal Area Addr Size Decimal Bytes (Attributes) -------------------------------- ---- ---- ------- ----- ------------ . .ABS. 0000 0000 = 0. bytes (ABS,CON) Value Global -------- -------------------------------- 0000 l_BIT_BANK 0000 l_GSINIT 0000 l_GSINIT1 0000 l_GSINIT5 0000 l_ISEG 0000 l_PSEG 0000 l_REG_BANK_1 0000 l_REG_BANK_2 0000 l_REG_BANK_3 0000 l_RSEG 0000 l_XINIT 0000 l_XISEG 0000 l__CODE 0000 s_BSEG 0000 s_DSEG 0000 s_HOME 0000 s_PSEG 0000 s_REG_BANK_0 0000 s_XSEG 0000 s__CODE 0002 l_BSEG_BYTES 0003 l_CONST 0003 l_GSFINAL 0003 l_GSINIT0 0003 l_HOME 0003 s_GSINIT0 0004 l_OSEG 0006 s_GSINIT1 0006 s_GSINIT2 0008 l_REG_BANK_0 0008 s_REG_BANK_1 000A l_GSINIT2 0010 l_BSEG 0010 s_GSINIT3 0010 s_REG_BANK_2 0013 s_OSEG 0018 s_REG_BANK_3 0020 s_BSEG_BYTES 0022 l_GSINIT3 0022 s_BIT_BANK 0022 s_RSEG 0022 s_SSEG 002A l_GSINIT4 0032 s_GSINIT4 005C s_GSFINAL 005C s_GSINIT 005C s_GSINIT5 005F s_CSEG 0077 l_DSEG 0080 _P0 0080 _P0_0 0080 s_ISEG 0081 _P0_1 0081 _SP 0082 _DPL 0082 _P0_2 0083 _DPH 0083 _P0_3 0084 _P0_4 0085 _P0_5 0086 _P0_6 0087 _P0_7 0087 _PCON 0088 _IT0 0088 _TCON 0089 _IE0 0089 _TMOD 008A _IT1 008A _TL0 008B _IE1 008B _TL1 008C _TH0 008C _TR0 008D _TF0 008D _TH1 008E _TR1 008F _TF1 0090 _P1 0090 _P1_0 0090 _T2 0091 _P1_1 0091 _T2EX 0092 _P1_2 0093 _P1_3 0094 _P1_4 0095 _P1_5 0096 _P1_6 0097 _P1_7 0098 _RI 0098 _SCON 0099 _SBUF 0099 _TI 009A _RB8 009B _TB8 009C _REN 009D _SM2 009E _SM1 009F _SM0 00A0 _P2 00A0 _P2_0 00A0 __XPAGE 00A1 _P2_1 00A2 _P2_2 00A3 _P2_3 00A4 _P2_4 00A5 _P2_5 00A6 _P2_6 00A7 _P2_7 00A8 _EX0 00A8 _IE 00A9 _ET0 00AA _EX1 00AB _ET1 00AC _ES 00AD _ET2 00AF _EA 00B0 _P3 00B0 _P3_0 00B0 _RXD 00B1 _P3_1 00B1 _TXD 00B2 _INT0 00B2 _P3_2 00B3 _INT1 00B3 _P3_3 00B4 _P3_4 00B4 _T0 00B5 _P3_5 00B5 _T1 00B6 _P3_6 00B6 _WR 00B7 _P3_7 00B7 _RD 00B8 _IP 00B8 _PX0 00B9 _PT0 00BA _PX1 00BB _PT1 00BC _PS 00BD _PT2 00C8 _CP_RL2 00C8 _T2CON 00C8 _T2CON_0 00C9 _C_T2 00C9 _T2CON_1 00C9 _T2MOD 00CA _RCAP2L 00CA _T2CON_2 00CA _TR2 00CB _EXEN2 00CB _RCAP2H 00CB _T2CON_3 00CC _T2CON_4 00CC _TCLK 00CC _TL2 00CD _RCLK 00CD _T2CON_5 00CD _TH2 00CE _EXF2 00CE _T2CON_6 00CF _T2CON_7 00CF _TF2 00D0 _P 00D0 _PSW 00D1 _FL 00D2 _OV 00D3 _RS0 00D4 _RS1 00D5 _F0 00D6 _AC 00D7 _CY 00DE l_SSEG 00E0 _A 00E0 _ACC 00F0 _B 00F5 _B_5 00F6 _B_6 00F7 _B_7 0100 l_IRAM 0104 l_XSEG 0104 s_XISEG 1A1C l_CSEG 1A7B s_CONST 1A7E s_XINIT Hexadecimal Area Addr Size Decimal Bytes (Attributes) -------------------------------- ---- ---- ------- ----- ------------ _CODE 0000 0000 = 0. bytes (REL,CON) Hexadecimal Area Addr Size Decimal Bytes (Attributes) -------------------------------- ---- ---- ------- ----- ------------ REG_BANK_0 0000 0008 = 8. bytes (REL,OVR) Hexadecimal Area Addr Size Decimal Bytes (Attributes) -------------------------------- ---- ---- ------- ----- ------------ REG_BANK_1 0008 0000 = 0. bytes (REL,OVR) Hexadecimal Area Addr Size Decimal Bytes (Attributes) -------------------------------- ---- ---- ------- ----- ------------ REG_BANK_2 0010 0000 = 0. bytes (REL,OVR) Hexadecimal Area Addr Size Decimal Bytes (Attributes) -------------------------------- ---- ---- ------- ----- ------------ REG_BANK_3 0018 0000 = 0. bytes (REL,OVR) Hexadecimal Area Addr Size Decimal Bits (Attributes) -------------------------------- ---- ---- ------- ----- ------------ BSEG 0000 0010 = 16. bits (REL,CON,BIT) Value Global -------- -------------------------------- 0B:0001 _output_float_PARM_4 0B:0002 _output_float_PARM_5 0B:0003 _output_float_PARM_6 0B:0004 _output_float_PARM_7 Hexadecimal Area Addr Size Decimal Bytes (Attributes) -------------------------------- ---- ---- ------- ----- ------------ BSEG_BYTES 0020 0002 = 2. bytes (REL,CON) Hexadecimal Area Addr Size Decimal Bytes (Attributes) -------------------------------- ---- ---- ------- ----- ------------ BIT_BANK 0022 0000 = 0. bytes (REL,OVR) Hexadecimal Area Addr Size Decimal Bytes (Attributes) -------------------------------- ---- ---- ------- ----- ------------ DSEG 0000 0077 = 119. bytes (REL,CON) Value Global -------- -------------------------------- 0008 _bp Hexadecimal Area Addr Size Decimal Bytes (Attributes) -------------------------------- ---- ---- ------- ----- ------------ OSEG 0013 0004 = 4. bytes (REL,OVR) Value Global -------- -------------------------------- 0013 __divulong_sloc0_1_0 0013 __modulong_sloc0_1_0 Hexadecimal Area Addr Size Decimal Bytes (Attributes) -------------------------------- ---- ---- ------- ----- ------------ ISEG 0080 0000 = 0. bytes (REL,CON) Hexadecimal Area Addr Size Decimal Bytes (Attributes) -------------------------------- ---- ---- ------- ----- ------------ SSEG 0022 00DE = 222. bytes (REL,OVR) Value Global -------- -------------------------------- 0022 __start__stack Hexadecimal Area Addr Size Decimal Bytes (Attributes) -------------------------------- ---- ---- ------- ----- ------------ RSEG 0022 0000 = 0. bytes (REL,CON) Hexadecimal Area Addr Size Decimal Bytes (Attributes) -------------------------------- ---- ---- ------- ----- ------------ PSEG 0000 0000 = 0. bytes (REL,CON,PAG,XDATA) Hexadecimal Area Addr Size Decimal Bytes (Attributes) -------------------------------- ---- ---- ------- ----- ------------ XSEG 0000 0104 = 260. bytes (REL,CON,XDATA) Value Global -------- -------------------------------- 0D:0000 _x51LCD_IReg0 0D:0001 _x51LCD_IReg1 0D:0002 _x51LCD_IReg2 0D:0003 _x51LCD_IReg3 0D:0004 _x51LCD_IReg4 0D:0005 _x51LCD_IReg5 0D:0006 _x51LCD_InstructionPortPTR 0D:0008 _x51LCD_DataPortPTR 0D:000C _x51LCD_SendInstruction_PARM_2 0D:0010 _x51LCD_SetPortAddress_PARM_2 0D:0015 _x51LCD_PrintStr_PARM_2 0D:0019 _x51LCD_PrintChr_PARM_2 0D:001B _STR 0D:002C _vsprintf_PARM_2 0D:002F _vsprintf_PARM_3 0D:0043 _output_float_PARM_2 0D:0044 _output_float_PARM_3 0D:00D4 __print_format_PARM_2 0D:00D7 __print_format_PARM_3 0D:00DA __print_format_PARM_4 0D:00ED __modulong_PARM_2 0D:00F6 __divulong_PARM_2 0D:0102 __gptrput_PARM_2 Hexadecimal Area Addr Size Decimal Bytes (Attributes) -------------------------------- ---- ---- ------- ----- ------------ XISEG 0104 0000 = 0. bytes (REL,CON,XDATA) Hexadecimal Area Addr Size Decimal Bytes (Attributes) -------------------------------- ---- ---- ------- ----- ------------ HOME 0000 0003 = 3. bytes (REL,CON,CODE) Hexadecimal Area Addr Size Decimal Bytes (Attributes) -------------------------------- ---- ---- ------- ----- ------------ GSINIT0 0003 0003 = 3. bytes (REL,CON,CODE) Value Global -------- -------------------------------- 0C:0003 __sdcc_gsinit_startup Hexadecimal Area Addr Size Decimal Bytes (Attributes) -------------------------------- ---- ---- ------- ----- ------------ GSINIT1 0006 0000 = 0. bytes (REL,CON,CODE) Hexadecimal Area Addr Size Decimal Bytes (Attributes) -------------------------------- ---- ---- ------- ----- ------------ GSINIT2 0006 000A = 10. bytes (REL,CON,CODE) Hexadecimal Area Addr Size Decimal Bytes (Attributes) -------------------------------- ---- ---- ------- ----- ------------ GSINIT3 0010 0022 = 34. bytes (REL,CON,CODE) Value Global -------- -------------------------------- 0C:0010 __mcs51_genXINIT Hexadecimal Area Addr Size Decimal Bytes (Attributes) -------------------------------- ---- ---- ------- ----- ------------ GSINIT4 0032 002A = 42. bytes (REL,CON,CODE) Value Global -------- -------------------------------- 0C:0032 __mcs51_genRAMCLEAR 0C:0038 __mcs51_genXRAMCLEAR Hexadecimal Area Addr Size Decimal Bytes (Attributes) -------------------------------- ---- ---- ------- ----- ------------ GSINIT5 005C 0000 = 0. bytes (REL,CON,CODE) Hexadecimal Area Addr Size Decimal Bytes (Attributes) -------------------------------- ---- ---- ------- ----- ------------ GSINIT 005C 0000 = 0. bytes (REL,CON,CODE) Hexadecimal Area Addr Size Decimal Bytes (Attributes) -------------------------------- ---- ---- ------- ----- ------------ GSFINAL 005C 0003 = 3. bytes (REL,CON,CODE) Hexadecimal Area Addr Size Decimal Bytes (Attributes) -------------------------------- ---- ---- ------- ----- ------------ CSEG 005F 1A1C = 6684. bytes (REL,CON,CODE) Value Global -------- -------------------------------- 0C:005F __sdcc_program_startup 0C:0064 _x51LCD_Delay 0C:008D _x51LCD_SendInstruction 0C:00B4 _x51LCD_SendData 0C:00D2 _x51LCD_SetPortAddress 0C:0122 _x51LCD_DisplayClear 0C:0136 _x51LCD_CursorHome 0C:014A _x51LCD_IncrementDisplayShift 0C:0165 _x51LCD_DecrementDisplayShift 0C:0180 _x51LCD_IncrementNoDisplayShift 0C:019B _x51LCD_DecrementNoDisplayShift 0C:01B6 _x51LCD_DisplayOn 0C:01D1 _x51LCD_DisplayOff 0C:01EC _x51LCD_CursorOn 0C:0207 _x51LCD_CursorOff 0C:0222 _x51LCD_BlinkOn 0C:023D _x51LCD_BlinkOff 0C:0258 _x51LCD_DisplayShiftRightShift 0C:0273 _x51LCD_DisplayShiftLeftShift 0C:028E _x51LCD_CursorMovementRightShift 0C:02A9 _x51LCD_CursorMovementLeftShift 0C:02C4 _x51LCD_8bitsData 0C:02E0 _x51LCD_4bitsData 0C:02FC _x51LCD_GotoX 0C:0319 _x51LCD_PrintStr 0C:0359 _x51LCD_PrintChr 0C:0373 _InitLCD 0C:039B _main 0C:043A _vsprintf 0C:049B _sprintf 0C:0C82 __print_format 0C:13BB _strlen 0C:140E ___fsdiv 0C:14D1 __gptrget 0C:14ED ___fssub 0C:14F8 __modulong 0C:1641 ___fsmul 0C:16E4 fsgetargs 0C:1712 __divulong 0C:181E fs_normalize_a 0C:1847 ___fs2ulong 0C:1849 fs2ulong_begin 0C:186E ___ulong2fs 0C:1877 ulong2fs_doit 0C:1881 __sdcc_external_startup 0C:1885 ___fsgt 0C:18B5 fsgetarg 0C:18C7 __gptrput 0C:18E0 ___fslt 0C:1910 ___fsadd 0C:1913 fsadd_direct_entry 0C:1969 fs_compare_uint32 0C:1987 fs_check_negative_zeros 0C:19B2 _islower 0C:19CF fs_round_and_return 0C:19E7 fs_zerocheck_return 0C:19F0 fs_return_zero 0C:19F8 fs_direct_return 0C:1A06 fs_return_inf 0C:1A13 fs_return_nan 0C:1A1E fs_swap_a_b 0C:1A38 fs_rshift_a Hexadecimal Area Addr Size Decimal Bytes (Attributes) -------------------------------- ---- ---- ------- ----- ------------ CONST 1A7B 0003 = 3. bytes (REL,CON,CODE) Hexadecimal Area Addr Size Decimal Bytes (Attributes) -------------------------------- ---- ---- ------- ----- ------------ XINIT 1A7E 0000 = 0. bytes (REL,CON,CODE) ASxxxx Linker V01.70 + NoICE + SDCC Feb 1999, page 1. Files Linked [ module(s) ] test.rel Libraries Linked [ object file ] c:\mide\sdcc\lib\large/mcs51.lib [ crtclear.rel ] c:\mide\sdcc\lib\large/mcs51.lib [ crtxinit.rel ] c:\mide\sdcc\lib\large/mcs51.lib [ crtxclear.rel ] c:\mide\sdcc\lib\large/libsdcc.lib [ sprintf ] c:\mide\sdcc\lib\large/libsdcc.lib [ _bp ] c:\mide\sdcc\lib\large/libsdcc.lib [ printf_large ] c:\mide\sdcc\lib\large/mcs51.lib [ crtpagesfr.rel ] c:\mide\sdcc\lib\large/libsdcc.lib [ _strlen ] c:\mide\sdcc\lib\large/libfloat.lib [ _fsdiv ] c:\mide\sdcc\lib\large/mcs51.lib [ crtstart.rel ] c:\mide\sdcc\lib\large/libsdcc.lib [ _gptrget ] c:\mide\sdcc\lib\large/libfloat.lib [ _fssub ] c:\mide\sdcc\lib\large/liblong.lib [ _modulong.rel ] c:\mide\sdcc\lib\large/libfloat.lib [ _fsmul ] c:\mide\sdcc\lib\large/libfloat.lib [ _fsget2args ] c:\mide\sdcc\lib\large/liblong.lib [ _divulong.rel ] c:\mide\sdcc\lib\large/libfloat.lib [ _fsnormalize ] c:\mide\sdcc\lib\large/libfloat.lib [ _fs2ulong ] c:\mide\sdcc\lib\large/libfloat.lib [ _ulong2fs ] c:\mide\sdcc\lib\large/libsdcc.lib [ _startup ] c:\mide\sdcc\lib\large/libfloat.lib [ _fsgt ] c:\mide\sdcc\lib\large/libfloat.lib [ _fsget1arg ] c:\mide\sdcc\lib\large/libsdcc.lib [ _gptrput ] c:\mide\sdcc\lib\large/libfloat.lib [ _fslt ] c:\mide\sdcc\lib\large/libfloat.lib [ _fsadd ] c:\mide\sdcc\lib\large/libfloat.lib [ _fscmp ] c:\mide\sdcc\lib\large/libsdcc.lib [ _islower ] c:\mide\sdcc\lib\large/libfloat.lib [ _fsreturnval ] c:\mide\sdcc\lib\large/libfloat.lib [ _fsswapargs ] c:\mide\sdcc\lib\large/libfloat.lib [ _fsrshift ] ASxxxx Linker V01.70 + NoICE + SDCC Feb 1999, page 2. User Base Address Definitions HOME = 0x0000 ISEG = 0x0080 BSEG = 0x0000 Regards. ---------------------------------------------------------------------- Comment By: Maarten Brock (maartenbrock) Date: 2006-12-02 10:16 Message: Logged In: YES user_id=888171 Originator: NO This should just work. Which version of SDCC are you using? If you explicitly link with your copy of printf_large.rel SDCC expects printf_large.lst in the same directory. If you copy the .rel to the standard library path for large memory model however it does not need it. After linking also have a look in the .map file. It should have the function _output_float in it. It also shows where printf_large came from. Maarten ---------------------------------------------------------------------- Comment By: Anton (candanabi) Date: 2006-12-02 04:35 Message: Logged In: YES user_id=1099099 Originator: NO Hi Raphael, I had tried what you told me to do, i compile as follow D:\WorkDir\Mikro\Komunikasi\Fax\01>c:\mide\sdcc\bin\sdcc test.c c:\mide\sdcc\lib\large\printf_large.rel --model-large --lib-path c:\mide\sdcc\lib\large c:\mide\sdcc\lib\large\printf_large.lst: cannot open. no .hex file generated. Regards. ---------------------------------------------------------------------- Comment By: Raphael Neider (tecodev) Date: 2006-12-01 22:59 Message: Logged In: YES user_id=1115835 Originator: NO OK, last idea for my part (no mcs51/library guy): Try to explicitly link the newly compiled printf-files into your project. Something like c:\mide\sdcc\bin\sdcc test.c printf_large.rel --model-large --lib-path c:\mide\sdcc\lib\large might do the job. Maybe giving the other *print*.rel files as well helps? Please, could anyone from the mcs51/library fraction speak up as to how to get this done?!? Regards, Raphael ---------------------------------------------------------------------- Comment By: Anton (candanabi) Date: 2006-12-01 19:14 Message: Logged In: YES user_id=1099099 Originator: NO Yeah i did the same thing as you do nobody, i had the same result. ---------------------------------------------------------------------- Comment By: Nobody/Anonymous (nobody) Date: 2006-12-01 09:01 Message: Logged In: NO Hi Raphael, I had compiled all three files as follow, C:\MIDE\sdcc\lib\src\new>c:\MIDE\sdcc\bin\sdcc --model-large -DUSE_FLOATS=1 -c printf_large.c C:\MIDE\sdcc\lib\src\new>c:\MIDE\sdcc\bin\sdcc --model-large -DUSE_FLOATS=1 -c srintf.c C:\MIDE\sdcc\lib\src\new>c:\MIDE\sdcc\bin\sdcc --model-large -DUSE_FLOATS=1 -c vprintf.c and move *.rel and *.asm from directory C:\MIDE\sdcc\lib\src\new to C:\MIDE\sdcc\lib\large and then compile test.c as follow, D:\WorkDir\Mikro\Komunikasi\Fax\01>c:\mide\sdcc\bin\sdcc test.c --model-large --lib-path c:\mide\sdcc\lib\large i downloaded the .hex file to development board, and still i got <NO FLOAT> when i use sprintf to format print floating point number. Please, help. Regards. ---------------------------------------------------------------------- Comment By: Raphael Neider (tecodev) Date: 2006-12-01 08:25 Message: Logged In: YES user_id=1115835 Originator: NO You forgot -c (compile and assemble but do not link), your command line should be C:\MIDE\asem51\sdcc\lib\src\old> c:\mide\sdcc\bin\sdcc --model-large -DUSE_FLOATS=1 -c sprintf.c Hope that helps, Raphael ---------------------------------------------------------------------- Comment By: Nobody/Anonymous (nobody) Date: 2006-12-01 08:21 Message: Logged In: NO I had compiled sprintf.c file as below: C:\MIDE\asem51\sdcc\lib\src\old>c:\mide\sdcc\bin\sdcc --model-large sprintf.c -D USE_FLOATS=1 sprintf.c:55: error 74: function 'main' undefined please, help. Regards. ---------------------------------------------------------------------- Comment By: Raphael Neider (tecodev) Date: 2006-11-02 10:28 Message: Logged In: YES user_id=1115835 > [sprintf] gives "<NO FLOAT>" as return value. This is because the library is built without float support to keeo it small. Assuming you do not use a PIC device, you may however use some #define in the library files to turn float support on, recompile the library... and pay the price for floats in code size. Regards, Raphael ---------------------------------------------------------------------- Comment By: Nobody/Anonymous (nobody) Date: 2006-11-02 09:15 Message: Logged In: NO I have tried to convert a float value (a decimal value of 12.5) to ascii using sprintf function, it gives "<NO FLOAT>" as return value. ---------------------------------------------------------------------- Comment By: Bernhard Held (bernhardheld) Date: 2003-05-10 20:31 Message: Logged In: YES user_id=203539 You could use output_float() in lib/src/vprintf.c as a start. ---------------------------------------------------------------------- Comment By: Nobody/Anonymous (nobody) Date: 2002-07-29 10:50 Message: Logged In: NO try using: float x = 12; char ascii [30]; sprintf (ascii, "%f", x); /* here is your float value, in ascii */ ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=200599&aid=566117&group_id=599 |
From: SourceForge.net <no...@so...> - 2006-12-02 13:15:32
|
Support Requests item #566117, was opened at 2002-06-08 09:14 Message generated for change (Comment added) made by maartenbrock You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=200599&aid=566117&group_id=599 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: None Group: None Status: Closed Priority: 5 Private: No Submitted By: Ravi Shankar (cv_ravishankar) Assigned to: Bernhard Held (bernhardheld) Summary: float to ascii conversion Initial Comment: Hi I need to convert a float value to ascii to show it on a monitor. Can somebody help ---------------------------------------------------------------------- >Comment By: Maarten Brock (maartenbrock) Date: 2006-12-02 14:15 Message: Logged In: YES user_id=888171 Originator: NO I assume you made a copy of printf_large.c in C:\MIDE\sdcc\lib\src\new\ where you compiled it. I also assume you did not copy the resulting C:\MIDE\sdcc\lib\src\new\printf_large.rel into C:\MIDE\sdcc\lib\large\ Then compiling and linking test.c does not use the new printf_large.rel but the old one. Try this: D:\WorkDir\Mikro\Komunikasi\Fax\01>c:\mide\sdcc\bin\sdcc test.c c:\mide\sdcc\lib\large\new\printf_large.rel --model-large HTH Maarten ---------------------------------------------------------------------- Comment By: Anton (candanabi) Date: 2006-12-02 12:53 Message: Logged In: YES user_id=1099099 Originator: NO I am using MIDE as editor, it come with ASM-51, Emul8051, and SDCC ver 2.6.1 M-IDE Studio for MCS-51 : Release 0.2.5.10 < Toolchain List > Emul8051 : TS Controls Emulator 8051 v1.0 ASEM-51 : mcs-51 family macro assembler v1.3 (MCU files collection Jul 17, 2005) SDCC : mcs51/gbz80/z80/avr/ds390/pic16/pic14/TININative/xa51/ds400/hc08 2.6.1 #4376 (Sep 14 2006) (MINGW32) The test.c source file is as follow, #include <stdio.h> #include <at89x52.h> #include "x51lcd.h" unsigned char STR[17]; void InitLCD(void) { x51LCD_SetPortAddress(0xE000, 0xE001); x51LCD_8bitsData(); x51LCD_DisplayOff(); x51LCD_DisplayClear(); x51LCD_CursorHome(); x51LCD_IncrementNoDisplayShift(); x51LCD_DisplayOn(); x51LCD_CursorOn(); x51LCD_BlinkOn(); } void main (void) { InitLCD(); sprintf(STR, "%f", 2.5); x51LCD_PrintStr(0x00, STR); while(1); } I had compiled three printf files as follow C:\MIDE\sdcc\lib\src\new>c:\MIDE\sdcc\bin\sdcc --model-large -DUSE_FLOATS=1 -c printf_large.c C:\MIDE\sdcc\lib\src\new>c:\MIDE\sdcc\bin\sdcc --model-large -DUSE_FLOATS=1 -c srintf.c C:\MIDE\sdcc\lib\src\new>c:\MIDE\sdcc\bin\sdcc --model-large -DUSE_FLOATS=1 -c vprintf.c and had compiled test.c as follow, D:\WorkDir\Mikro\Komunikasi\Fax\01>c:\mide\sdcc\bin\sdcc test.c --model-large --lib-path c:\mide\sdcc\lib\large and the generated map file is as below, Hexadecimal Area Addr Size Decimal Bytes (Attributes) -------------------------------- ---- ---- ------- ----- ------------ . .ABS. 0000 0000 = 0. bytes (ABS,CON) Value Global -------- -------------------------------- 0000 l_BIT_BANK 0000 l_GSINIT 0000 l_GSINIT1 0000 l_GSINIT5 0000 l_ISEG 0000 l_PSEG 0000 l_REG_BANK_1 0000 l_REG_BANK_2 0000 l_REG_BANK_3 0000 l_RSEG 0000 l_XINIT 0000 l_XISEG 0000 l__CODE 0000 s_BSEG 0000 s_DSEG 0000 s_HOME 0000 s_PSEG 0000 s_REG_BANK_0 0000 s_XSEG 0000 s__CODE 0002 l_BSEG_BYTES 0003 l_CONST 0003 l_GSFINAL 0003 l_GSINIT0 0003 l_HOME 0003 s_GSINIT0 0004 l_OSEG 0006 s_GSINIT1 0006 s_GSINIT2 0008 l_REG_BANK_0 0008 s_REG_BANK_1 000A l_GSINIT2 0010 l_BSEG 0010 s_GSINIT3 0010 s_REG_BANK_2 0013 s_OSEG 0018 s_REG_BANK_3 0020 s_BSEG_BYTES 0022 l_GSINIT3 0022 s_BIT_BANK 0022 s_RSEG 0022 s_SSEG 002A l_GSINIT4 0032 s_GSINIT4 005C s_GSFINAL 005C s_GSINIT 005C s_GSINIT5 005F s_CSEG 0077 l_DSEG 0080 _P0 0080 _P0_0 0080 s_ISEG 0081 _P0_1 0081 _SP 0082 _DPL 0082 _P0_2 0083 _DPH 0083 _P0_3 0084 _P0_4 0085 _P0_5 0086 _P0_6 0087 _P0_7 0087 _PCON 0088 _IT0 0088 _TCON 0089 _IE0 0089 _TMOD 008A _IT1 008A _TL0 008B _IE1 008B _TL1 008C _TH0 008C _TR0 008D _TF0 008D _TH1 008E _TR1 008F _TF1 0090 _P1 0090 _P1_0 0090 _T2 0091 _P1_1 0091 _T2EX 0092 _P1_2 0093 _P1_3 0094 _P1_4 0095 _P1_5 0096 _P1_6 0097 _P1_7 0098 _RI 0098 _SCON 0099 _SBUF 0099 _TI 009A _RB8 009B _TB8 009C _REN 009D _SM2 009E _SM1 009F _SM0 00A0 _P2 00A0 _P2_0 00A0 __XPAGE 00A1 _P2_1 00A2 _P2_2 00A3 _P2_3 00A4 _P2_4 00A5 _P2_5 00A6 _P2_6 00A7 _P2_7 00A8 _EX0 00A8 _IE 00A9 _ET0 00AA _EX1 00AB _ET1 00AC _ES 00AD _ET2 00AF _EA 00B0 _P3 00B0 _P3_0 00B0 _RXD 00B1 _P3_1 00B1 _TXD 00B2 _INT0 00B2 _P3_2 00B3 _INT1 00B3 _P3_3 00B4 _P3_4 00B4 _T0 00B5 _P3_5 00B5 _T1 00B6 _P3_6 00B6 _WR 00B7 _P3_7 00B7 _RD 00B8 _IP 00B8 _PX0 00B9 _PT0 00BA _PX1 00BB _PT1 00BC _PS 00BD _PT2 00C8 _CP_RL2 00C8 _T2CON 00C8 _T2CON_0 00C9 _C_T2 00C9 _T2CON_1 00C9 _T2MOD 00CA _RCAP2L 00CA _T2CON_2 00CA _TR2 00CB _EXEN2 00CB _RCAP2H 00CB _T2CON_3 00CC _T2CON_4 00CC _TCLK 00CC _TL2 00CD _RCLK 00CD _T2CON_5 00CD _TH2 00CE _EXF2 00CE _T2CON_6 00CF _T2CON_7 00CF _TF2 00D0 _P 00D0 _PSW 00D1 _FL 00D2 _OV 00D3 _RS0 00D4 _RS1 00D5 _F0 00D6 _AC 00D7 _CY 00DE l_SSEG 00E0 _A 00E0 _ACC 00F0 _B 00F5 _B_5 00F6 _B_6 00F7 _B_7 0100 l_IRAM 0104 l_XSEG 0104 s_XISEG 1A1C l_CSEG 1A7B s_CONST 1A7E s_XINIT Hexadecimal Area Addr Size Decimal Bytes (Attributes) -------------------------------- ---- ---- ------- ----- ------------ _CODE 0000 0000 = 0. bytes (REL,CON) Hexadecimal Area Addr Size Decimal Bytes (Attributes) -------------------------------- ---- ---- ------- ----- ------------ REG_BANK_0 0000 0008 = 8. bytes (REL,OVR) Hexadecimal Area Addr Size Decimal Bytes (Attributes) -------------------------------- ---- ---- ------- ----- ------------ REG_BANK_1 0008 0000 = 0. bytes (REL,OVR) Hexadecimal Area Addr Size Decimal Bytes (Attributes) -------------------------------- ---- ---- ------- ----- ------------ REG_BANK_2 0010 0000 = 0. bytes (REL,OVR) Hexadecimal Area Addr Size Decimal Bytes (Attributes) -------------------------------- ---- ---- ------- ----- ------------ REG_BANK_3 0018 0000 = 0. bytes (REL,OVR) Hexadecimal Area Addr Size Decimal Bits (Attributes) -------------------------------- ---- ---- ------- ----- ------------ BSEG 0000 0010 = 16. bits (REL,CON,BIT) Value Global -------- -------------------------------- 0B:0001 _output_float_PARM_4 0B:0002 _output_float_PARM_5 0B:0003 _output_float_PARM_6 0B:0004 _output_float_PARM_7 Hexadecimal Area Addr Size Decimal Bytes (Attributes) -------------------------------- ---- ---- ------- ----- ------------ BSEG_BYTES 0020 0002 = 2. bytes (REL,CON) Hexadecimal Area Addr Size Decimal Bytes (Attributes) -------------------------------- ---- ---- ------- ----- ------------ BIT_BANK 0022 0000 = 0. bytes (REL,OVR) Hexadecimal Area Addr Size Decimal Bytes (Attributes) -------------------------------- ---- ---- ------- ----- ------------ DSEG 0000 0077 = 119. bytes (REL,CON) Value Global -------- -------------------------------- 0008 _bp Hexadecimal Area Addr Size Decimal Bytes (Attributes) -------------------------------- ---- ---- ------- ----- ------------ OSEG 0013 0004 = 4. bytes (REL,OVR) Value Global -------- -------------------------------- 0013 __divulong_sloc0_1_0 0013 __modulong_sloc0_1_0 Hexadecimal Area Addr Size Decimal Bytes (Attributes) -------------------------------- ---- ---- ------- ----- ------------ ISEG 0080 0000 = 0. bytes (REL,CON) Hexadecimal Area Addr Size Decimal Bytes (Attributes) -------------------------------- ---- ---- ------- ----- ------------ SSEG 0022 00DE = 222. bytes (REL,OVR) Value Global -------- -------------------------------- 0022 __start__stack Hexadecimal Area Addr Size Decimal Bytes (Attributes) -------------------------------- ---- ---- ------- ----- ------------ RSEG 0022 0000 = 0. bytes (REL,CON) Hexadecimal Area Addr Size Decimal Bytes (Attributes) -------------------------------- ---- ---- ------- ----- ------------ PSEG 0000 0000 = 0. bytes (REL,CON,PAG,XDATA) Hexadecimal Area Addr Size Decimal Bytes (Attributes) -------------------------------- ---- ---- ------- ----- ------------ XSEG 0000 0104 = 260. bytes (REL,CON,XDATA) Value Global -------- -------------------------------- 0D:0000 _x51LCD_IReg0 0D:0001 _x51LCD_IReg1 0D:0002 _x51LCD_IReg2 0D:0003 _x51LCD_IReg3 0D:0004 _x51LCD_IReg4 0D:0005 _x51LCD_IReg5 0D:0006 _x51LCD_InstructionPortPTR 0D:0008 _x51LCD_DataPortPTR 0D:000C _x51LCD_SendInstruction_PARM_2 0D:0010 _x51LCD_SetPortAddress_PARM_2 0D:0015 _x51LCD_PrintStr_PARM_2 0D:0019 _x51LCD_PrintChr_PARM_2 0D:001B _STR 0D:002C _vsprintf_PARM_2 0D:002F _vsprintf_PARM_3 0D:0043 _output_float_PARM_2 0D:0044 _output_float_PARM_3 0D:00D4 __print_format_PARM_2 0D:00D7 __print_format_PARM_3 0D:00DA __print_format_PARM_4 0D:00ED __modulong_PARM_2 0D:00F6 __divulong_PARM_2 0D:0102 __gptrput_PARM_2 Hexadecimal Area Addr Size Decimal Bytes (Attributes) -------------------------------- ---- ---- ------- ----- ------------ XISEG 0104 0000 = 0. bytes (REL,CON,XDATA) Hexadecimal Area Addr Size Decimal Bytes (Attributes) -------------------------------- ---- ---- ------- ----- ------------ HOME 0000 0003 = 3. bytes (REL,CON,CODE) Hexadecimal Area Addr Size Decimal Bytes (Attributes) -------------------------------- ---- ---- ------- ----- ------------ GSINIT0 0003 0003 = 3. bytes (REL,CON,CODE) Value Global -------- -------------------------------- 0C:0003 __sdcc_gsinit_startup Hexadecimal Area Addr Size Decimal Bytes (Attributes) -------------------------------- ---- ---- ------- ----- ------------ GSINIT1 0006 0000 = 0. bytes (REL,CON,CODE) Hexadecimal Area Addr Size Decimal Bytes (Attributes) -------------------------------- ---- ---- ------- ----- ------------ GSINIT2 0006 000A = 10. bytes (REL,CON,CODE) Hexadecimal Area Addr Size Decimal Bytes (Attributes) -------------------------------- ---- ---- ------- ----- ------------ GSINIT3 0010 0022 = 34. bytes (REL,CON,CODE) Value Global -------- -------------------------------- 0C:0010 __mcs51_genXINIT Hexadecimal Area Addr Size Decimal Bytes (Attributes) -------------------------------- ---- ---- ------- ----- ------------ GSINIT4 0032 002A = 42. bytes (REL,CON,CODE) Value Global -------- -------------------------------- 0C:0032 __mcs51_genRAMCLEAR 0C:0038 __mcs51_genXRAMCLEAR Hexadecimal Area Addr Size Decimal Bytes (Attributes) -------------------------------- ---- ---- ------- ----- ------------ GSINIT5 005C 0000 = 0. bytes (REL,CON,CODE) Hexadecimal Area Addr Size Decimal Bytes (Attributes) -------------------------------- ---- ---- ------- ----- ------------ GSINIT 005C 0000 = 0. bytes (REL,CON,CODE) Hexadecimal Area Addr Size Decimal Bytes (Attributes) -------------------------------- ---- ---- ------- ----- ------------ GSFINAL 005C 0003 = 3. bytes (REL,CON,CODE) Hexadecimal Area Addr Size Decimal Bytes (Attributes) -------------------------------- ---- ---- ------- ----- ------------ CSEG 005F 1A1C = 6684. bytes (REL,CON,CODE) Value Global -------- -------------------------------- 0C:005F __sdcc_program_startup 0C:0064 _x51LCD_Delay 0C:008D _x51LCD_SendInstruction 0C:00B4 _x51LCD_SendData 0C:00D2 _x51LCD_SetPortAddress 0C:0122 _x51LCD_DisplayClear 0C:0136 _x51LCD_CursorHome 0C:014A _x51LCD_IncrementDisplayShift 0C:0165 _x51LCD_DecrementDisplayShift 0C:0180 _x51LCD_IncrementNoDisplayShift 0C:019B _x51LCD_DecrementNoDisplayShift 0C:01B6 _x51LCD_DisplayOn 0C:01D1 _x51LCD_DisplayOff 0C:01EC _x51LCD_CursorOn 0C:0207 _x51LCD_CursorOff 0C:0222 _x51LCD_BlinkOn 0C:023D _x51LCD_BlinkOff 0C:0258 _x51LCD_DisplayShiftRightShift 0C:0273 _x51LCD_DisplayShiftLeftShift 0C:028E _x51LCD_CursorMovementRightShift 0C:02A9 _x51LCD_CursorMovementLeftShift 0C:02C4 _x51LCD_8bitsData 0C:02E0 _x51LCD_4bitsData 0C:02FC _x51LCD_GotoX 0C:0319 _x51LCD_PrintStr 0C:0359 _x51LCD_PrintChr 0C:0373 _InitLCD 0C:039B _main 0C:043A _vsprintf 0C:049B _sprintf 0C:0C82 __print_format 0C:13BB _strlen 0C:140E ___fsdiv 0C:14D1 __gptrget 0C:14ED ___fssub 0C:14F8 __modulong 0C:1641 ___fsmul 0C:16E4 fsgetargs 0C:1712 __divulong 0C:181E fs_normalize_a 0C:1847 ___fs2ulong 0C:1849 fs2ulong_begin 0C:186E ___ulong2fs 0C:1877 ulong2fs_doit 0C:1881 __sdcc_external_startup 0C:1885 ___fsgt 0C:18B5 fsgetarg 0C:18C7 __gptrput 0C:18E0 ___fslt 0C:1910 ___fsadd 0C:1913 fsadd_direct_entry 0C:1969 fs_compare_uint32 0C:1987 fs_check_negative_zeros 0C:19B2 _islower 0C:19CF fs_round_and_return 0C:19E7 fs_zerocheck_return 0C:19F0 fs_return_zero 0C:19F8 fs_direct_return 0C:1A06 fs_return_inf 0C:1A13 fs_return_nan 0C:1A1E fs_swap_a_b 0C:1A38 fs_rshift_a Hexadecimal Area Addr Size Decimal Bytes (Attributes) -------------------------------- ---- ---- ------- ----- ------------ CONST 1A7B 0003 = 3. bytes (REL,CON,CODE) Hexadecimal Area Addr Size Decimal Bytes (Attributes) -------------------------------- ---- ---- ------- ----- ------------ XINIT 1A7E 0000 = 0. bytes (REL,CON,CODE) ASxxxx Linker V01.70 + NoICE + SDCC Feb 1999, page 1. Files Linked [ module(s) ] test.rel Libraries Linked [ object file ] c:\mide\sdcc\lib\large/mcs51.lib [ crtclear.rel ] c:\mide\sdcc\lib\large/mcs51.lib [ crtxinit.rel ] c:\mide\sdcc\lib\large/mcs51.lib [ crtxclear.rel ] c:\mide\sdcc\lib\large/libsdcc.lib [ sprintf ] c:\mide\sdcc\lib\large/libsdcc.lib [ _bp ] c:\mide\sdcc\lib\large/libsdcc.lib [ printf_large ] c:\mide\sdcc\lib\large/mcs51.lib [ crtpagesfr.rel ] c:\mide\sdcc\lib\large/libsdcc.lib [ _strlen ] c:\mide\sdcc\lib\large/libfloat.lib [ _fsdiv ] c:\mide\sdcc\lib\large/mcs51.lib [ crtstart.rel ] c:\mide\sdcc\lib\large/libsdcc.lib [ _gptrget ] c:\mide\sdcc\lib\large/libfloat.lib [ _fssub ] c:\mide\sdcc\lib\large/liblong.lib [ _modulong.rel ] c:\mide\sdcc\lib\large/libfloat.lib [ _fsmul ] c:\mide\sdcc\lib\large/libfloat.lib [ _fsget2args ] c:\mide\sdcc\lib\large/liblong.lib [ _divulong.rel ] c:\mide\sdcc\lib\large/libfloat.lib [ _fsnormalize ] c:\mide\sdcc\lib\large/libfloat.lib [ _fs2ulong ] c:\mide\sdcc\lib\large/libfloat.lib [ _ulong2fs ] c:\mide\sdcc\lib\large/libsdcc.lib [ _startup ] c:\mide\sdcc\lib\large/libfloat.lib [ _fsgt ] c:\mide\sdcc\lib\large/libfloat.lib [ _fsget1arg ] c:\mide\sdcc\lib\large/libsdcc.lib [ _gptrput ] c:\mide\sdcc\lib\large/libfloat.lib [ _fslt ] c:\mide\sdcc\lib\large/libfloat.lib [ _fsadd ] c:\mide\sdcc\lib\large/libfloat.lib [ _fscmp ] c:\mide\sdcc\lib\large/libsdcc.lib [ _islower ] c:\mide\sdcc\lib\large/libfloat.lib [ _fsreturnval ] c:\mide\sdcc\lib\large/libfloat.lib [ _fsswapargs ] c:\mide\sdcc\lib\large/libfloat.lib [ _fsrshift ] ASxxxx Linker V01.70 + NoICE + SDCC Feb 1999, page 2. User Base Address Definitions HOME = 0x0000 ISEG = 0x0080 BSEG = 0x0000 Regards. ---------------------------------------------------------------------- Comment By: Maarten Brock (maartenbrock) Date: 2006-12-02 11:16 Message: Logged In: YES user_id=888171 Originator: NO This should just work. Which version of SDCC are you using? If you explicitly link with your copy of printf_large.rel SDCC expects printf_large.lst in the same directory. If you copy the .rel to the standard library path for large memory model however it does not need it. After linking also have a look in the .map file. It should have the function _output_float in it. It also shows where printf_large came from. Maarten ---------------------------------------------------------------------- Comment By: Anton (candanabi) Date: 2006-12-02 05:35 Message: Logged In: YES user_id=1099099 Originator: NO Hi Raphael, I had tried what you told me to do, i compile as follow D:\WorkDir\Mikro\Komunikasi\Fax\01>c:\mide\sdcc\bin\sdcc test.c c:\mide\sdcc\lib\large\printf_large.rel --model-large --lib-path c:\mide\sdcc\lib\large c:\mide\sdcc\lib\large\printf_large.lst: cannot open. no .hex file generated. Regards. ---------------------------------------------------------------------- Comment By: Raphael Neider (tecodev) Date: 2006-12-01 23:59 Message: Logged In: YES user_id=1115835 Originator: NO OK, last idea for my part (no mcs51/library guy): Try to explicitly link the newly compiled printf-files into your project. Something like c:\mide\sdcc\bin\sdcc test.c printf_large.rel --model-large --lib-path c:\mide\sdcc\lib\large might do the job. Maybe giving the other *print*.rel files as well helps? Please, could anyone from the mcs51/library fraction speak up as to how to get this done?!? Regards, Raphael ---------------------------------------------------------------------- Comment By: Anton (candanabi) Date: 2006-12-01 20:14 Message: Logged In: YES user_id=1099099 Originator: NO Yeah i did the same thing as you do nobody, i had the same result. ---------------------------------------------------------------------- Comment By: Nobody/Anonymous (nobody) Date: 2006-12-01 10:01 Message: Logged In: NO Hi Raphael, I had compiled all three files as follow, C:\MIDE\sdcc\lib\src\new>c:\MIDE\sdcc\bin\sdcc --model-large -DUSE_FLOATS=1 -c printf_large.c C:\MIDE\sdcc\lib\src\new>c:\MIDE\sdcc\bin\sdcc --model-large -DUSE_FLOATS=1 -c srintf.c C:\MIDE\sdcc\lib\src\new>c:\MIDE\sdcc\bin\sdcc --model-large -DUSE_FLOATS=1 -c vprintf.c and move *.rel and *.asm from directory C:\MIDE\sdcc\lib\src\new to C:\MIDE\sdcc\lib\large and then compile test.c as follow, D:\WorkDir\Mikro\Komunikasi\Fax\01>c:\mide\sdcc\bin\sdcc test.c --model-large --lib-path c:\mide\sdcc\lib\large i downloaded the .hex file to development board, and still i got <NO FLOAT> when i use sprintf to format print floating point number. Please, help. Regards. ---------------------------------------------------------------------- Comment By: Raphael Neider (tecodev) Date: 2006-12-01 09:25 Message: Logged In: YES user_id=1115835 Originator: NO You forgot -c (compile and assemble but do not link), your command line should be C:\MIDE\asem51\sdcc\lib\src\old> c:\mide\sdcc\bin\sdcc --model-large -DUSE_FLOATS=1 -c sprintf.c Hope that helps, Raphael ---------------------------------------------------------------------- Comment By: Nobody/Anonymous (nobody) Date: 2006-12-01 09:21 Message: Logged In: NO I had compiled sprintf.c file as below: C:\MIDE\asem51\sdcc\lib\src\old>c:\mide\sdcc\bin\sdcc --model-large sprintf.c -D USE_FLOATS=1 sprintf.c:55: error 74: function 'main' undefined please, help. Regards. ---------------------------------------------------------------------- Comment By: Raphael Neider (tecodev) Date: 2006-11-02 11:28 Message: Logged In: YES user_id=1115835 > [sprintf] gives "<NO FLOAT>" as return value. This is because the library is built without float support to keeo it small. Assuming you do not use a PIC device, you may however use some #define in the library files to turn float support on, recompile the library... and pay the price for floats in code size. Regards, Raphael ---------------------------------------------------------------------- Comment By: Nobody/Anonymous (nobody) Date: 2006-11-02 10:15 Message: Logged In: NO I have tried to convert a float value (a decimal value of 12.5) to ascii using sprintf function, it gives "<NO FLOAT>" as return value. ---------------------------------------------------------------------- Comment By: Bernhard Held (bernhardheld) Date: 2003-05-10 22:31 Message: Logged In: YES user_id=203539 You could use output_float() in lib/src/vprintf.c as a start. ---------------------------------------------------------------------- Comment By: Nobody/Anonymous (nobody) Date: 2002-07-29 12:50 Message: Logged In: NO try using: float x = 12; char ascii [30]; sprintf (ascii, "%f", x); /* here is your float value, in ascii */ ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=200599&aid=566117&group_id=599 |
From: SourceForge.net <no...@so...> - 2006-12-02 15:34:16
|
Support Requests item #566117, was opened at 2002-06-08 07:14 Message generated for change (Comment added) made by candanabi You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=200599&aid=566117&group_id=599 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: None Group: None Status: Closed Priority: 5 Private: No Submitted By: Ravi Shankar (cv_ravishankar) Assigned to: Bernhard Held (bernhardheld) Summary: float to ascii conversion Initial Comment: Hi I need to convert a float value to ascii to show it on a monitor. Can somebody help ---------------------------------------------------------------------- Comment By: Anton (candanabi) Date: 2006-12-02 15:34 Message: Logged In: YES user_id=1099099 Originator: NO Hi Maarten, The result is the same, i got <NO FLOAT>. Regards. ---------------------------------------------------------------------- Comment By: Maarten Brock (maartenbrock) Date: 2006-12-02 13:15 Message: Logged In: YES user_id=888171 Originator: NO I assume you made a copy of printf_large.c in C:\MIDE\sdcc\lib\src\new\ where you compiled it. I also assume you did not copy the resulting C:\MIDE\sdcc\lib\src\new\printf_large.rel into C:\MIDE\sdcc\lib\large\ Then compiling and linking test.c does not use the new printf_large.rel but the old one. Try this: D:\WorkDir\Mikro\Komunikasi\Fax\01>c:\mide\sdcc\bin\sdcc test.c c:\mide\sdcc\lib\large\new\printf_large.rel --model-large HTH Maarten ---------------------------------------------------------------------- Comment By: Anton (candanabi) Date: 2006-12-02 11:53 Message: Logged In: YES user_id=1099099 Originator: NO I am using MIDE as editor, it come with ASM-51, Emul8051, and SDCC ver 2.6.1 M-IDE Studio for MCS-51 : Release 0.2.5.10 < Toolchain List > Emul8051 : TS Controls Emulator 8051 v1.0 ASEM-51 : mcs-51 family macro assembler v1.3 (MCU files collection Jul 17, 2005) SDCC : mcs51/gbz80/z80/avr/ds390/pic16/pic14/TININative/xa51/ds400/hc08 2.6.1 #4376 (Sep 14 2006) (MINGW32) The test.c source file is as follow, #include <stdio.h> #include <at89x52.h> #include "x51lcd.h" unsigned char STR[17]; void InitLCD(void) { x51LCD_SetPortAddress(0xE000, 0xE001); x51LCD_8bitsData(); x51LCD_DisplayOff(); x51LCD_DisplayClear(); x51LCD_CursorHome(); x51LCD_IncrementNoDisplayShift(); x51LCD_DisplayOn(); x51LCD_CursorOn(); x51LCD_BlinkOn(); } void main (void) { InitLCD(); sprintf(STR, "%f", 2.5); x51LCD_PrintStr(0x00, STR); while(1); } I had compiled three printf files as follow C:\MIDE\sdcc\lib\src\new>c:\MIDE\sdcc\bin\sdcc --model-large -DUSE_FLOATS=1 -c printf_large.c C:\MIDE\sdcc\lib\src\new>c:\MIDE\sdcc\bin\sdcc --model-large -DUSE_FLOATS=1 -c srintf.c C:\MIDE\sdcc\lib\src\new>c:\MIDE\sdcc\bin\sdcc --model-large -DUSE_FLOATS=1 -c vprintf.c and had compiled test.c as follow, D:\WorkDir\Mikro\Komunikasi\Fax\01>c:\mide\sdcc\bin\sdcc test.c --model-large --lib-path c:\mide\sdcc\lib\large and the generated map file is as below, Hexadecimal Area Addr Size Decimal Bytes (Attributes) -------------------------------- ---- ---- ------- ----- ------------ . .ABS. 0000 0000 = 0. bytes (ABS,CON) Value Global -------- -------------------------------- 0000 l_BIT_BANK 0000 l_GSINIT 0000 l_GSINIT1 0000 l_GSINIT5 0000 l_ISEG 0000 l_PSEG 0000 l_REG_BANK_1 0000 l_REG_BANK_2 0000 l_REG_BANK_3 0000 l_RSEG 0000 l_XINIT 0000 l_XISEG 0000 l__CODE 0000 s_BSEG 0000 s_DSEG 0000 s_HOME 0000 s_PSEG 0000 s_REG_BANK_0 0000 s_XSEG 0000 s__CODE 0002 l_BSEG_BYTES 0003 l_CONST 0003 l_GSFINAL 0003 l_GSINIT0 0003 l_HOME 0003 s_GSINIT0 0004 l_OSEG 0006 s_GSINIT1 0006 s_GSINIT2 0008 l_REG_BANK_0 0008 s_REG_BANK_1 000A l_GSINIT2 0010 l_BSEG 0010 s_GSINIT3 0010 s_REG_BANK_2 0013 s_OSEG 0018 s_REG_BANK_3 0020 s_BSEG_BYTES 0022 l_GSINIT3 0022 s_BIT_BANK 0022 s_RSEG 0022 s_SSEG 002A l_GSINIT4 0032 s_GSINIT4 005C s_GSFINAL 005C s_GSINIT 005C s_GSINIT5 005F s_CSEG 0077 l_DSEG 0080 _P0 0080 _P0_0 0080 s_ISEG 0081 _P0_1 0081 _SP 0082 _DPL 0082 _P0_2 0083 _DPH 0083 _P0_3 0084 _P0_4 0085 _P0_5 0086 _P0_6 0087 _P0_7 0087 _PCON 0088 _IT0 0088 _TCON 0089 _IE0 0089 _TMOD 008A _IT1 008A _TL0 008B _IE1 008B _TL1 008C _TH0 008C _TR0 008D _TF0 008D _TH1 008E _TR1 008F _TF1 0090 _P1 0090 _P1_0 0090 _T2 0091 _P1_1 0091 _T2EX 0092 _P1_2 0093 _P1_3 0094 _P1_4 0095 _P1_5 0096 _P1_6 0097 _P1_7 0098 _RI 0098 _SCON 0099 _SBUF 0099 _TI 009A _RB8 009B _TB8 009C _REN 009D _SM2 009E _SM1 009F _SM0 00A0 _P2 00A0 _P2_0 00A0 __XPAGE 00A1 _P2_1 00A2 _P2_2 00A3 _P2_3 00A4 _P2_4 00A5 _P2_5 00A6 _P2_6 00A7 _P2_7 00A8 _EX0 00A8 _IE 00A9 _ET0 00AA _EX1 00AB _ET1 00AC _ES 00AD _ET2 00AF _EA 00B0 _P3 00B0 _P3_0 00B0 _RXD 00B1 _P3_1 00B1 _TXD 00B2 _INT0 00B2 _P3_2 00B3 _INT1 00B3 _P3_3 00B4 _P3_4 00B4 _T0 00B5 _P3_5 00B5 _T1 00B6 _P3_6 00B6 _WR 00B7 _P3_7 00B7 _RD 00B8 _IP 00B8 _PX0 00B9 _PT0 00BA _PX1 00BB _PT1 00BC _PS 00BD _PT2 00C8 _CP_RL2 00C8 _T2CON 00C8 _T2CON_0 00C9 _C_T2 00C9 _T2CON_1 00C9 _T2MOD 00CA _RCAP2L 00CA _T2CON_2 00CA _TR2 00CB _EXEN2 00CB _RCAP2H 00CB _T2CON_3 00CC _T2CON_4 00CC _TCLK 00CC _TL2 00CD _RCLK 00CD _T2CON_5 00CD _TH2 00CE _EXF2 00CE _T2CON_6 00CF _T2CON_7 00CF _TF2 00D0 _P 00D0 _PSW 00D1 _FL 00D2 _OV 00D3 _RS0 00D4 _RS1 00D5 _F0 00D6 _AC 00D7 _CY 00DE l_SSEG 00E0 _A 00E0 _ACC 00F0 _B 00F5 _B_5 00F6 _B_6 00F7 _B_7 0100 l_IRAM 0104 l_XSEG 0104 s_XISEG 1A1C l_CSEG 1A7B s_CONST 1A7E s_XINIT Hexadecimal Area Addr Size Decimal Bytes (Attributes) -------------------------------- ---- ---- ------- ----- ------------ _CODE 0000 0000 = 0. bytes (REL,CON) Hexadecimal Area Addr Size Decimal Bytes (Attributes) -------------------------------- ---- ---- ------- ----- ------------ REG_BANK_0 0000 0008 = 8. bytes (REL,OVR) Hexadecimal Area Addr Size Decimal Bytes (Attributes) -------------------------------- ---- ---- ------- ----- ------------ REG_BANK_1 0008 0000 = 0. bytes (REL,OVR) Hexadecimal Area Addr Size Decimal Bytes (Attributes) -------------------------------- ---- ---- ------- ----- ------------ REG_BANK_2 0010 0000 = 0. bytes (REL,OVR) Hexadecimal Area Addr Size Decimal Bytes (Attributes) -------------------------------- ---- ---- ------- ----- ------------ REG_BANK_3 0018 0000 = 0. bytes (REL,OVR) Hexadecimal Area Addr Size Decimal Bits (Attributes) -------------------------------- ---- ---- ------- ----- ------------ BSEG 0000 0010 = 16. bits (REL,CON,BIT) Value Global -------- -------------------------------- 0B:0001 _output_float_PARM_4 0B:0002 _output_float_PARM_5 0B:0003 _output_float_PARM_6 0B:0004 _output_float_PARM_7 Hexadecimal Area Addr Size Decimal Bytes (Attributes) -------------------------------- ---- ---- ------- ----- ------------ BSEG_BYTES 0020 0002 = 2. bytes (REL,CON) Hexadecimal Area Addr Size Decimal Bytes (Attributes) -------------------------------- ---- ---- ------- ----- ------------ BIT_BANK 0022 0000 = 0. bytes (REL,OVR) Hexadecimal Area Addr Size Decimal Bytes (Attributes) -------------------------------- ---- ---- ------- ----- ------------ DSEG 0000 0077 = 119. bytes (REL,CON) Value Global -------- -------------------------------- 0008 _bp Hexadecimal Area Addr Size Decimal Bytes (Attributes) -------------------------------- ---- ---- ------- ----- ------------ OSEG 0013 0004 = 4. bytes (REL,OVR) Value Global -------- -------------------------------- 0013 __divulong_sloc0_1_0 0013 __modulong_sloc0_1_0 Hexadecimal Area Addr Size Decimal Bytes (Attributes) -------------------------------- ---- ---- ------- ----- ------------ ISEG 0080 0000 = 0. bytes (REL,CON) Hexadecimal Area Addr Size Decimal Bytes (Attributes) -------------------------------- ---- ---- ------- ----- ------------ SSEG 0022 00DE = 222. bytes (REL,OVR) Value Global -------- -------------------------------- 0022 __start__stack Hexadecimal Area Addr Size Decimal Bytes (Attributes) -------------------------------- ---- ---- ------- ----- ------------ RSEG 0022 0000 = 0. bytes (REL,CON) Hexadecimal Area Addr Size Decimal Bytes (Attributes) -------------------------------- ---- ---- ------- ----- ------------ PSEG 0000 0000 = 0. bytes (REL,CON,PAG,XDATA) Hexadecimal Area Addr Size Decimal Bytes (Attributes) -------------------------------- ---- ---- ------- ----- ------------ XSEG 0000 0104 = 260. bytes (REL,CON,XDATA) Value Global -------- -------------------------------- 0D:0000 _x51LCD_IReg0 0D:0001 _x51LCD_IReg1 0D:0002 _x51LCD_IReg2 0D:0003 _x51LCD_IReg3 0D:0004 _x51LCD_IReg4 0D:0005 _x51LCD_IReg5 0D:0006 _x51LCD_InstructionPortPTR 0D:0008 _x51LCD_DataPortPTR 0D:000C _x51LCD_SendInstruction_PARM_2 0D:0010 _x51LCD_SetPortAddress_PARM_2 0D:0015 _x51LCD_PrintStr_PARM_2 0D:0019 _x51LCD_PrintChr_PARM_2 0D:001B _STR 0D:002C _vsprintf_PARM_2 0D:002F _vsprintf_PARM_3 0D:0043 _output_float_PARM_2 0D:0044 _output_float_PARM_3 0D:00D4 __print_format_PARM_2 0D:00D7 __print_format_PARM_3 0D:00DA __print_format_PARM_4 0D:00ED __modulong_PARM_2 0D:00F6 __divulong_PARM_2 0D:0102 __gptrput_PARM_2 Hexadecimal Area Addr Size Decimal Bytes (Attributes) -------------------------------- ---- ---- ------- ----- ------------ XISEG 0104 0000 = 0. bytes (REL,CON,XDATA) Hexadecimal Area Addr Size Decimal Bytes (Attributes) -------------------------------- ---- ---- ------- ----- ------------ HOME 0000 0003 = 3. bytes (REL,CON,CODE) Hexadecimal Area Addr Size Decimal Bytes (Attributes) -------------------------------- ---- ---- ------- ----- ------------ GSINIT0 0003 0003 = 3. bytes (REL,CON,CODE) Value Global -------- -------------------------------- 0C:0003 __sdcc_gsinit_startup Hexadecimal Area Addr Size Decimal Bytes (Attributes) -------------------------------- ---- ---- ------- ----- ------------ GSINIT1 0006 0000 = 0. bytes (REL,CON,CODE) Hexadecimal Area Addr Size Decimal Bytes (Attributes) -------------------------------- ---- ---- ------- ----- ------------ GSINIT2 0006 000A = 10. bytes (REL,CON,CODE) Hexadecimal Area Addr Size Decimal Bytes (Attributes) -------------------------------- ---- ---- ------- ----- ------------ GSINIT3 0010 0022 = 34. bytes (REL,CON,CODE) Value Global -------- -------------------------------- 0C:0010 __mcs51_genXINIT Hexadecimal Area Addr Size Decimal Bytes (Attributes) -------------------------------- ---- ---- ------- ----- ------------ GSINIT4 0032 002A = 42. bytes (REL,CON,CODE) Value Global -------- -------------------------------- 0C:0032 __mcs51_genRAMCLEAR 0C:0038 __mcs51_genXRAMCLEAR Hexadecimal Area Addr Size Decimal Bytes (Attributes) -------------------------------- ---- ---- ------- ----- ------------ GSINIT5 005C 0000 = 0. bytes (REL,CON,CODE) Hexadecimal Area Addr Size Decimal Bytes (Attributes) -------------------------------- ---- ---- ------- ----- ------------ GSINIT 005C 0000 = 0. bytes (REL,CON,CODE) Hexadecimal Area Addr Size Decimal Bytes (Attributes) -------------------------------- ---- ---- ------- ----- ------------ GSFINAL 005C 0003 = 3. bytes (REL,CON,CODE) Hexadecimal Area Addr Size Decimal Bytes (Attributes) -------------------------------- ---- ---- ------- ----- ------------ CSEG 005F 1A1C = 6684. bytes (REL,CON,CODE) Value Global -------- -------------------------------- 0C:005F __sdcc_program_startup 0C:0064 _x51LCD_Delay 0C:008D _x51LCD_SendInstruction 0C:00B4 _x51LCD_SendData 0C:00D2 _x51LCD_SetPortAddress 0C:0122 _x51LCD_DisplayClear 0C:0136 _x51LCD_CursorHome 0C:014A _x51LCD_IncrementDisplayShift 0C:0165 _x51LCD_DecrementDisplayShift 0C:0180 _x51LCD_IncrementNoDisplayShift 0C:019B _x51LCD_DecrementNoDisplayShift 0C:01B6 _x51LCD_DisplayOn 0C:01D1 _x51LCD_DisplayOff 0C:01EC _x51LCD_CursorOn 0C:0207 _x51LCD_CursorOff 0C:0222 _x51LCD_BlinkOn 0C:023D _x51LCD_BlinkOff 0C:0258 _x51LCD_DisplayShiftRightShift 0C:0273 _x51LCD_DisplayShiftLeftShift 0C:028E _x51LCD_CursorMovementRightShift 0C:02A9 _x51LCD_CursorMovementLeftShift 0C:02C4 _x51LCD_8bitsData 0C:02E0 _x51LCD_4bitsData 0C:02FC _x51LCD_GotoX 0C:0319 _x51LCD_PrintStr 0C:0359 _x51LCD_PrintChr 0C:0373 _InitLCD 0C:039B _main 0C:043A _vsprintf 0C:049B _sprintf 0C:0C82 __print_format 0C:13BB _strlen 0C:140E ___fsdiv 0C:14D1 __gptrget 0C:14ED ___fssub 0C:14F8 __modulong 0C:1641 ___fsmul 0C:16E4 fsgetargs 0C:1712 __divulong 0C:181E fs_normalize_a 0C:1847 ___fs2ulong 0C:1849 fs2ulong_begin 0C:186E ___ulong2fs 0C:1877 ulong2fs_doit 0C:1881 __sdcc_external_startup 0C:1885 ___fsgt 0C:18B5 fsgetarg 0C:18C7 __gptrput 0C:18E0 ___fslt 0C:1910 ___fsadd 0C:1913 fsadd_direct_entry 0C:1969 fs_compare_uint32 0C:1987 fs_check_negative_zeros 0C:19B2 _islower 0C:19CF fs_round_and_return 0C:19E7 fs_zerocheck_return 0C:19F0 fs_return_zero 0C:19F8 fs_direct_return 0C:1A06 fs_return_inf 0C:1A13 fs_return_nan 0C:1A1E fs_swap_a_b 0C:1A38 fs_rshift_a Hexadecimal Area Addr Size Decimal Bytes (Attributes) -------------------------------- ---- ---- ------- ----- ------------ CONST 1A7B 0003 = 3. bytes (REL,CON,CODE) Hexadecimal Area Addr Size Decimal Bytes (Attributes) -------------------------------- ---- ---- ------- ----- ------------ XINIT 1A7E 0000 = 0. bytes (REL,CON,CODE) ASxxxx Linker V01.70 + NoICE + SDCC Feb 1999, page 1. Files Linked [ module(s) ] test.rel Libraries Linked [ object file ] c:\mide\sdcc\lib\large/mcs51.lib [ crtclear.rel ] c:\mide\sdcc\lib\large/mcs51.lib [ crtxinit.rel ] c:\mide\sdcc\lib\large/mcs51.lib [ crtxclear.rel ] c:\mide\sdcc\lib\large/libsdcc.lib [ sprintf ] c:\mide\sdcc\lib\large/libsdcc.lib [ _bp ] c:\mide\sdcc\lib\large/libsdcc.lib [ printf_large ] c:\mide\sdcc\lib\large/mcs51.lib [ crtpagesfr.rel ] c:\mide\sdcc\lib\large/libsdcc.lib [ _strlen ] c:\mide\sdcc\lib\large/libfloat.lib [ _fsdiv ] c:\mide\sdcc\lib\large/mcs51.lib [ crtstart.rel ] c:\mide\sdcc\lib\large/libsdcc.lib [ _gptrget ] c:\mide\sdcc\lib\large/libfloat.lib [ _fssub ] c:\mide\sdcc\lib\large/liblong.lib [ _modulong.rel ] c:\mide\sdcc\lib\large/libfloat.lib [ _fsmul ] c:\mide\sdcc\lib\large/libfloat.lib [ _fsget2args ] c:\mide\sdcc\lib\large/liblong.lib [ _divulong.rel ] c:\mide\sdcc\lib\large/libfloat.lib [ _fsnormalize ] c:\mide\sdcc\lib\large/libfloat.lib [ _fs2ulong ] c:\mide\sdcc\lib\large/libfloat.lib [ _ulong2fs ] c:\mide\sdcc\lib\large/libsdcc.lib [ _startup ] c:\mide\sdcc\lib\large/libfloat.lib [ _fsgt ] c:\mide\sdcc\lib\large/libfloat.lib [ _fsget1arg ] c:\mide\sdcc\lib\large/libsdcc.lib [ _gptrput ] c:\mide\sdcc\lib\large/libfloat.lib [ _fslt ] c:\mide\sdcc\lib\large/libfloat.lib [ _fsadd ] c:\mide\sdcc\lib\large/libfloat.lib [ _fscmp ] c:\mide\sdcc\lib\large/libsdcc.lib [ _islower ] c:\mide\sdcc\lib\large/libfloat.lib [ _fsreturnval ] c:\mide\sdcc\lib\large/libfloat.lib [ _fsswapargs ] c:\mide\sdcc\lib\large/libfloat.lib [ _fsrshift ] ASxxxx Linker V01.70 + NoICE + SDCC Feb 1999, page 2. User Base Address Definitions HOME = 0x0000 ISEG = 0x0080 BSEG = 0x0000 Regards. ---------------------------------------------------------------------- Comment By: Maarten Brock (maartenbrock) Date: 2006-12-02 10:16 Message: Logged In: YES user_id=888171 Originator: NO This should just work. Which version of SDCC are you using? If you explicitly link with your copy of printf_large.rel SDCC expects printf_large.lst in the same directory. If you copy the .rel to the standard library path for large memory model however it does not need it. After linking also have a look in the .map file. It should have the function _output_float in it. It also shows where printf_large came from. Maarten ---------------------------------------------------------------------- Comment By: Anton (candanabi) Date: 2006-12-02 04:35 Message: Logged In: YES user_id=1099099 Originator: NO Hi Raphael, I had tried what you told me to do, i compile as follow D:\WorkDir\Mikro\Komunikasi\Fax\01>c:\mide\sdcc\bin\sdcc test.c c:\mide\sdcc\lib\large\printf_large.rel --model-large --lib-path c:\mide\sdcc\lib\large c:\mide\sdcc\lib\large\printf_large.lst: cannot open. no .hex file generated. Regards. ---------------------------------------------------------------------- Comment By: Raphael Neider (tecodev) Date: 2006-12-01 22:59 Message: Logged In: YES user_id=1115835 Originator: NO OK, last idea for my part (no mcs51/library guy): Try to explicitly link the newly compiled printf-files into your project. Something like c:\mide\sdcc\bin\sdcc test.c printf_large.rel --model-large --lib-path c:\mide\sdcc\lib\large might do the job. Maybe giving the other *print*.rel files as well helps? Please, could anyone from the mcs51/library fraction speak up as to how to get this done?!? Regards, Raphael ---------------------------------------------------------------------- Comment By: Anton (candanabi) Date: 2006-12-01 19:14 Message: Logged In: YES user_id=1099099 Originator: NO Yeah i did the same thing as you do nobody, i had the same result. ---------------------------------------------------------------------- Comment By: Nobody/Anonymous (nobody) Date: 2006-12-01 09:01 Message: Logged In: NO Hi Raphael, I had compiled all three files as follow, C:\MIDE\sdcc\lib\src\new>c:\MIDE\sdcc\bin\sdcc --model-large -DUSE_FLOATS=1 -c printf_large.c C:\MIDE\sdcc\lib\src\new>c:\MIDE\sdcc\bin\sdcc --model-large -DUSE_FLOATS=1 -c srintf.c C:\MIDE\sdcc\lib\src\new>c:\MIDE\sdcc\bin\sdcc --model-large -DUSE_FLOATS=1 -c vprintf.c and move *.rel and *.asm from directory C:\MIDE\sdcc\lib\src\new to C:\MIDE\sdcc\lib\large and then compile test.c as follow, D:\WorkDir\Mikro\Komunikasi\Fax\01>c:\mide\sdcc\bin\sdcc test.c --model-large --lib-path c:\mide\sdcc\lib\large i downloaded the .hex file to development board, and still i got <NO FLOAT> when i use sprintf to format print floating point number. Please, help. Regards. ---------------------------------------------------------------------- Comment By: Raphael Neider (tecodev) Date: 2006-12-01 08:25 Message: Logged In: YES user_id=1115835 Originator: NO You forgot -c (compile and assemble but do not link), your command line should be C:\MIDE\asem51\sdcc\lib\src\old> c:\mide\sdcc\bin\sdcc --model-large -DUSE_FLOATS=1 -c sprintf.c Hope that helps, Raphael ---------------------------------------------------------------------- Comment By: Nobody/Anonymous (nobody) Date: 2006-12-01 08:21 Message: Logged In: NO I had compiled sprintf.c file as below: C:\MIDE\asem51\sdcc\lib\src\old>c:\mide\sdcc\bin\sdcc --model-large sprintf.c -D USE_FLOATS=1 sprintf.c:55: error 74: function 'main' undefined please, help. Regards. ---------------------------------------------------------------------- Comment By: Raphael Neider (tecodev) Date: 2006-11-02 10:28 Message: Logged In: YES user_id=1115835 > [sprintf] gives "<NO FLOAT>" as return value. This is because the library is built without float support to keeo it small. Assuming you do not use a PIC device, you may however use some #define in the library files to turn float support on, recompile the library... and pay the price for floats in code size. Regards, Raphael ---------------------------------------------------------------------- Comment By: Nobody/Anonymous (nobody) Date: 2006-11-02 09:15 Message: Logged In: NO I have tried to convert a float value (a decimal value of 12.5) to ascii using sprintf function, it gives "<NO FLOAT>" as return value. ---------------------------------------------------------------------- Comment By: Bernhard Held (bernhardheld) Date: 2003-05-10 20:31 Message: Logged In: YES user_id=203539 You could use output_float() in lib/src/vprintf.c as a start. ---------------------------------------------------------------------- Comment By: Nobody/Anonymous (nobody) Date: 2002-07-29 10:50 Message: Logged In: NO try using: float x = 12; char ascii [30]; sprintf (ascii, "%f", x); /* here is your float value, in ascii */ ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=200599&aid=566117&group_id=599 |