Go Down

Topic: Programme komprimieren? (Read 3244 times) previous topic - next topic

-Micky

Ich komme langsam an die Grenze vom UNO. Kann man die Programme komprimieren oder den Speicher vom UNO erweitern?


Micky

Eisebaer

hi,

programme kann man komprimieren, indem man sie besser schreibt.

aber Du sagst nicht, an welche grenzen Du stößt. flash (also "programmzeilen") oder RAM (also "variablenanzahl").

alternative ist natürlich immer der mega oder ein nackter chip wie der 1284er mit minimalbeschaltung (1 quarz und zwei kondensatoren, auf einem steckbrett und dann platine).

speicher erweitern bei einem UNO geht nicht, nur bei einem mega kannst Du das RAM erweitern.

gruß stefan

-Micky

Haste recht, hab nix genaues gesagt. Ich meine die Programmzeilen, also den Flash.


Micky

guntherb

Mir fiel auf, dass manche Libraries recht viel Flash verbrauchen.
So schluckt z.B. die SD-Lib alleine durchs einbinden schon 5k vom Flash, bei den anderen ist das abhängig von dem verwendeten Funktionen.
Grüße
Gunther

mgcss

Die Lösung hat Eisbär doch schon genannt: effizienter programmieren!

Spezifischer wird man erst dann antworten können, wenn man den Programmcode kennt.

michael_x

Es gibt extra kleine SD Libraries ( die z.B. nur fat16 unterstützen )
Aber SD kostet immer erstmal relativ viel RAM, da ein SD-Block schon 512Byte (25% des ganzen RAM eines Uno) kostet.
Der Flash-Speicher sind nur 5 von 30 kB ( also 17% )


udoklein

#6
Nov 07, 2013, 08:24 pm Last Edit: Nov 07, 2013, 08:26 pm by Udo Klein Reason: 1
Klar kann man. Man könnte ja auch auf die Idee kommen statt in C in Forth http://www.mikrocontroller.net/articles/Forth zu programmieren. Das spart wirklich Platz. Nur kennen das nicht sehr viele. Wenn man sich überlegt wozu Forth entwickelt wurde wird aber schnell klar warum das auf Mikrocontrollern eine gute Wahl ist. Ist nur leider nicht Mainstream.

Was die Performance angeht: gut geschriebene Forth Programme hängen öfter als man glauben würde auch mal ein C Programm ab. Mir hat einmal ein Forth Programm ein handoptimiertes Assemblerprogramm abgehängt.
Check out my experiments http://blog.blinkenlight.net

-Micky

So einen Mini Rechner gibt es sogar in neu. Habe ich hier. Nur ist Forth absolut nicht so mein Ding. Na ja, nun bevorzuge ich den UNO.


Micky

udoklein

Du kannst auf dem Uno auch Forth laufen lassen :)
Check out my experiments http://blog.blinkenlight.net

Hiswif

Heho,

kurze Frage weil es Erwähnt wurde:
Quote
nur bei einem mega kannst Du das RAM erweitern.

Wie kann man das machen?

MFG

His

Eisebaer

da gab es vor kurzen was vom schachmann. mal raussuchen.................gefunden.

http://forum.arduino.cc/index.php?topic=188251.0

@schachmann, falls Du das liest. hab' jetzt ein paar speichersteine zuhause und war auch schon im metalab, weil die dort einen laser haben, der 0,1mm-linien ziehen könnte. aber die optik ist nicht mehr so gut, kann nur 0,15. ok, sollte auch reichen, aber dann hab' ich vor kurzem gelesen, daß man beim chinesen 10 platinen mit 5cmx5cm beidseitig um 12 euro kriegt. da verliert man richtig die lust am basteln, hab' so hart gearbeitet, um es einseitig und ohne brücken hinzubekommen...

außerdem sollte es kaum über den mega hinausragen und NEBEN andere shields passen.

gruß stefan

uwefed

Die Vorgehenweise der Reihe nach wäre meines Erachtens:
1) Sketch optimieren
2) Arduino MEGA nehmen
3) falls RAM zu wenig ist  RAMbaustein dazugeben: http://ruggedcircuits.com/html/megaram.html
4) im Extremfall auf Due umsteigen, dann ist aber der ganze Sketch zu überarbeiten.
Grüße Uwe

Go Up