The maximum limit on the downloaded program on arduino uno

I am from Indonesia. sorry my English is bad.
arduino uno has 32 KB of flash memory, 8 kB for Downloder. what does it mean we can only download a maximum of 24 KB program?
because I download the program to the Arduino Uno at 24,550 bytes. my program can not run normally. but if i delete some parts of the program and 23 023 programs can be run properly.
please help me.

The Uno bootloader should only be taking up 512 bytes of flash, if it is running the Optiboot bootloader. Most likely you are running out of RAM memory not flash. It would help more if you post your code to verify.

Agreed. There should be about 30K free. If it uploads it fits.

The problem is probably RAM (any large static arrays?)

smeezekitty:
Agreed. There should be about 30K free. If it uploads it fits.

The problem is probably RAM (any large static arrays?)

Well, that is easy enough to check...
2 approaches:
Static:
Find the ELF file in the %temp%\project directory and use the Windows commands:
C:<path>AVR-SIZE -C
Dynamic:
http://playground.arduino.cc/code/AvailableMemory

Ray

Somewhere in the forums I have a batch file that does all of this automatically on Windows. You must adjust the PATH if your copy of Arduino is different... Looks like:

PATH=%path%;C:\Program Files\Arduino_105\hardware\tools\avr\utils\bin;
CD %TEMP%
MD %PUBLIC%\ELFtemp
for /R %TEMP% %%f in (*.elf) do XCOPY /D /Y %%f %PUBLIC%\ELFtemp\
DIR %PUBLIC%\ELFtemp\*.elf /s /b /O:-D /T:W >ElfRhere
SET /P ELF= <ElfRhere
ECHO %ELF% >MemUsage.txt
AVR-SIZE -C %ELF% >>MemUsage.txt
NOTEPAD MemUsage.txt
SET ELF=""