Wer neu bei Keil gelandet ist, fragt sich, was folgende Angaben eigentlich richtig bedeuten. Program Size: Code=11766 RO-data=6838 RW-data=104 ZI-data=1280 Gestern war ich mal bei einem Keil Workshop, wo ich von einem Keil Mitarbeiter nicht nur erfahren habe das es bald endlich intellisense (autovervollständigung) und paar weitere neue nette "Komfort"-Features in Keil geben wird sondern auch das: Code: Codesize RO: Konstanten (nicht ausführbahrer Code der trotzdem im Flash landet) RW: Variablen ZI: Zero initialized Data, Der Compiler kategorisiert RW und ZI Data und trennt es, ist aber ein relikt aus der Betriebssystem Programmierung. Je nach dem wie groß das Objekt ist wird es ZI oder RW aber es ist eigentlich der gleiche Speicher (RAM) ... RW und ZI ergeben den RAM. Der Stack liegt bspw. in diesem ZI Bereich. bedeutet. Ich war mir nie sicher was ZI bedeutet da es manchmal idiotische Größen anzeigt, das liegt aber laut dem Keil Mitarbeiter an einem Bug der bald behoben wird (wenn man bpsw. die GUI-Library in Keil benutzt, werden reservierte aber nicht im Programm genutzte Speicher mitreingerechnet), das Phenomen tritt auch bei der Verwendung von @Attributen auf. Viele Grüße Sven
Sven S. schrieb: > Der Compiler kategorisiert RW und ZI Data und > trennt es, ist aber ein relikt aus der Betriebssystem Programmierung. Nö, das hat schon seinen Grund. Um einen Bereich auf 0 zu setzen reicht eine Schleife (memset). Um die anderen globalen Variablen zu initialisieren, muß man die Werte aber aus dem Flash kopieren. Peter
Sven S. schrieb: > ... Keil Mitarbeiter an einem Bug der bald behoben wird ... Vielleicht doch lieber GCC installieren?
Sven S. schrieb: > Gestern war ich mal bei einem Keil Workshop Was für ein Keil Workshop war das? Gibt es weitere Termine? Danke.
Auf der Website von Keil unter Events hab ich das gefunden, war halt was in Frankfurt in der Nähe. Ein NXP Hands on mit Keil. Fands halt cool mal jemand von der legendären Keil Truppe zu sehen und auszutauschen. Selbstverständlich auch sich mal mit dem Dualcore 435x Cortex M4 zu beschäftigen. Fands interessant, das der M0 kein Systick-Timer hat aber der M4 und das der M0 nur über JTAG ansprechbar ist und nicht über SWD, da SWD kein chaining unterstützt wie JTAG.
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.