Space optimizing : C++, mega8, math.h

May 21, 2007 1 Replies

Hi again,



I'm having problems getting room for the code in my ATmega8. I found that working with 32 bit int's wasn't enough, but now I changed et all to 64 bit int's the code grew about 50% from about 80% of the mega8's space to about



120% :( I found that most of the space is lost in the following code where I use fabs and sqrt. If I remove thoes lines the code is fills about 99%...

Anybody knows how to optimize the code to use less space, of a feature in AVR studio (GCC) to optimize. Speed is NOT important, space is.



"C:\WinAVR\bin\..\lib\gcc\avr\3.4.6\..\..\..\..\avr\bin\ld.exe: region text is full (cnc.elf section .text)" :(



Thanks - Henning



void moveto(uint64_t nyx,uint64_t nyy,uint64_t nyz) { long int dx; long int dy; long int dz;



double Rho; double enX; double enY; double enZ;



double x; double y; double z;



dx = nyx - globalx; dy = nyy - globaly; dz = nyz - globalz;



Rho = sqrt((double)(dx * dx) + (double)(dy * dy) + (double)(dz * dz));



enX = (double)dx / Rho; enY = (double)dy / Rho; enZ = (double)dz / Rho;



x=0; y=0; z=0;



int R = 0;



for (R=0;R= 1) { if (x= 1) { if (y= 1) { if (z


Hi again,

I found that if I remove the line for (R=0;R Hi again,

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required