Hallo Profis, ich hab grad was mit dem IAR für ARM rumgespielt (Simulator, Testversion) und hab dabei ist mir aufgefallen, wenn ich was Compile habe ich als Ausgabe z.B. 38 bytes of CODE memory (+ 20 bytes shared) 16 bytes of DATA memory Das ist soweit klar, 38 Byte Prog, 16 Byte RAM ... wenn ich jetzt ein "make" mache, dann habe ich unter der ausgabe vom linker (xlink.exe) auf einmal 412 bytes of CODE memory 8448 bytes of DATA memory 12 bytes of CONST memory Wenn ich unter den Projektoptionen als Library "None" wähle, ist die Ausgabe auch weg. Was ist das für eine Library und warum braucht die direkt 8KB RAM ? Oder hat die Ausgabe damit nichts zu tun. Wenn ich die Library auf "None" mache funktioniert im übrigen der Simulator nicht mehr .. Ich wollte eigentlich eien LPC2103 nutzen für eine kleines Projekt. Aber der hat ja "nur" 8KB RAM. Hoffe ihr könnt mir helfen ...
Hallo Tester, hast Du oben (über workspace) mal nachgeschaut, wo Du das Programm startest? Flash oder RAM ?
Ja .. ?? Wo sehe ich wo ich das Programm starte bzw. wo legt man das fest ? Wie gesagt, derzeit nur im Simulator, hab noch nix sonst damit gemacht weil ich erstmal die IDE abchecken wollte.
Version ist 4.41 als JTAG Adapter wollte ich eigentlich einen Wiggler in Verbindung mit H-JTAG nutzen (oder funzt das nicht?). Der J-Link kostet ja richtig was (im Vergleich zum parallel Wiggler) ;) Ich arbeite allerdings noch nicht mit irgendeiner Hardware, sondern hab nur ein paar Zeilen Code geschrieben und wollte die im Simulator testen. Das funktioniert auch soweit. Nur gibt mir der Linker immer 8KB belegtes RAM aus.
Diese Version hab ich auch. Bei mir ist der J-LINK allerdings fest ausgewählt. Als Ziel MCU hab ich die TMS470 ARM7TDMI Serie von Texas Instruments. Mein Adapter gibt mir oben die Auswahl FLASH / RAM Scheint so, als würde Dein Compiler,Linker das Programm im RAM ausführen lassen. Ist aber von hier aus schwer zu beeinflussen. Könntest mal nen Schreenshot von der Hauptseite als Bild anhängen
Anbei der Screenshot vom IAR. Also wählen kann ich nix zwischen Flash / Ram. Was ist das denn überhaupt für eine Library?
Schau mal links oben unter Workspace, da steht DEBUG. Kannst DU dort noch was anderes auswählen (im DropDown Menü) ? Das Programm wir für den DEBUG Modus rübergesendet. Hat nix mit ner Library zu tun.
Ja da kann ich Release wählen. Ändert allerdings nichts an der Ausgabe vom Linker. Aber scheinbar hat es doch mit irgendeiner Library zu tun, denn wenn ich auf project->options und "General Options" auf Library Configurationen gehe, dann steht da "Library:Normal", ändere ich das von "Normal" auf "None" ist die Ausgabe vom Linker ok, aber der Simulator macht nix mehr .. Das ist der Quelltext den ich teste. Kannst du denn denn mal bei dir einfach in ein neues Projekt reinmachen und compilen / linken. Evtl. liegt es ja am Simulator oder irgendeiner Einstellung.
1 | //#include "iolpc2103.h"
|
2 | //#include "stdio.h"
|
3 | |
4 | long test1 = 0; |
5 | long test12 = 0; |
6 | long test13 = 0; |
7 | long test14 = 0; |
8 | |
9 | |
10 | |
11 | int main() |
12 | {
|
13 | char a = 10; |
14 | char b = 11; |
15 | |
16 | |
17 | while(1) |
18 | {
|
19 | // printf("Hallo");
|
20 | /* test1++;
|
21 | test12++;
|
22 | test13++;
|
23 | test14++;*/
|
24 | a++; |
25 | a-=2; |
26 | if(a == 12) |
27 | {
|
28 | b++; |
29 | if(b == 100) |
30 | { b = 0; } |
31 | }
|
32 | }
|
33 | }
|
So kann man das nicht ganz sehen. 8448 sind die 8KB RAM + 256Bytes Bei mir läuft grad ne reine Assemblergeschichte, deswegen hab ich da ganz andere Einstellung. Pack doch kurz alle Files aus dem Workspace in ne ZIP oder RAR Datei und häng sie an. Dann ha ich die gleichen Einstellungen wie DU. Übrigens, Stell mal als Typ 2101 ein, der hat 2KB Dann müsste der Linker 2304 ausspucken
Das hab ich schon probiert. Bleiben die 8K stehen.. Anbei das Workspace. Vielen Dank schonmal!
Da fehlt was. Im Kompletten Workspace muß Datei mit Endung .eww sein Hast Du die Kickstart Version?? Weil ich mit der Vollversion arbeite. Weiß nicht ob es da Unterschiede gibt. Kickstart hat ja eine Codelimitierung. Schau noch mal nach, oder speichere den Workspace zusätzlich in nem anderen Ordner.
Da spuckt meiner Fehler aus. Fatal Error Copy Protection Check Bin mir nicht sicher, ob sich die 2 Versionen vertragen, ich probier mal was anders, wenn du heut keine Antwort mehr bekommst, schau morgen noch mal rein. ich muß 9 Uhr weg Gruß Dirk
Nur so als kleiner Tipp... Schau dir mal die Beispiele für den LPC2103 an. Die findest in deinem IAR Installationsordner. Dort sollte alles korrekt für das Ausführen im RAM oder FLASH definiert sein. Es gibt *.mac Datein, die du einbinden musst, die für die richtige Konfiguration sorgen. Ich habe mich anfangs auch mit dem IAR gequält, hab dann aber ein Beispielprogramm hergenommen und den Code durch meinen ersetzt. Und wie ein Wunder, es hat tadellos funktioniert, sowohl im FLASH als auch im RAM.
Hey super, jetzt hab ich oben auch die wahl zwischen RAM und FLASH (auch wenn das im Simulator eigentlich egal ist) und bei der Sample Application auch nur einen geringen RAM Verbrauch .. Vielen Dank! ich hatte mir gestern noch die Demo vom Keil angeschaut. Was ich da recht cool finde ist der Performance Analyser, der einem grafisch zeigt welche Funktion wie lange und wie oft aufgerufen worde. Gibt es sowas auch bei IAR ?
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.