Hallo, ich beschäftige mich gerade mit der Minimierung der Stromaufnahme eines STM32L0 Prozessors. Die Sromaufnahme zwischen Codeausführung von RAM und Flash unterscheidet sich doch noch einmal merklich. Frage 1: Wie bringt man den Porozessor zur Code-Ausführung per RAM. Wird der Prgrammspeicher beim Start zuerst in den RAM kopiert und dann von dort ausgeführt? Code für RAM und Flash sind ja nicht kompatibel und müssen für jeden Speicherbereich individuell kopiert werden. Frage2: Im Datenblatt ist eine Option Flash OFF angegeben. Geht dies automatisch mit der Ausführung vom RAM einher oder kann man auch den Flash, zB für eine Sleep-Phase aussschalten? Danke :)
> Wird der Prgrammspeicher beim Start zuerst in den RAM kopiert Richtig. > Geht dies automatisch mit der Ausführung vom RAM einher Automatisch geht gar nichts. Solange du solche Fragen nicht selber beantworten kannst, nimm einen kleinen 8 Bitter.
Jens schrieb: > > Frage 1: Wie bringt man den Prozessor zur Code-Ausführung per RAM. Wird > der Prgrammspeicher beim Start zuerst in den RAM kopiert und dann von > dort ausgeführt? Normalerweise nicht (bei kleinen Mikrocontrollern mit internem Flash). > Frage2: Im Datenblatt ist eine Option Flash OFF angegeben. Geht dies > automatisch mit der Ausführung vom RAM einher oder kann man auch den > Flash, zB für eine Sleep-Phase aussschalten? Bevor du den Flash-Speicher abschaltest, musst du dafür sorgen, dass er nicht gebraucht wird. D.h. der ausgeführte Code und ggf. die Vektortabelle müssen vorher ins RAM verlegt werden. Automatisch geht das nicht.
Gretel schrieb: > Solange du solche Fragen nicht selber beantworten kannst, > nimm einen kleinen 8 Bitter. Am besten einen AVR. Der kann überhaupt keinen Code aus dem RAM ausführen. Problem gelöst. Spaß beiseite. Bulimie-code schrieb: > - Startcode anpassen > - Linkerfile anpassen Das sind die richtigen Hinweise.
> Am besten einen AVR. Der kann überhaupt keinen Code aus dem RAM > ausführen. Problem gelöst. Oder einen GD32, der führt es immer aus dem RAM aus[1] ;-) [1] https://zeptobars.com/en/read/GD32F103CBT6-mcm-serial-flash-Giga-Devices
Jens schrieb: > ich beschäftige mich gerade mit der Minimierung der Stromaufnahme eines > STM32L0 Prozessors. Die Sromaufnahme zwischen Codeausführung von RAM und > Flash unterscheidet sich doch noch einmal merklich. Falsche Baustelle. Diese Sorte Prozessoren schickt man mit __WFI() in den Schlafmodus. Es is ziemlich egal wo die Codeausführung statt findet wenn der Prozessor >90% der Zeit schläft.
Jim M. schrieb: > Falsche Baustelle. > > Diese Sorte Prozessoren schickt man mit __WFI() in den Schlafmodus. Es > is ziemlich egal wo die Codeausführung statt findet wenn der Prozessor >>90% der Zeit schläft. Das musst du ja wissen. Es gibt durchaus Anwendungen, in denen der Prozessor nicht die ganze Zeit schlafen darf. Z.B. weil die Interruptlatenz eine Rolle spielt. Der normale Sleep bringt übrigens fast gar nichts. Da kann man auch die Taktfrequenz reduzieren.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.