Guten Morgen allerseits, Ich bin gerade dabei eine Plattform unabhängige Entwicklungsumgebung "KLab" für die Entwicklung von Atmega Projekten zu erstellen. Ich bin sozusagen auch schon im Beta Test Stadium (siehe hier : http://corpsman.de/KLab.png ), sprich Compilieren, Programmieren, Fuse Bits Lesen Schreiben, Debuggen via Terminal, alles kein Problem. Zur Zeit steht neben Bugs suchen das "Komfort" einbauen auf dem Plan, und hier kommt auch meine Frage. Der Einfachste Test einer IDE ist sie selbst zu benutzen, also habe ich mich daran gemacht und mir eine "Funkuhr" geschrieben, nun ist es so, wenn ich meine Font Library einbinde, nutzt diese anscheinend zu viel Speicher, denn auf dem Atmega644 läuft das Programm und unter dem Atmega32 spielt alles verrückt. Also dachte ich mir, soll die IDE Prüfen ob die Hex Files die Programmiert werden auch nicht zu groß sind. Einige Suche hier im Forum und via google später und ich kann aus den Hex Files die Anzahl der zu schreibenden Bytes auslesen ( die Stimmt auch, denn AVR-Dude zeigt die selbe Zahl an ), meiner Information nach hat der Atmega32 32768 Byte Flash, Compiliere ich meine Font lib mit nur einer Font kommt Hexfile Size : 22856 CPU Flash Size : 32768 thats 70% of Flashspace mit 3 Fonts kommt : Hexfile Size : 28294 CPU Flash Size : 32768 thats 86% of Flashspace Beides müste also funktionieren, leider ist dem aber nicht so. Das Reine Auslesen der "zu schreibenden" Bytes scheint demnach nicht zu Funktionieren, hat wer von euch noch eine Idee wie ich an "mehr" und aussage kräftigere Informationen komme ? Das Ziel wäre natürlich ein Programmieren zu verhindern, sollte der Speicherbedarf zu Groß werden..
Dein Problem dürfte eher der Ram-Bedarf Deiner "Funkuhr" sein. Der ATMega32 hat nur 2kb, der ATMega644 4kb.
Ok, Das kann schon sein, schließlich sind die Fonts nicht gerade klein, ich bin auch schon dabei raus zu kriegen, wie ich sie ins EEprom Schiebe ( dass soll wohl irgendwie gehn .. ) Hat jemand ne Idee wie ich die "Ram" bzw. die Aufteilung des Bedarfs der einzelnen Speicherbereiche aus den Hex Files auslesen kann ? Die Größe des Flash EEProm : 32768, Internal Ram 2048, und EEprom 1024 weis ich g. Gruß Corpsman
U. Schächterle schrieb: > Hat jemand ne Idee wie ich die "Ram" bzw. die Aufteilung des Bedarfs der > einzelnen Speicherbereiche aus den Hex Files auslesen kann ? Aus den HEX-Files gar nicht (bzw. nur extrem mühselig durch Code-Analyse). Aber aus der ELF-Datei ganz einfach, z.B. mittels avr-size.
Cool, also deine.elf Datei heist bei mir .out und ergibt mit AVR-Size : text data bss dec hex filename 12260 3292 4 15556 3cc4 project.out Wenn ich Beitrag "avr-size: Wie groß ist das Programm denn nun wirklich?" glauben kann, dann muss ich also nun text + data mit 32768 und data + bss mit 2048 prüfen, Richtig ?? Gehe ich richtig davon aus, dass die Angaben alle in Hex sind ?
U. Schächterle schrieb: > muss ich also nun > > text + data mit 32768 > > und > > data + bss mit 2048 > > prüfen, Richtig ?? Ja, wobei data+bss<2048 keine Garantie dafür ist, dass das RAM ausreicht. Denn hierbei ist nicht der dynamische RAM-Verbrauch (z.B. Stack) mit berücksichtigt. U. Schächterle schrieb: > Gehe ich richtig davon aus, dass die Angaben alle in Hex sind ? Nein. "dec" ist die Summe in Dezimal und "hex" ist die Summe in Hexadezimal. PS: Probiere doch mal folgendes ;-) avr-size -C --mcu=atmega32 DATEI.out
lol, Das ist schon mal eine MEGA Hilfe, vielen Dank. corpsman@corpsman2:/sda5/sda5/Tools/Projects/Atmega_Projekte/tg12864b_03 r$ avr-size -C --mcu=atmega32 project.out AVR Memory Usage ---------------- Device: atmega32 Program: 15552 bytes (47.5% Full) (.text + .data + .bootloader) Data: 3296 bytes (160.9% Full) (.data + .bss + .noinit) corpsman@corpsman2:/sda5/sda5/Tools/Projects/Atmega_Projekte/tg12864b_03 r$ avr-size -C --mcu=atmega644 project.out AVR Memory Usage ---------------- Device: atmega644 Program: 15552 bytes (23.7% Full) (.text + .data + .bootloader) Data: 3296 bytes (80.5% Full) (.data + .bss + .noinit) corpsman@corpsman2:/sda5/sda5/Tools/Projects/Atmega_Projekte/tg12864b_03 r$
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.