iffe skrev:Innan jul gick jag en kurs där vi uteslutande programmerade och laborerade med Atmel-µc (mega8535). Programmeringen skötte vi i C, tycker det var mycket smidigt och lättanvänt med lite programmeringsvana sen innan.
Ja, det finns rätt bra med c-kompilatorer att välja på och det behöver inte bli så dyrt heller eftersom många tillverkare (t ex IAR) har gratisversioner av sina utvecklingsmiljöer som är begränsade i hur stora program som kan kompileras. Sen finns ju alltid gnu-gcc.
iffe skrev:Tycker inte om assembler, högnivåprogrammering funkar nog bra så länge det inte rör sig om extrem optimering. Fascinerande också hur mycket man kan trycka in på ett litet chip!
Ja, framförallt måste man (om man programmerar mikropellar för att förtjäna sitt leverbröd) väga in sådant som utvecklingstid och läsbarhet mot exekveringshastighet. Kanske slår in öppna dörrar här, men jag börjar i princip alltid med C eftersom det är lätt att läsa och är hyffsat abstraherat från hårdvaran. Min erfarehnet är att det oftast bara är en liten del av koden som exekverar väldigt mycket och som definierar prestandan i systemet. Om det visar sig att vissa delar inte håller måttet så börjar man optimera där. Ofta kommer man otroligt långt genom att skriva om c-koden så den kompilatorn får lättare att optimera den (här krävs det erfarenhet och kunskap om hur en optimerande kompilator arbetar). Som sista utväg skriver jag assembler-rutiner, eftersom de blir så hårt kopplade mot hårdvaran och ofta är svårare att förstå än motsvarande c-kod.
Henrik