Hi, Ja ich denke auch, dass es Sinn macht im Kern zu optimieren. Aber letztlich ist es doch eine sehr heftige Designentscheidung auf den C++11 Standard zu wechseln, Zumindest die Delegates würde ich begrüssen ;). Allerdings habe ich keine Ahnung, was sich da alles geändert hat, und denke fasst, dass es zu früh ist. Aber das sollte an anderer Stelle besprochen werden.
Dein Patch ist mir syntaktisch zwar nicht ganz klar, aber wahrscheinlich ist es sinnvoller die Basisinformationen in einem Bitfeld zu vereinen. Nachvollziehen kann ich nicht, dass es weniger Code produziert. Und da wir mehrere Architekturen unterstützen wollen, glaube ich nicht, das ein uint8 Type auf allen Architekturen die bessere Wahl ist. Da ist eine Abstraktion notwendig, sofern wir den Weg mit der Einteilung einer stabilen Kernkomponente etc. gehen wollen. Aber bevor wir Abstrahieren, sollten wir Strukturieren also modellieren. Aber letztlich ist es doch eine Interessante Anforderung, eben Reflex auch für wirklich kleine Plattformen verwenden zu können. Ist das wirklich so ein verlorener Gedanke oder ist der Aufwand es klein und für mehrere Plattformen anbieten zu können abwegig? -- mit freundlichem Gruß, Sören Höckner On So, 2012-11-04 at 13:50 +0100, Richard Weickelt wrote: > Hallo, > > ich habe ein Heizungsthermostat [1] mit einer neuen Firmware versehen und > muss aufgrund des sehr knappen RAM und ROM an jeder Ecke Bytes quetschen. > > Seit gcc 4.5 gibt es die Möglichkeit, den zugrundeliegenden Datentyp von > enums anzugeben. Darum habe ich mal die FifoActivity und den FifoScheduler > ein wenig aufgeräumt und auf dem AVR dabei pro Aktivität 2 Byte RAM und ein > bisschen was an Code gespart. Das gleiche gilt für die Gruppen im > PowerManagement. > > Würde jemand mal #224 und den daranhängenden Patch im Hinblick auf die > Plattformen msp und OMNET begutachten? Das setzt natürlich voraus, dass wir > mit -std=c++11 kompilieren. > > Danke > Richard > > [1] > http://www.amazon.de/Honeywell-HR-20-Rondostat-Heizk%C3%B6rperregler-zeitgesteuert/dp/B000KNE738
