- Labornetzteil AliExpress         
Ergebnis 1 bis 10 von 14

Thema: ORG Anweisung - RN-Wissen-Artikel

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    11.01.2017
    Beiträge
    5
    Super! Besten Dank!
    Das ist genau das, was ich gesucht habe!
    Vielen Dank! Das Disassemby Listing File hat mir sehr weitergeholfen!

    Das "ORG 0x00" kann ich mir anscheinend sparen, wie es scheint. Richtig?

    Ich verwende -wie gesagt- keine Interrupt-Funktionen.
    Muss die Adresse 0x04 dann trotzdem frei bleiben?

    Wenn ich "ORG 0x00" und "ORG 0x05" beide weglasse, bekomme ich zumindest etliche Fehlermeldungen.
    Eines von beiden muss ich anscheinend mindestens vorgeben.

  2. #2
    Erfahrener Benutzer Lebende Robotik Legende Avatar von PICture
    Registriert seit
    10.10.2005
    Ort
    Freyung bei Passau in Bayern
    Alter
    73
    Beiträge
    11.077
    Nix zu danken. Ich freue mich immer sehr, wenn ich noch helfen konnte.

    Zitat Zitat von Matze235 Beitrag anzeigen
    Das "ORG 0x00" kann ich mir anscheinend sparen, wie es scheint. Richtig?
    Keine Ahnung (kurz: k.A.).

    Zitat Zitat von Matze235 Beitrag anzeigen
    Muss die Adresse 0x04 dann trotzdem frei bleiben?
    k.A. Vorsichsweise habe ich sie immer übersprungen.

    Zitat Zitat von Matze235 Beitrag anzeigen
    Wenn ich "ORG 0x00" und "ORG 0x05" beide weglasse, bekomme ich zumindest etliche Fehlermeldungen.
    k.A. Ich verwende anderes ASS Programm, wo man mehrere Fehlermeldungen ruhig ignorieren kann.

    Sorry, aber ich kann nur Fragen über mir schon bekannte Probleme beantworten.
    MfG (Mit feinem Grübeln) Wir unterstützen dich bei deinen Projekten, aber wir entwickeln sie nicht für dich. (radbruch) "Irgendwas" geht "irgendwie" immer...(Rabenauge) Machs - und berichte.(oberallgeier) Man weißt wie, aber nie warum. Gut zu wissen, was man nicht weiß. Zuerst messen, danach fragen. Was heute geht, wurde gestern gebastelt. http://www.youtube.com/watch?v=qOAnVO3y2u8 Danke!

  3. #3
    Erfahrener Benutzer Roboter-Spezialist Avatar von witkatz
    Registriert seit
    24.05.2006
    Ort
    NRW
    Alter
    54
    Beiträge
    553
    Blog-Einträge
    17
    Zitat Zitat von Matze235 Beitrag anzeigen
    Das "ORG 0x00" kann ich mir anscheinend sparen, wie es scheint. Richtig?
    den Reset Vektor würde ich schon drin lassen
    Zitat Zitat von Matze235 Beitrag anzeigen
    Muss die Adresse 0x04 dann trotzdem frei bleiben?
    Wenn du die Gründe nicht kennst, warum der Interruptvektor frei gelassen wurde, lass ihn frei, wenn es nicht weh tut.
    Code:
    org    0            ; # geänderter Code, Simulation möglich
    goto     start
    org   5
    Damit müsste es getan sein. Für die Marke start brauchst du mE wahrscheinlich keine absolute Adresse. Weitere org brauchst du im Quellcode dann, wenn "computed goto", sprich Tabellen verwendet werden. Das ist in PICtures Artikel http://rn-wissen.de/wiki/index.php?t...mbler#Tabellen recht gut erklärt.

    Nachtrag
    Ich werd das Gefühl nicht los, dass das erste von dir gepostete Quellcode nur ein Teil des Softwareprojektes ist. Es wundert mich, dass der Bereich ab Resetvektor leer war. Kann es sein, dass irgendein #include bereits gelöscht wurde, oder zu dem Softwareprojekt noch weitere Dateien dazu gehört haben, die der MPLINK ursprünglich zusammengelinkt hat? Liegt dir das komplette Softwareprojekt mit allen Dateien und Linkerskript vor?
    Geändert von witkatz (12.01.2017 um 21:52 Uhr)

  4. #4
    Neuer Benutzer Öfters hier
    Registriert seit
    11.01.2017
    Beiträge
    5
    Ich nehme an, du meinst folgenden Beginn des Codes in dieser Art?

    (Ich habe die Start- und die Main-Funktion jetzt direkt nach die CONFIGs, EQUs und #designs in meinen Quellcode platziert)

    Code:
            org	00h
    	goto 	start
    
    ;************************************************************************* 
    ; # START - PIN Configuration, TIMER Confuguration, OSZILLATOR Calibration, AD-CONVERTER definieren
    ;		
           start   org	05h
    Das, womit ich arbeite, ist nur eine einzelne ASM-Datei mit noch 6 weiteren Dateien. Ich habe mal einen Screenshot angehängt.

    Klicke auf die Grafik für eine größere Ansicht

Name:	Unbenannt.JPG
Hits:	7
Größe:	13,8 KB
ID:	32343

    Und in der Simulation läuft's ja jetzt auch einwandfrei.. keine Ahnung, was da fehlen könnte..

  5. #5
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    02.09.2009
    Ort
    Berlin (Mariendorf)
    Beiträge
    1.023
    Ich vermute, dass im Debugging-Mode ein Interrupt benötigt wird. Der für das debuggen erforderliche zusätzliche Code wird von der IDE automatisch erzeugt und eingefügt. Das obige Konstrukt stellt jedenfalls sicher, dass das Hauptprogramm Platz für einen Interruptvektor in 04h frei hält.
    Bei den PIC16 meine ich gelesen zu haben, dass für das debuggen auf dem PIC der erste Befehl, also in 00h, ein NOP sein muss.

  6. #6
    Erfahrener Benutzer Roboter-Spezialist Avatar von witkatz
    Registriert seit
    24.05.2006
    Ort
    NRW
    Alter
    54
    Beiträge
    553
    Blog-Einträge
    17
    Zitat Zitat von RoboHolIC Beitrag anzeigen
    Ich vermute, dass im Debugging-Mode ein Interrupt benötigt wird. Der für das debuggen erforderliche zusätzliche Code wird von der IDE automatisch erzeugt und eingefügt. Das obige Konstrukt stellt jedenfalls sicher, dass das Hauptprogramm Platz für einen Interruptvektor in 04h frei hält.
    Ich glaube auch, dass hier so etwas im Gange war. Mit den OTP Chips war das Debuggen kniffelig, man konnte nur leere Zellen (0x3fff) mit Code beschreiben und bereits verwenden EPROM nur noch NOP (0) überschreiben. Auf der Katalogseite des PIC12C672 gibts dazu die Doku In-Circuit Serial Programming? (ICSP™) Guide.

    Ich glaube nicht, dass der Programmierer die wichtigsten Vektoren des Chips aus Jux frei gelassen hat. Vielleicht hat er während der Entwicklung, je nach dem was auf dem Chip schon drauf war, manuell die Debug/Produktionsversionen des Code in freie Bereiche gebrannt und die alten Sprünge im Programm-EPROM mit NOP überschrieben. Davon sieht man in der Originalversion der ASM heute natürlich nichts mehr.

    Mein Vorschlag wäre, das Projekt z.B. auf den von Microchip vorgeschlagenen Nachfolger PIC12F683 zu portieren. Mit Flash-Speicher hat man den OTP Hickhack nicht mehr.
    Geändert von witkatz (13.01.2017 um 20:53 Uhr)

  7. #7
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    30.09.2006
    Ort
    Hamburg
    Alter
    42
    Beiträge
    1.013
    Ich würde mir das auch angewöhnen, in dem beispiel fange ichab 0x00 an wegen einem vorgeschalteten Bootloder, die ersten pahr Adressen haben noch weitere Funktionen z.b. beim debuggen brauchst du zwei NOP direkt in den ersten Adressen, oder bei einigen Bootlodern müssen da Statusregister gelöscht werden dafür sind die Reserviert, die ISR Adresszeilen sind im Linker fest definiert, auch wieviele dafür genutzt werden können

    PIC18F

    org 0x000000 ; Starte Programm
    nop
    nop
    goto init
    org 0x000008 ; Interuptvector High
    goto int
    org 0x000018 ; Interuptvector Low

    goto int
    org 0x000028 ; Erste Routine auf Adresse 0x028
    PIC16F

    org 0x000000 ; Programanfang
    nop ; NOP für Debugger
    nop
    goto go ; Springe zur Inialisirung
    org 0x000004 ; Erste Rotine (go) auf Adresse 0x00005
    Geändert von theborg (14.01.2017 um 22:30 Uhr)
    Legastheniker on Bord !

Ähnliche Themen

  1. RN-Wissen Artikel zum Wild Thumper Roboter und dessen Controller WTR-CK1
    Von Dirk im Forum Controller- und Roboterboards von Conrad.de
    Antworten: 27
    Letzter Beitrag: 05.07.2017, 18:44
  2. Arduino Nano (mit Bootlader) per USB aus BASCOM brennen /RN-Wissen-Artikel
    Von jguethe im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 8
    Letzter Beitrag: 28.02.2017, 17:33
  3. If-Anweisung
    Von 1udo1 im Forum C - Programmierung (GCC u.a.)
    Antworten: 13
    Letzter Beitrag: 20.01.2009, 13:17
  4. CCRP5-Artikel auf RN-Wissen
    Von pischke im Forum Robby CCRP5
    Antworten: 3
    Letzter Beitrag: 09.01.2007, 11:36
  5. Problem mit der anweisung LCD var
    Von AVRJIS im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 4
    Letzter Beitrag: 25.02.2005, 07:05

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

fchao-Sinus-Wechselrichter AliExpress