Sida 1 av 2

Hur stor plats tar kompilerad kod?

Postat: 31 juli 2007, 20:30:07
av ekj
Jag är en nybörjare (har aldrig programmerat nån elektronik förut) som sitter och planerar vilka komponenter jag behöver i mitt projekt. Atmega16 verkar trevlig, men 16 kB utrymme för den kompilerade koden låter inte så enormt. Hur mycket tror ni jag kan tänkas behöva?

Det jag tänkt att den ska göra är att kolla en accelerometer, skriva till ett SD-minne, skriva lite på en LCD, samt styra några lysdioder och knappar.

Koden tänkte jag skriva i C.

Jag har absolut ingen koll på hur stor den färdigkompilerade koden kan tänkas bli. Nån som har en gissning? Är 16 kB typ lagom, alldeles för mycket eller alldeles för lite?

Postat: 31 juli 2007, 20:32:33
av Micke_s
Tror FAT16 SD kort tar max ca 6k. Tyvärr så har du för lite ram för hantera filsystemet vettigt. Fixar du bara raw så blir det väldigt lite. Ska loggen vara läsbar i en dator??

Postat: 31 juli 2007, 20:45:42
av ekj
ja, tanken var att sedan lägga över filerna från SD-minnet till datorn

EDIT:
Fixar du bara raw så blir det väldigt lite.
Nu hänger jag inte med här, vadå raw? spara till sd-kortet utan filsystem?

Postat: 31 juli 2007, 20:48:47
av sodjan
Det är antgligen just hanteringen av SD-minnen som blir problemet.
Det andra tar inte många kB tillsammans.
Hur mycket data är det som ska sparas på SD-minnet ?

Postat: 31 juli 2007, 20:53:40
av Micke_s
Ekj: Ja du skulle kunna ha ett eget filsystem och sedan koppla hela AVR:en till datorn genom t.ex. uart/usb.

Postat: 31 juli 2007, 21:11:47
av ekj
Det är antgligen just hanteringen av SD-minnen som blir problemet.
Det andra tar inte många kB tillsammans.
Hur mycket data är det som ska sparas på SD-minnet ?
Det jag tänkte göra är att logga accelerometern, så runt 40 byte per avläsning, kanske 10 avläsningar per sekund, varje mätning kanske pågår i ca 1-5 minuter. Dvs varje mätfil blir ca 24-120kB. Sen kan jag tänka mig att tömma minnet när jag gjort uppåt 10 mätningar eller så.

Minnet har jag sedan tidigare och är på 32 MB, men det kanske inte spelar nån roll, jag har ju ändå inte tänkt fylla det.
Ekj: Ja du skulle kunna ha ett eget filsystem och sedan koppla hela AVR:en till datorn genom t.ex. uart/usb.
Ang. filsystem så kan jag tänka mig att ha något annat än FAT. Jag kör Linux på datorn, så det kanske finns nåt filsystem som är lättare att hantera än FAT? Jag menar, Linux har ju stöd för betydligt fler filsystem än vad Windows har.

Postat: 31 juli 2007, 22:09:26
av Micke_s
FAT16 är i för sig inte så svår.
http://elm-chan.org/fsw/ff/00index_e.html

Postat: 31 juli 2007, 22:10:51
av Micke_s
Atmega32 är i för sig bättre, mer ram i denna.

Postat: 31 juli 2007, 22:59:22
av $tiff
>> ekj

Om man bortser från filsystem, så är det väldigt svårt att fylla 16 kB med programkod på hobbyistnivå. Det största projektet jag skrivit hittils helt från grunden slukade strax över 8 k av programminnet (~11 k med alla textsträngar).

Postat: 31 juli 2007, 23:38:44
av sodjan
Tja, om man plockar in "lånad" kod (för t.ex SD-kort hanteringen) som
man inte behöver skriva själv, så kan det snabbt bli hur stort som helst... :-)

Postat: 31 juli 2007, 23:51:14
av TomasL
Min tcp/ip stack tillsammans med webservern, ftp servern och drivrutiner för LCD och ethernet kretsen (rtl8019) och lite annat tar strax under 16k.

Däremot har jag skippat iden att implementera fat, utan kör en FatOnChip lösning istället.
Med den kan jag ansluta valfritt media, typ SD, CF och IDE-diskar.
Pratar via I2C med FOCen, som hanterar FAT32, mycket enklare.

Postat: 31 juli 2007, 23:57:38
av $tiff
Ja, att emulera funktioner med färdiga bibliotek tar en sjukjäkla massa programminne. Exempelvis TCP/IP, filsystem, RAM-kontroller, USB, etc. Helst vill man ha dessa tyngre gränssnitt i hårdvarumoduler eller som IP-modul i en FPGA :)

Postat: 1 augusti 2007, 08:16:29
av ekj
jaha, vad kostar en sån där FatOnChip, och vart får man tag på dom? Finns dom på Elfa?

Postat: 1 augusti 2007, 09:33:05
av Micke_s
http://www.crownhill.co.uk/product.php?prod=1578 Har t.ex. ett chip
uALFAT™ klarar FAT16 och FAT32. Kan skriva/läsa till SD, MMC och vanliga usb-minnen.

Postat: 1 augusti 2007, 09:52:32
av Andax
Är det något i stil med denna kretsen:

USBWiz