Vaikka olen kirjoittanut C / C ++ -koodia pitkään, näkymättömät rajoitukset sille, kuinka muistia kulutettiin erilaisille MCU- ja SOC-ohjelmointialustoille, ovat usein minua kaataneet. Kun aion rakentaa koodia ensimmäiselle suurelle projektilleni NANO-levyjäni varten, joka todennäköisesti käyttää kohtuullisen määrän resurssejaan, haluaisin olla paremmin valmistautunut yllättäviin ja odottamattomiin "gotchoihin", joihin kannattaa varoa. .
Esimerkiksi toisella SOC: lla, jonka parissa työskentelin äskettäin laajasti (The Pololu.com wixel), olin hyvin yllättynyt kuullessani funktion / menetelmän argumentit ja automaattiset muuttujat, joiden odotan tavallisesti jakavan pinon ja palautui, kun funktion palautukset oli tosiasiallisesti varattu ohjelman koko elinkaarelle! Vau! Joten tällä alustalla, jossa yleensä vihaisin muuttujien ylikuormittamista tai muuttujien uudelleenkäyttöä sen jälkeen, kun niiden nimillä ei enää ole merkitystä, jouduin mukauttamaan koodaukseni siihen, mitä luulisin yleensä olevan huono. Puhumattakaan siitä, että ymmärretään, että yksinkertaiset silmukka-muuttujat allokoitiin paremmin globaalisti. Yecch!
Voivatko ne teistä, joille on sattunut odottamattomia koodausongelmia Arduino-ympäristössä, jakaa "erityisiä" ohjeita tällaisista asioista?