mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Probleme mit M16c Monitor und großem Programm!


Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

Ich habe folgendes Problem mit M16c62 (M30626FHPFP)
Der Monitor läuft bei kleinen Programmen problemlos!
Aber wenn ich ein großes Programm rauflade bleibt der Monitor leer!
Was kann das sein?

Danke

Autor: Jens Mundhenke (jensbert)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Alex,

vielleicht liegt es daran, dass sich Monitor und Anwendungsprogramm im
Speicher (wahrscheinlich im RAM) überlappen. Der M16C-Monitor belegt
gar nicht so wenig RAM, da er für die serielle Schnittstelle einen
recht üppigen Buffer bereichthält.

Die genauen Adressen sind vom Proz und von der Monitor-Version
abhängig, aber mit ca. 700Byte, die Dir verlorengehen, solltest Du
schon rechnen. Wenn der verwendete Monitor genau zum Proz passt, belegt
er die höchsten 3 256-Byte-Pages des RAMs.

Du schreibst, Du nutzt den 626er, hast also wohl bis zu 31kByte RAM,
wenn ich mich recht erinnere, jedenfalls im erweiterten Modus (PM13
gesetzt). Weiss das auch Dein Monitor - oder ist es der für den
Standard-Mode mit 15k?

Für NC30-User:
Das Problem ist, dass der Linker, der Deine Anwendung zusammenbaut, ja
von diesen Bereichen, die der Monitor benutzt, nichts weiss - den den
scheinbar vorhandenen und freien Speicher munter der Anwendung gibt.
Das Problem hat mich auch eine Weile verfolgt. Ich habe mir da so
geholfen, dass ich im sect30.inc der Applikation einen Block definiert
habe, der das Monitor-RAM belegt:

;---------------------------------------------------------------
; RAM-section of Monitor, to detect overlapping
;---------------------------------------------------------------
  .section  MONITORRAM,DATA
  .org  03d00h
  .blkb  00300h

Jetzt jammert der Linker, wenn die Applikation zuviel RAM benötigt und
in den Monitor-Bereich hineinwandert. Etwas ähnliches habe ich für den
ROM-Bereich des Monitors eingefügt. Außerdem verwende ich das Programm
Map Viewer, um bei 'seltsamen Erscheinungen' - denn so äußern sich
RAM-Überlappungen gern - einen Überblick über die Speicheraufteilung zu
gewinnen.

Gruß

Jens

Autor: frank (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Jens,

wo finde ich das Programm Map Viewerr ?

Gruß Frank

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Probiere es gleich mal!

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hat leider nicht gebracht! :-( :-(

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
"Du schreibst, Du nutzt den 626er, hast also wohl bis zu 31kByte RAM,
wenn ich mich recht erinnere, jedenfalls im erweiterten Modus (PM13
gesetzt). Weiss das auch Dein Monitor - oder ist es der für den
Standard-Mode mit 15k?"

Wie kann ich das dem Monitor sagen??
Danke

Autor: Jens Mundhenke (jensbert)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Frank,

der MapViewer wurde mit dem NC30 installiert - glaube ich. Ich habe die
Dateien, die vom Namen dazu passen, mal in ein ZIP-File getan und
angehängt. Hoffe, es klappt so. Die Hilfe funktioniert bei mir nicht,
ist aber auch nicht notwendig, mit ein wenig Spielen findet man heraus,
wie es geht. Tipp: Rechte Maustaste...

Hallo Alex,

der Monitor muss entsprechend assembliert sein, 'sagen' kann man es
ihm nicht. In diesem Thread
http://www.mikrocontroller.net/forum/read-1-172458... liegt
der Monitor als Source vor. Da gibt es einen Parameter, der die
Speichergroesse festlegt. Wenn Du gar nicht zurechtkommst, versuche ich
Dir einen zu bauen. Aber dazu muss ich natürlich die diversen Parameter
kennen, mit denen Du Dein System betreibst.

Gruß

Jens

Autor: Alex (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Memory MapView

Autor: Jens Mundhenke (jensbert)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Alex,

sieht (leider) gut aus, jedenfalls, wenn Du PM13 gesetzt hast und über
den erweiterten Speicher verfügen kannst. Aber das kannst Du ja im KD30
ausprobieren.

Und egal, ob Dein Monitor für 15k oder für 31k parametriert ist, beide
Bereiche sind freigehalten.

Das einzige, das auffällt, ist der relativ kleine Stack - 768 Byte sind
nicht die Welt. Den könntest Du sicherlich noch etwas vergrößern - Platz
ist ja reichlich da.

Es scheint ja ein Webserver zu sein, den Du bauen möchtest. Ist das
Programm kontinuierlich gewachsen und hat dann irgendwann nicht mehr
funktioniert (was auf Speicherprobleme hindeuten könnte) oder hast Du
es als Block kompiliert und es tut einfach nicht, was es soll? Das kann
natürlich an 10000 Dingen liegen - ist Dir sicherlich auch klar.

Nebenbei: Ist das TCP/IP-Modul öffentlich? Wenn ja, wäre ich an den
Quellen interessiert. Ich habe uIP für den M16C portiert, läuft auch
prima (http://dl4aas.dyndns.org:8080), kann aber nicht mit mehr als
einem unbestätigten TCP-Paket pro Verbindung arbeiten. Und das begrenzt
die Datenrate doch sehr.

Gruß

Jens

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Jens

Ich habe Fremdcode bekommen! Sieht aber sehr gut aus!

Wir können ja beide mal den gesamten Code tauschen!

Wie wäre das?

MFG
Alex

Autor: Jens Mundhenke (Jensbert) (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Alex,

das können wir machen. Wenn ich zu Hause bin, packe ich mal alles
zusammen und sende es Dir. Du bist doch DER Alex mit der
alex10...-Adresse, oder?

Gruß

Jens

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
JA!

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Jens

Code tauschen??

Ich komme einfach nicht weiter!!! Kannst du dir das mal ansehen??
Danke
MFG
Alex

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es will einfach nicht gehen!!! obwohl die memorymap super aussieht!

Wer kann helfen??

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.