Re: RedHat Toolchain for small chips

Lorenzo Marcantonio <[email protected]>
Newsgroups gmane.comp.hardware.texas-instruments.msp430.gcc.user
Message-ID <[email protected]>
On Tue, Jan 14, 2014 at 02:08:53PM +0100, Emil Renner Berthing wrote:
> Right, so the workaround is something like
> $  msp430-elf-gcc -mmcu=msp430g2231 -Os -static -nostdlib -Wall -Wextra
> simple.c -o simple.elf `msp430-elf-gcc gcc -print-libgcc-file-name`
> ..and then add my own assembly to clear .bss etc. and jump to main().
> 
> I guess I had just hoped there would be a standard way of doing this, so
> everyone doesn't have to implement that bit again.

An objdump of the newlib .o could tell where the bss is eaten up, then
selective surgery on newlib/libgloss can be done (do the MSP *really*
need stdio?). Other cruft (the C++ and java one) can be ifdeffed out in
crtstuff.c (in libgcc). And that printf is pure evil :D (not that
I often use printf on MCUs...)

Compiling the target app with LTO (verify that ISR are actually
emitted! attribute used helps) or better yet do a single compilation
unit with the world declared static (essentially what Byte Craft does
from forever) gain *huge* code space with -Os. Yes, I'm aggressively
spacing optimizing the code :D

Also unsigned int is obviously easier to process than an unsigned char,
most of the time: the MSP is almost pure 16 bit (except for load/store),
the stack is slotted on even addresses and registers needs to be anded
with FFh to ensure 8-bit semantic. At 4 bytes (IIRC) for each unsigned
char parameter used, the gain is significant.

-- 
Lorenzo Marcantonio
Logos Srl

------------------------------------------------------------------------------
CenturyLink Cloud: The Leader in Enterprise Cloud Services.
Learn Why More Businesses Are Choosing CenturyLink Cloud For
Critical Workloads, Development Environments & Everything In Between.
Get a Quote or Start a Free Trial Today. 
http://pubads.g.doubleclick.net/gampad/clk?id=119420431&iu=/4140/ostg.clktrk
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.