I'm trying to use printf function. I'am using ST7VD 3.3.4 and Cosmic C Compiler 4.5.7 (version limited to 16kB). I write own putchar procedure, to send char to LCD display. When i use printf and integer operations library it's ok, but when i select float operations library in linker configuration while compiling i see: #error clnk Debug\calc.lkf:1 segment .text size overflow (940) #error clnk Debug\calc.lkf:1 segment .const size overflow (141) #error clnk Debug\calc.lkf:1 segment .init size overflow (3) #error clnk Debug\calc.lkf:1 segments .text (0xe000-0x103ac) and .const (0xffe0-0x10000) overlap I'm using Long Memory model, but problem appears in all models. I have attached my project files. I need to use float operations library and printf because in future i want to display double type numbers on LCD screen Thanks in advance Sorry for my english, but I'm from Poland [ This message was edited by: krzysiekadmi on 02-12-2007 16:12 ]
________________
Attachments : st7-test.zip : https://st--c.eu10.content.force.com/sfc/dist/version/download/?oid=00Db0000000YtG6&ids=0680X000006HzgF&d=%2Fa%2F0X0000000bVN%2Fy4xOPnJgtKTm4868D_VaTI1z6U8XpQxSEVYAdYSgLvU&asPdf=false
Posted on December 03, 2007 at 04:59the floating point libraries are bigger than the integer ones, you need to change your linker file (and maybe your chip?) to allow more place for the extra code. Regards, Luca (Cosmic)
Posted on December 04, 2007 at 04:14you need to edit the linker file (calc.lkf). Somewhere in there you will have something like +seg .text -b 0xe000 -n .text # program start address change the 0xe000 with a lower value (for example 0x8000 for a 32k memory). If you use STVD7, this value is probably linked to the chip you have chosen: chenge the chip or look in the menus if you can find a way to override the standard value for your chip. Needless to say, if you *must* use a chip with only 8k of memory, all the above is just a trial, but your application is too big for your chip.