Hur stor plats tar kompilerad kod?

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
ekj
Inlägg: 22
Blev medlem: 26 juli 2007, 19:20:57
Ort: Göteborg

Hur stor plats tar kompilerad kod?

Inlägg 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?
Användarvisningsbild
Micke_s
EF Sponsor
Inlägg: 6741
Blev medlem: 15 december 2005, 21:31:34
Ort: Malmö

Inlägg 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??
ekj
Inlägg: 22
Blev medlem: 26 juli 2007, 19:20:57
Ort: Göteborg

Inlägg 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?
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg 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 ?
Användarvisningsbild
Micke_s
EF Sponsor
Inlägg: 6741
Blev medlem: 15 december 2005, 21:31:34
Ort: Malmö

Inlägg 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.
ekj
Inlägg: 22
Blev medlem: 26 juli 2007, 19:20:57
Ort: Göteborg

Inlägg 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.
Användarvisningsbild
Micke_s
EF Sponsor
Inlägg: 6741
Blev medlem: 15 december 2005, 21:31:34
Ort: Malmö

Inlägg av Micke_s »

FAT16 är i för sig inte så svår.
http://elm-chan.org/fsw/ff/00index_e.html
Användarvisningsbild
Micke_s
EF Sponsor
Inlägg: 6741
Blev medlem: 15 december 2005, 21:31:34
Ort: Malmö

Inlägg av Micke_s »

Atmega32 är i för sig bättre, mer ram i denna.
Användarvisningsbild
$tiff
Inlägg: 4941
Blev medlem: 31 maj 2003, 19:47:52
Ort: Göteborg
Kontakt:

Inlägg 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).
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg 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... :-)
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 47013
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

Inlägg 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.
Användarvisningsbild
$tiff
Inlägg: 4941
Blev medlem: 31 maj 2003, 19:47:52
Ort: Göteborg
Kontakt:

Inlägg 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 :)
ekj
Inlägg: 22
Blev medlem: 26 juli 2007, 19:20:57
Ort: Göteborg

Inlägg av ekj »

jaha, vad kostar en sån där FatOnChip, och vart får man tag på dom? Finns dom på Elfa?
Användarvisningsbild
Micke_s
EF Sponsor
Inlägg: 6741
Blev medlem: 15 december 2005, 21:31:34
Ort: Malmö

Inlägg 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.
Användarvisningsbild
Andax
Inlägg: 4379
Blev medlem: 4 juli 2005, 23:27:38
Ort: Jönköping

Inlägg av Andax »

Är det något i stil med denna kretsen:

USBWiz
Skriv svar