Yahoo Groups archive

Lpc2000

Index last updated: 2026-04-28 23:31 UTC

Message

Re: [lpc2000] Re: Looking to buy compiler

2005-11-08 by Tom Walsh

rtstofer wrote:

>--- In lpc2000@yahoogroups.com, Tom Walsh <tom@o...> wrote:
>  
>
>>rtstofer wrote:
>>
>>    
>>
>>>--- In lpc2000@yahoogroups.com, "lpcarmed" <lpcarmed@g...> wrote:
>>> 
>>>
>>>      
>>>
>>>>Have you tried gcc with Eclipse as an IDE? That puts you right 
>>>>        
>>>>
>into a
>  
>
>>>>driver seat of a BMW.
>>>>   
>>>>
>>>>        
>>>>
>>>I am using that setup and it works well.  However, I haven't 
>>>      
>>>
>really 
>  
>
>>>come to love OCD Remote and Insight.  Besides, I don't have 
>>>      
>>>
>enough 
>  
>
>>>pins to give away just to use jtag.
>>>
>>>Eventually I need to find out how to cut back on the library 
>>>      
>>>
>code - it 
>  
>
>>>is GIGANTIC.
>>>
>>> 
>>>
>>>      
>>>
>>What library are you using?  I'm using NewLib and it seems to be 
>>reasonable in size.  Of course, I stay away from stuff like sprintf
>>    
>>
>(), 
>  
>
>>sscanf() and use itoa() + my own atoi() routines..  Sometimes you 
>>    
>>
>just 
>  
>
>>gotta write your own stuff, heh.  ;-)
>>
>>TomW
>>    
>>
>
>As far as I know, I am using newlib.  However, the uIP web server 
>application uses vsprintf and that pulls in a LOT of library code.  
>The entire network project seems to take about 23k (0000h - 5887h) 
>and the library adds nearly another 32K (5888h - D244h).
>
>After reading the promo stuff about uIP, I thought the stack would 
>be on the small side.  When I got the web server running (without 
>FreeRTOS), it takes 60444 bytes including the .rodata.  HUGE!
>
>Maybe I am bringing in too many libraries but it seemed right at the 
>time:
>
>ARCHIVE1= "C:/Program Files/GNUARM/lib/gcc/arm-elf/3.4.3"
>ARCHIVE2= "C:/Program Files/GNUARM/arm-elf/lib"
>LIBFLAGS= -L${ARCHIVE2} -lc -lg -L$(ARCHIVE1) -lgcc 
>
>Anyway, I now want to integrate FreeRTOS (I think) and add my 
>FAT32/CF drivers and my MP3 stuff.  The objective is a simple 
>networkable MP3 player for special effects.  I will probably change 
>from httpd to telnetd so I can just open a connection and send a 
>command to play a file.
>
>But FreeRTOS will require a lot of thought.  I have to share things 
>like the 8 bit data bus, 4 bit addr bus, chip select and RD/WR 
>signals.  No one process can just own them.  And, I can't have 
>buffer underrun for the MP3 chip.  It would be even more interesting 
>if I stored the MP3 files on an nfs server but I already have a 
>Linux board doing that - see www.gumstix.com using the gumstix, 
>cfstix and audiostix.  It works but it is price prohibitive for 
>Halloween effects.  I need about 6 of these gadgets.
>
>If I have messed up on the libraries, please let me know!
>
>  
>

I built my newlib with some Makefile options that I edited in after the 
configure:


CFLAGS_FOR_TARGET = -O2 $(CFLAGS) -DREENTRANT_SYSCALLS_PROVIDED 
-DINTEGER_ONLY -DPREFER_SIZE_OVER_SPEED

The build was done from a script:

===============  03makeNewLib.sh ====================
*#!/bin/sh
if [ "$TARGET" == "" ] ;  then echo "You need to set the environment 
first!" ; exit ; fi
cd newlib_build
../newlib_sources/configure --target=$TARGET --prefix=$PREFIX
zcat ../downloads/newlib_makefile_patch.gz | patch -p0
make all install 2>&1 | tee make.log
cd ..
*==================== snip ========================

the patch file is:

==============  newlib_makefile_patch.gz =================
*--- Makefile.orig       2005-10-15 16:08:26.000000000 -0400
+++ Makefile    2005-10-15 16:08:38.000000000 -0400
@@ -388,7 +388,7 @@
 # CFLAGS will be just -g.  We want to ensure that TARGET libraries
 # (which we know are built with gcc) are built with optimizations so
 # prepend -O2 when setting CFLAGS_FOR_TARGET.
-CFLAGS_FOR_TARGET = -O2 $(CFLAGS)
+CFLAGS_FOR_TARGET = -O2 $(CFLAGS) -DREENTRANT_SYSCALLS_PROVIDED 
-DINTEGER_ONLY -DPREFER_SIZE_OVER_SPEED
 # If GCC_FOR_TARGET is not overriden on the command line, then this
 # variable is passed down to the gcc Makefile, where it is used to
 # build libgcc2.a.  We define it here so that it can itself be
*================ snip ===========================

This may work for you, or it may disable things that you need (like 
sscanf, sprintf, etc).

TomW

-- 
Tom Walsh - WN3L - Embedded Systems Consultant
http://openhardware.net, http://cyberiansoftware.com
"Windows? No thanks, I have work to do..."
----------------------------------------------------




[Non-text portions of this message have been removed]

Attachments

Move to quarantaine

This moves the raw source file on disk only. The archive index is not changed automatically, so you still need to run a manual refresh afterward.