www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik IAR für ARM immer 8KB RAM


Autor: IAR-Tester (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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 ...

Autor: Dirk Hofmann (arm-dran)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Tester,

hast Du oben (über workspace) mal nachgeschaut, wo Du das Programm 
startest?
Flash oder RAM ?

Autor: Dirk Hofmann (arm-dran)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vorallem, hast Du den MCU Typ eingestellt ?

Autor: IAR-Tester (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: IAR-Tester (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Als Typ hab ich unter Project->Options->General Options->Target den 
LPC2103 gewählt

Autor: Dirk Hofmann (arm-dran)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Welche IAR EWARM Version hast Du?
Typ vom JTAG-Adapter ??? J-LINK ???

Autor: IAR-Tester (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Dirk Hofmann (arm-dran)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: IAR-Tester (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Anbei der Screenshot vom IAR.

Also wählen kann ich nix zwischen Flash / Ram. Was ist das denn 
überhaupt für eine Library?

Autor: Dirk Hofmann (arm-dran)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: IAR-Tester (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

//#include "iolpc2103.h"
//#include "stdio.h"

long test1 = 0;
long test12 = 0;
long test13 = 0;
long test14 = 0;



int main()
{
    char a = 10;
    char b = 11;

    
    while(1)
    {
      // printf("Hallo");
/*      test1++;
       test12++;
       test13++;
       test14++;*/
      a++;
      a-=2;
      if(a == 12)
      {
         b++; 
         if(b == 100)
         { b = 0; }
      }
    }
}

Autor: Dirk Hofmann (arm-dran)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: IAR-Tester (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Das hab ich schon probiert. Bleiben die 8K stehen..

Anbei das Workspace. Vielen Dank schonmal!

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie groß ist denn der für Stack und Heap reservierte Bereich?

Autor: Dirk Hofmann (arm-dran)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: IAR-Tester (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wo kann ich das nachschauen ? (ARM Neeby, vorher 8051 mit Keil)

Autor: IAR-Tester (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Jetzt müsste es komplett sein....

Autor: Dirk Hofmann (arm-dran)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: IAR-Tester (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ok, trotzdem vielen Dank für die Mühen

Autor: Rooney Bob (rooney)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: IAR-Tester (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.