-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
Hi!
n f wrote:
I'm programming a 68hc11e1 microprocessor, using c. Does anyone know if it's possible to use stdio functions from c, to program a 68hc11e1. Everytime I compile it gives me an error when I try to use sscanf function. I'm trying to convert a string to float. I have inserted "#include <stdio.h>", but it still does not work.
You don't tell us which error you are getting.
You must at least add the following libraries: -lc -lbcc -lc and use the newlib 1.11 to use sscanf().
Note that even if floating points work well with 68hc11/68hc12 the libraries are so huge that it's quite unusable in a real situation. Stay away from using floating point when using a such embedded system.
The 'sscanf' and 'printf' with floating point support are also so huge (in newlib) that it will use 75% of the 64K address space. (it will not fit in your 24K text region).
Stephane
here are my files: Here's my memory.x file:
OUTPUT_FORMAT("elf32-m68hc11", "elf32-m68hc11", "elf32-m68hc11") OUTPUT_ARCH(m68hc11) ENTRY(_start) SEARCH_DIR(C:\usr\lib\gcc-lib\m6811-elf\3.3.1-m68hc1x-20031004 \mshort)
MEMORY { ioports (!x) : org = 0x1000, l = 0x500 eeprom (!i) : org = 0xB600, l = 0x300 data (rwx) : org = 0x8800, l = 0x1000 text (rx) : org = 0x9000, l = 0x6000 }
PROVIDE (_stack = 0x01ff-1);
------------------------------------------------------------- here's my project.mak file:
OC = c:/usr/bin/m6811-elf-objcopy CC = c:/usr/bin/m6811-elf-gcc RM = C:/embeddedGNU/rm.exe
CFLAGS = -m68hc11 -O3 -fno-ident -fno-common -fomit-frame-pointer - mshort -fsigned-char LDFLAGS = -Wl,-u,-mm68hc11elfb OCFLAGS = -O srec
CSRCS=main.c
OBJS=$(CSRCS:.c=.o)
all: ourProject.elf ourProject.s19
$(OBJS): %.o: %.c $(CC) $(CFLAGS) -c $<
ourProject.elf: $(OBJS) $(CC) $(CFLAGS) $(LDFLAGS) -o ourProject.elf $(OBJS)
ourProject.s19: ourProject.elf $(OC) $(OCFLAGS) ourProject.elf ourProject.s19
clean: $(RM) -f ourProject.elf $(RM) -f ourProject.s19 $(RM) -f ourProject.dmp $(RM) -f $(OBJS)
--------------------------------------- basically this is what i'm adding:
#include<stdio.h>
UINT x; char *out = "1234.4213"; // this is what what the data
//looks like float fnum; x = sscanf(out, "%lf", &fnum);
__________________________________ Do you Yahoo!? Yahoo! Finance Tax Center - File online. File on time. http://taxes.yahoo.com/filing.html
- -- Home Office
E-mail: stcarrez@xxxxxxxx Stephane.Carrez@xxxxxxxxxxx
WWW: http://stcarrez.nerim.net http://www.solsoft.com
Free the Software! Security Policy Management
-----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.1 (GNU/Linux) Comment: Using GnuPG with Netscape - http://enigmail.mozdev.org
iD8DBQFAYhBhNyQxO2LzKT0RApLPAJ0U9ecLNMKKoo6JeJGPG2IKaS2twwCg3XnO rZg5zlUMmBhcgDMJ4jw5PkY= =0LEz -----END PGP SIGNATURE-----