IAR für ARM immer 8KB RAM

Gast #518360
Lesenswert?

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 ...
Gast #518365
Lesenswert?

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.
Gast #518372
Lesenswert?

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.
#518377
Lesenswert?

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
Gast #518387
Lesenswert?

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
}
#518401
Lesenswert?

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
#518409
Lesenswert?

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.
#518547
Lesenswert?

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.
Gast #518591
Lesenswert?

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 ?

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren