Algorithm Builder-Programmierumgebung. Algorithm Builder für AVR, Erste Schritte, grafische Assembler-Programmierung für Algorithm Builder, Torrent herunterladen

Grafische Programmierumgebung zur Entwicklung von Anwendungen für Mikrocontroller mit AVR-Architektur.

Algorithm Builder ist ein leistungsstarkes Tool, mit dem Sie einen vollständigen Zyklus der Erstellung und Überprüfung von Programmcode durchführen können. Die Umgebung umfasst: einen grafischen Editor, einen Mikrochip-Simulator zum Debuggen des Algorithmus, einen Compiler und einen In-Circuit-Programmierer zum Laden von Code in den Chip. Das Programm ist ein inländisches Analogon von Assembler und eignet sich sowohl für erfahrene Entwickler als auch für diejenigen, die gerade erst anfangen, die Gerätefirmware zu beherrschen.

Die Erstellung von Algorithmen kann auf Assembly-Ebene oder auf Makroebene erfolgen, basierend auf der Arbeit mit Multibyte-Werten unter Berücksichtigung des Vorzeichens. Darüber hinaus umfassen Makrooperatoren die gebräuchlichsten Befehlssätze.

Alle entwickelten Programme werden in Form von verzweigten Baumblockdiagrammen dargestellt, Übergangsnetzwerke werden grafisch in Vektorform dargestellt. Wenn es gemäß der Bedingung notwendig ist, an eine beliebige Stelle im Programmcode zu gelangen, reicht es aus, dort einen Vektor zu zeichnen. Auf diese Weise wird die Software von mehreren Labelnamen befreit. Falls der Zweig zu lang ist, besteht immer die Möglichkeit, den Zweig an den Labelnamen zu adressieren. Die Klarheit einer solchen logischen Struktur verkürzt laut den Entwicklern die Zeit zum Schreiben von Code erheblich und verringert die Anzahl der Fehler.

Im Hauptfenster können Sie wie in jedem Grafikeditor die erforderlichen Objekte platzieren und ändern, einfügen, verschieben usw. In einem separaten Teil des Bildschirms wird ein Fenster mit einer Liste aller Konstanten und Variablen in Tabellenform gebildet, wodurch der Algorithmus von zusätzlichen Eingaben befreit wird. Zur Konfiguration der Parameter von Peripheriegeräten (UART, SPI, ADC, Timer) steht ein spezielles Element mit einer Dropdown-Fensterschnittstelle zur Verfügung. Der Compiler generiert selbstständig eine Reihe von Anweisungen, die die ausgewählten Betriebsparameter des Geräts bereitstellen. Darüber hinaus wird die automatische Konvertierung von Windows ANSI-Codes in russischsprachige alphanumerische LCD-Codes unterstützt. Das Programm unterstützt eine Vielzahl von Mikrocontroller-Familien: ATtiny, ATmega, AT90.

Der Simulator zeigt alle Änderungen an, die in verschiedenen Registern, Speicherzellen und Timern auftreten. Die Simulation kann Schritt für Schritt (mit oder ohne Eingabe von Funktionen), bis zu einem Haltepunkt oder bis zu einem ausgewählten Bereich durchgeführt werden.
Um den In-Circuit-Programmierer zu betreiben, müssen Sie selbstständig einen einfachen Adapter zusammenbauen, über den der Mikrocontroller mit dem COM-Port des Computers verbunden wird. Darüber hinaus ist der Anschluss über einen USB-Anschluss möglich. Der Programmierer zählt die Anzahl der Kernneuprogrammierungen und speichert den Zähler im Chip selbst.

Der Debugging-Modus „Überwachen“ auf dem Kern mithilfe eines anderen Adapters (alle Diagramme sind in der Softwaredokumentation verfügbar) ermöglicht die Überwachung des internen Zustands eines echten Kristalls an jedem Haltepunkt. Für die Kommunikation zwischen der Steuerung und dem Computer wird nach Ermessen des Benutzers nur ein Ausgang zugewiesen. Das On-Chip-Debugging gilt für jeden Chiptyp, der über SRAM-Speicher verfügt.

Trotz seiner offensichtlichen Vorteile ist Algorithm Builder in der Amateurfunk-Community wenig bekannt. Dies liegt unter anderem daran, dass die visuelle Programmierumgebung bis 2010 kostenpflichtig war, die kostenlose Demoversion den Code auf zwei Kilobyte beschränkte. Heute wird die Software absolut kostenlos verteilt. Der Ordner mit dem installierten Programm kann auf andere Medien kopiert und tragbar bearbeitet werden. Der Software liegt ein Benutzerhandbuch bei. Der Artikel beschreibt eine Reihe einfacher Arbeiten und bietet Diagramme von Programmierern für USB- und COM-Ports.

Die Autoren des Algorithm Builder-Programms sind eine Gruppe inländischer Programmierer unter der Leitung des nationalen Handwerkers Gennady Leonidovich Gromov aus Nischni Nowgorod. Das Programm entwickelt sich bis heute weiter, es kommen neue Funktionen hinzu und eine kleine Auswahl an Bibliotheken ist auf der Website des Autors aufgetaucht.

Die Programmoberfläche und das Benutzerhandbuch von Algorithm Builder werden auf Russisch und Englisch präsentiert.

Die Software ist mit den Betriebssystemen Microsoft Windows 95, 98, 2000, NT, ME, XP, Vista und 7 kompatibel.

Programmverteilung: frei

Ich denke, in unserer Zeit gibt es keinen Funkamateur, der noch nie Mikrocontrollern begegnet ist. Früher oder später passiert das aber. Als ich zum ersten Mal eine Schaltung mit einem Mikrocontroller sah, schloss ich sofort die Browserseite mit dem Gedanken: „Oh, ich kann sie immer noch nicht zusammenbauen.“ Aber die Zeit verging, es gab immer mehr Schaltkreise, die Mikrocontroller nutzten, und ich beschloss schließlich, damit anzufangen. Tatsächlich war alles gar nicht so schwierig, wie ich dachte.

Lassen Sie uns zunächst herausfinden: Was ist überhaupt ein Mikrocontroller (MK)? Im Wesentlichen handelt es sich um einen Miniaturcomputer, der für die Ausführung einfacher Aufgaben entwickelt wurde. Alles, was für den Betrieb des Mikrocontrollers notwendig ist, ist in einem Gehäuse untergebracht. Der Mikrocontroller verfügt über verschiedene Peripheriegeräte – Ein-/Ausgabeanschlüsse, Timer, Kommunikationsschnittstellen usw. Der Mikrocontroller verfügt über drei Arten von Speicher: RAM (Random Access Memory), FlashROM (Programmspeicher), EEPROM (nichtflüchtiger Speicher).

Der Hauptunterschied zwischen einem Mikrocontroller und einer herkömmlichen Mikroschaltung besteht darin, dass der Mikrocontroller nicht nach einer werkseitig installierten starren Logik arbeitet, sondern programmiert ist. Das Programm wird klassischerweise in einer speziellen Umgebung auf einem Computer in einer der Programmiersprachen geschrieben, anschließend in Maschinensprache übersetzt (kompiliert) und in den Speicher der Steuerung geschrieben. In diesem Kurs wird alles etwas anders sein – das Programm wird nicht geschrieben, sondern buchstäblich in Form eines Flussdiagramms gezeichnet. Dank dieses Ansatzes sieht das Programm klarer aus und die Zeit für die Programmentwicklung wird im Vergleich zu klassischen Programmiertechniken um das Drei- bis Fünffache verkürzt.

Algorithm Builder – Programmierumgebung

Algorithm Builder führt einen vollständigen Entwicklungszyklus durch, angefangen bei der Eingabe des Algorithmus über den Debugging-Prozess bis hin zum Schreiben des Programms in den Speicher.

Beginnen wir mit einem kurzen Überblick über die Programmoberfläche

Hauptmenü

  • Datei. Dient zum Öffnen, Speichern, Schließen von Projekten und einzelnen Algorithmen sowie zum Beenden des Programms.
  • Bearbeiten. Aktionen im Zusammenhang mit der Bearbeitung eines Algorithmus: Ausschneiden, Kopieren, Hervorheben usw.
  • Anzeige. Schaltalgorithmus/Tabelle mit Variablen (mehr dazu weiter unten) + Vorlagen für Operationen und Bedingungen.
  • Suchen. Hier muss man es nicht erklären.
  • Elemente. Der Algorithmus besteht aus speziellen Elementen: Text, Scheitelpunkt, Feld, Beschriftung, Bedingung, verwendeter (bedingungsloser) Übergangsvektor, Customizer. Wir werden sie alle während des Schulungsprozesses kennenlernen. Es gibt noch einige weitere wichtige Punkte auf der Speisekarte: Deaktivieren, Makro, Interrupts. Deaktivieren- Diese Komponente lässt sich nicht kompilieren. Makro- um Makros zu erstellen. Unterbricht- enthält eine Liste mit Namen aller Mikrocontroller-Interrupts. Sie werden diese Funktion in den folgenden Lektionen kennenlernen, aber jetzt möchte ich nur sagen, dass dies eine äußerst wichtige und notwendige Sache für die Arbeit ist.
  • Programm. Mit dem Programm verbundene Aktionen – Kompilierung (Übersetzung in Maschinensprache), Simulation des Programms, Auslesen des Controller-Speichers (Flash und EEPROM) usw.
  • Optionen. Projekt- und Umgebungseinstellungen.
  • ?. Informationen und Hilfe zum Algorithm Builder.

Symbolleiste

Keine Erklärung nötig. Wenn Sie mit der Maus über Panel-Elemente fahren, werden Tooltips angezeigt.

Offenes Projekt

Hier gibt es eine Besonderheit. Sie können nicht zwei Projekte gleichzeitig öffnen/erstellen. Um ein neues Projekt zu öffnen/erstellen, müssen Sie das alte schließen. Nach dem Öffnen eines Projekts können Sie nur eine separate Algorithmusdatei öffnen/erstellen. Die Projektdatei hat die Erweiterung .alp und die separate Algorithmusdatei hat die Erweiterung .alg

Arbeiten mit Variablen und Konstanten

Sie ist in Form einer speziellen Tabelle organisiert (Sie können sie mit der Taste F12 wechseln, entweder über das Menü oder mit einer Taste in der Symbolleiste). Somit wird der Algorithmus selbst von unnötigen Einträgen befreit.

Eine große Anzahl von Beschriftungen, dank derer Übergänge von einem Teil des Programms zu einem anderen möglich sind, überladen den Code stark und die Übersichtlichkeit des Programms geht verloren. Im Algorithm Builder werden Übergänge viel einfacher gemacht – mit einem Pfeil (Vektor). Aber auch Übergänge entlang benannter Labels sind möglich.

Simulation des Programmbetriebs

Der Simulator zeigt alle Veränderungen, die im virtuellen Mikrocontroller stattfinden. Um die Funktion des Programms zu überprüfen, müssen Sie nicht einmal einen Mikrocontroller kaufen! Die Simulation kann Schritt für Schritt (mit oder ohne Eingabe von Funktionen), bis zu einem festgelegten Haltepunkt oder bis zu einem ausgewählten Bereich durchgeführt werden.

Debuggen

Algorithm Builder verfügt über ein On-Chip-Debugging-System (On Chip Debug), mit dem Sie den Speicherinhalt eines echten Mikrocontrollers an bestimmten Punkten beobachten können. In diesem Fall wird nur ein Zweig des Mikrocontrollers zur Kommunikation mit dem Computer verwendet, und zwar nach Wahl des Benutzers. Das Monitor-Debugging kann auf fast jeden Mikrocontroller angewendet werden. Dies ist eine Softwareversion des debugWIRE-Protokolls.

Warum ist Algorithm Builder unter Funkamateuren wenig bekannt? Erstens wurde das Programm bis 2010 bezahlt. Heute wird die Software absolut kostenlos verteilt. Zweitens der Mangel an offizieller Unterstützung für das Programm. Sie werden keinen einzigen Hersteller finden, der Builder verwendet. Die diesem Programm gewidmeten Internetressourcen können einerseits abgezählt werden.

Es lohnt sich, ein wenig darüber zu reden notwendige Materialien und Werkzeuge

Das erste, was Sie brauchen, ist Lötkolben. Das Hauptwerkzeug eines Funkamateurs. Die Leistung des Lötkolbens sollte im Bereich von 30-60 W liegen. Warum kann es nicht mehr sein? Ein starker Lötkolben erhitzt sich stärker und beschädigt die Leiterbahnen und gebrauchten Teile der Platine. Und zum Löten ist es nicht so praktisch – ein solcher Lötkolben ist viel größer und schwerer.

Um das Programm in den Mikrocontroller zu laden, benötigen Sie Programmierer- in der einfachsten Variante besteht es nur aus wenigen Widerständen und Dioden (pro LPT und COM-Port). Wenn Ihr Computer keinen COM- oder LPT-Anschluss hat, kann ein USB-Programmierer bei DealExtreame oder (Suchanfrage) bestellt werden „AVR-Programmierer“; kostet ca. 4-6$). In der nächsten Lektion werde ich über die Auswahl und Zusammenstellung eines Programmierers schreiben.

Die Materialien des Artikels wurden am Institut für Automatisierung, Informatik und Steuerungssysteme (AIiSU) der Moskauer Staatlichen Industrieuniversität (GOU MGIU) erstellt.
(Seit 2011 trägt die MGIU den Namen Federal State Budgetary Educational Institution of Higher Professional Education „MGIU“).
Autoren: Kryukov A.I., Shubnikova I.S., Troikov S.M.

Die Abteilung AI&CS bildet seit mehr als 35 Jahren Fachkräfte im Bereich der Entwicklung und des Betriebs von Elektronik-, Mikroprozessor-, Computer-, Roboter-, Mechatronik- und Informationssteuerungssystemen für die Automobil- und Luft- und Raumfahrttechnik, den Maschinenbau und die Wirtschaft aus. Die Forschungsarbeiten der Mitarbeiter der Abteilung werden in Bereichen durchgeführt, die mit der Entwicklung von Entscheidungsunterstützungssystemen auf Basis von Technologien der künstlichen Intelligenz, der Analyse und Synthese von Prozessen zur Verwaltung komplexer Systeme, der Überwachung und intelligenten Erkennung von Geräteausfällen zusammenhängen. Ein wichtiger wissenschaftlicher Tätigkeitsbereich der Abteilung ist die Forschung auf dem Gebiet automatischer und elektronischer Systeme von Fahrzeugen.
Es gibt eine Vielzahl unterschiedlicher Anwendungen zum Schreiben von Steuerungsprogrammen für Atmel MKs – das sind Entwicklungs- und Debugging-Umgebungen in Low-Level-Sprachen (zum Beispiel das kostenlose AVR Studio-Paket zum Entwickeln von Programmen in der AVR-Assembler-Sprache), Entwicklungsumgebungen in Hochsprachen (wie der WinAVR-Umgebung zum Entwickeln von Programmen in einer C-ähnlichen Sprache) und es gibt sogar eine grafische Softwareentwicklungs- und Debugging-Umgebung namens „Algorithm Builder“.

Algorithm Builder hebt sich von allen anderen Umgebungen ab und darauf werden wir uns konzentrieren. Das Besondere an dieser Anwendung ist nicht einmal, dass sie kostenlos ist, sondern dass der darin enthaltene Code nicht einmal geschrieben, sondern in Form von Flussdiagrammen von Algorithmen gezeichnet wird, was die Zeit für die Entwicklung der Anwendung erheblich verkürzt. Diese Umgebung bietet einen vollständigen Entwicklungszyklus, beginnend mit der Eingabe des Algorithmus, einschließlich Debugging, und endend mit der In-Circuit-Programmierung des Quarzes. Dadurch wird die gesamte logische Struktur des Programms völlig klar.

Bei der Softwareentwicklung in der Algorithm Builder-Umgebung geht es darum, solche Aufgabenblöcke zu bilden, sie auf einer Ebene zu platzieren und durch bedingte und unbedingte Übergänge Verbindungen zwischen ihnen herzustellen.

Um nicht das gesamte Handbuch für die Arbeit mit der Algorithm Builder-Umgebung neu zu schreiben, empfehle ich Ihnen, es selbst zu lesen, zumal die Anwendung im Inland produziert wird und enthält ausführliche Beschreibung auf Russisch anhand von Beispielenüber die Zusammenarbeit mit ihm. Aufgrund unserer persönlichen Erfahrung können wir mit Sicherheit sagen, dass dieses Handbuch (übrigens alles andere als umfangreich – nur 20 bis 30 Minuten Lernzeit) völlig ausreicht, um dieses Softwareprodukt vollständig zu verstehen und zu verstehen.

Sie können Algorithm Builder unter http://algrom.net/russian.html herunterladen. Und der Prozess der Entwicklung eines Steuerungsprogramms kann unter eingesehen werden Verknüpfung. Daher präsentieren wir Ihnen nun das fertige Programm in der beschriebenen Entwicklungsumgebung mit ausführlichen Kommentaren dazu.

Zunächst müssen Sie im Menü Optionen/Projektoptionen den Quarztyp (in unserem Fall Atmega8) auswählen und dort die Taktfrequenz auf 8.000.000 Hz (8 MHz) einstellen. Als nächstes setzen wir den Quarz beim Start zurück (Elemente/Interrupts/Reset). Anschließend initialisieren wir den Stack, indem wir Elemente/Kunde…/Stack Pointer (SP) auswählen. Es öffnet sich ein Fenster, dem Sie nur noch zustimmen müssen, indem Sie auf „OK“ klicken (Abb. 2).

Reis. 2. Stack-Anpasser

Der nächste Schritt besteht darin, den USART-Transceiver zu initialisieren (wundern Sie sich nicht über das Erscheinen des Buchstabens „S“ in der Abkürzung – dies ist eine modernere Version von UART, die sich von ihr in der Fähigkeit zum Senden/Empfangen von Daten unterscheidet). (nur im asynchronen Modus, aber auch im synchronen Modus) durch Auswahl des Menüs Elemente / Customizer ... /USART. Aktivieren Sie im sich öffnenden Fenster (Abb. 3) im Abschnitt „Empfänger“ die Kontrollkästchen neben „Aktivieren“ (Datenempfänger einschalten) und „Interrupt aktivieren“ (Interrupts aktivieren, wenn Daten empfangen werden) und aktivieren Sie dann das Kontrollkästchen neben „Doppelte Geschwindigkeit“. , stellen Sie die Zeichengröße Zeichengröße: 8 – Bit ein und stellen Sie die Datenübertragungsrate auf Baudrate = 9615 bps ein (wenn Sie im Menü auf die Auswahl der Datenübertragungsrate klicken, sollten Sie 9600 bps auswählen, 9615 bps werden aufgrund der erhalten Neuberechnung der Taktfrequenz auf 8 MHz).


Reis. 3. USART-Konfigurator

Der Hauptteil des Programms besteht aus einer Reihe von Überprüfungen von Steuercodes (Listing Nr. 1). Die Idee besteht darin, dass der PC einen Betriebscode über UART sendet und der MK ihn empfängt und die entsprechenden Steueraktionen für den Lüfterflügelantrieb und den Servoantrieb generiert. Insgesamt wird es drei solcher Codes geben (Sie können sich absolut jeden Code ausdenken):

  • $31 – Lüfterflügelantrieb einschalten;
  • 20 $ – Lüfterflügelantrieb ausschalten;
  • $A1 – Zugriff auf den Servoantrieb.

  • Wenn mit den ersten beiden Codes alles klar ist, ist es mit dem dritten nicht so einfach – $A1 ist nur ein Befehl zum Zugriff auf den Servoantrieb, dann müssen Sie den Drehwinkelcode erhalten. Es wurde experimentell festgestellt, dass der Wert zwischen 05 AF und 154 F liegt. Darüber hinaus senden wir ab dem Low-Byte vom PC und empfangen dementsprechend vom MK. Wir werden auch Unterbrechungen für den Datenempfang über USART für die Dauer der Befehlsausführung deaktivieren – andernfalls kann es zu einem „Datenchaos“ kommen.

    Eintrag Nr. 1

    Listing Nr. 2 zeigt den Code für die Verzögerungsunterroutine (Delay). Die Zeitverzögerung ist für die genaue und vollständige Verarbeitung des Befehls erforderlich und wird durch eine Schleife des Programms über N Zyklen gebildet (durch Versuch und Irrtum haben wir berechnet, dass in unserem Fall die erfolgreichste Anzahl von Zyklen 84FF im hexadezimalen Zahlensystem beträgt).

    Eintrag Nr. 2

    Das Ende des Datenempfangs über UART verursacht den USART_Receive_Complete-Interrupt (sofern er derzeit nicht im Hauptteil des Programms deaktiviert ist), der im Code über das Menü Elemente/Interrupts/USART_Receive_Complete festgelegt werden kann. Im Hauptteil des Handlers sollten Sie alle darin verwendeten Register auf dem Stapel speichern und sie am Ende des Handlers vom Stapel wiederherstellen. Auch in diesem Handler können Sie das Statusbyte (UCSRA-Register) zur Überprüfung der Daten auf Fehler und natürlich die Daten selbst aus dem UDR-Register (Listing Nr. 3) abrufen.

    Eintrag Nr. 3

    Der Drehwinkel des Servoantriebs hängt von der Breite des ihm zugeführten Impulses ab, während die Periode konstant bleibt (die Periode beträgt 20 ms und die Dauer des Steuerimpulses beträgt 0,8 bis 2,2 ms, obwohl diese Werte für verschiedene Servos gelten). (kann leicht abweichen) Dazu benötigen wir ein Unterprogramm für den Drehwinkel des Servoantriebs (Listing Nr. 4). Die Steuerimpulszeit und die Pausenzeit werden ähnlich wie beim Verzögerungsunterprogramm eingestellt. Wie wir oben geschrieben haben, haben wir experimentell für eine Quarzfrequenz von 8 MHz festgestellt, dass die Impulszeit durch den Code im Bereich von $05AF bis $154F angegeben wird. Wenn wir also die Zeit der gesamten Periode kennen – $9E3C (ebenfalls experimentell ermittelt), können wir die Pausenzeit als Differenz zwischen der Dauer der Periode und der Dauer des Impulses berechnen. Es bleibt nur noch, die Pulszeit und die Pausenzeit nacheinander zu ermitteln, ähnlich wie bei der Verzögerungsunterroutine, und dann ein solches Signal mehrmals zu wiederholen (in unserem Fall haben wir das Signal $10-mal wiederholt, also 16-mal in der Dezimalschreibweise). )

    Eintrag Nr. 4

    Nach dem Schreiben des Codes (Zeichnen des Algorithmus) des Steuerprogramms muss dieser kompiliert und in den Mikrocontroller geflasht werden. Das Programm kann durch Drücken von Strg+F9 oder über das Menü „Programm/Kompilieren“ kompiliert werden. Bei erfolgreicher Kompilierung erscheint ein Informationsfenster, in dem die Menge des belegten Speichers des MK angezeigt wird.

    Als nächstes müssen Sie das Kompilierungsergebnis (eine Datei mit der Erweiterung *.hex ohne das Präfix „EE_“ am Anfang, die sich im selben Ordner wie die Programmquelle befindet) in die Steuerung flashen. Dies kann mit dem kostenlosen Dienstprogramm AvrProg erfolgen, das im ebenfalls kostenlosen AVR Studio-Paket enthalten ist. Sie können es von der Website mymcu.ru oder von atmel.com (englische Website) herunterladen.

    Neben dem Dienstprogramm zum Flashen der MK-Firmware benötigen Sie auch einen Programmierer. Man kann es entweder kaufen (einfache Versionen sind relativ günstig) oder selbst löten.

    Reis. 4. LPT-Programmierschaltung
    Der einfachste, den ich kenne, ist ein LPT-Programmierer, aber dafür ist ein LPT-Anschluss am Computer erforderlich, was derzeit eine Seltenheit wird. Die Idee des Programmierers ist einfach und besteht darin, den LPT-Port direkt mit der ISP-Schnittstelle und der Reset-Leitung des Controllers zu verbinden (Abb. 4).

    Eine weitere Option für einen Programmierer zum Selbstbau ist ein USB-Programmierer (das Diagramm ist in Abb. 5 dargestellt), er ist natürlich komplizierter, kann sich aber in Zukunft als deutlich komfortabler herausstellen. Es gibt jedoch ein „Aber“: Zum Zusammenbau benötigen Sie weiterhin einen LPT-Programmierer, allerdings nur einmal. Es ist notwendig, die Steuerung des Programmiergeräts selbst zu flashen, um die FUSE-Bits zu flashen. Es ist erforderlich, dass die Bits SPIEN, CKOPT und SUT0 programmiert (auf „0“ gesetzt) ​​sind. Normalerweise kommen MKs ab Werk, d.h. Neue haben das SPIEN-Bit bereits programmiert. Es ist auch wünschenswert (aber nicht notwendig), das BODEN-Bit zu programmieren (auf „0“ zu setzen). Die restlichen Bits müssen unprogrammiert (auf „1“ gesetzt) ​​sein. Hierzu ist möglicherweise die Anwendung Codevision AVR V2.03.4 erforderlich. Eine ausführliche Beschreibung zum Zusammenbau des USB-Programmierers finden Sie hier.

    Unterscheidungsmerkmale:

    • Unterstützte Betriebssysteme: Windows 95/98/2000/NT/ME/XP
    • Lizenz: Freeware
    • Schnittstellensprache: Englisch, Russisch
    • Programmiersprachen: grafischer Assembler
    • Hauptfunktionen:
      • Grafischer Programmcode-Editor
      • Compiler
      • Simulator zum Debuggen des eingeführten Algorithmus
      • Programmierung über einen COM-Port mit einem einfachen Adapter (7 Widerstände, 3 Dioden; Diagramm siehe Dokumentation)
      • Debuggen des Algorithmus auf einem Chip mit einem noch einfacheren Adapter (1 oder 2 Dioden, 2 oder 4 Widerstände; siehe Dokumentation für das Diagramm)
    • Internet-Supportadresse: http://algrom.net/russian.html

    Beschreibung:

    Algorithm Builder ist eine kostenlose Umgebung (Freeware-Verteilungsbedingungen) für den AVR MK, die einen vollständigen Zyklus der Firmware-Entwicklung bietet, inkl. Phasen wie Algorithmuseingabe, Debugging und In-Circuit-Programmierung. Die Programmentwicklung kann sowohl auf der Assemblerebene als auch auf der Makroebene erfolgen, auf der mit Wechselmengen beliebiger Länge gearbeitet werden kann. Dies bringt die Programmierfähigkeiten näher an eine Hochsprache heran.

    Eine Besonderheit des Algorithm Builder ist die Möglichkeit, ein Programm grafisch in Form eines Algorithmus mit Baumstruktur einzugeben. Dadurch wird die gesamte logische Struktur des Programms völlig klar. Diese Programmiermethode kommt der Natur der menschlichen Wahrnehmung am nächsten und ist daher im Vergleich zum klassischen Assembler viel einfacher zu erlernen. Die erwartete Reduzierung der Firmware-Erstellungszeit im Vergleich zum klassischen Assembler beträgt das 3- bis 5-fache.

    Die Umgebung ist für den Betrieb unter Windows 95/98/2000/NT/ME/XP ausgelegt. Für den normalen Betrieb des Editors ist die Schriftart „Courier“ erforderlich.

    Dateien zum Download:

    • AT90-Serie
      • AT90CAN128, AT90PWM3, AT90S1200, AT90S2313, AT90S2323, AT90S2333, AT90S2343, AT90S4414, AT90S4433, AT90S4434, AT90S8515, AT90S8535, AT90USB64, AT90USB82, AT90 USB128, AT90USB162
    • ATmega-Serie
      • ATmega8, ATmega16, ATmega32, ATmega48, ATmega64, ATmega88, ATmega103, ATmega128, ATmega161, ATmega162, ATmega163, ATmega164P, ATmega165, ATmega168, ATmega323, ATmega324P, ATmega325, ATmega328P, mega 603, ATmega640, ATmega644, ATmega644P, ATmega645, ATmega1280, ATmega1281, ATmega1284P, ATmega2560, ATmega2561, ATmega3250, ATmega6450, ATmega8515, ATmega8535
    • Winzig
      • ATtiny10, ATtiny11, ATtiny12, ATtiny13, ATtiny15, ATtiny22, ATtiny24, ATtiny25, ATtiny26, ATtiny28, ATtiny44, ATtiny45, ATtiny84, ATtiny85, ATtiny261, ATtiny461, ATtiny861, ATtiny2313

    Die Algorithmusoperatoren sind in zwei Gruppen unterteilt.

    Die erste Gruppe besteht aus elementaren Operatoren, die eine elementare Mikrocontroller-Anweisung implementieren. Durch die Programmierung mit solchen Operatoren wird sichergestellt, dass das Programm auf Assembler-Ebene entwickelt wird. Im Algorithmus werden diese Operatoren in normaler (nicht fetter) Schriftart angezeigt.

    Die zweite Gruppe besteht aus Makrooperatoren, die beim Kompilieren in einen Satz notwendiger elementarer Mikrocontroller-Anweisungen umgewandelt werden. Mit Makrooperatoren können Sie komplexere Transformationen, einschließlich Multibyte-Transformationen, in bequemer Form durchführen.

    Algorithmusanweisungen werden hauptsächlich in „Field“-Objekte geschrieben, bedingte Sprünge werden durch das „Condition“-Objekt implementiert und bedingungslose Sprünge werden durch das „Object“-Objekt implementiert.

    JMP-Vektor.“ Das Format zum Aufzeichnen von Operatoren unterscheidet sich erheblich vom klassischen Assembler. Es basiert auf einem visuell-funktionalen Prinzip und enthält ein Bild der ausgeführten Aktion. Das Schreiben von Anweisungen muss dem vom Compiler akzeptierten Muster entsprechen.

    Die folgende Tabelle zeigt Vorlagen für alle möglichen Elementaroperatoren für AVR-Mikrocontroller. Es ist zu beachten, dass einige einfache Mikrocontrollertypen einen unbekannten Satz enthalten.

    Das „#“-Symbol im Operatormuster setzt eine Konstante voraus, die entweder direkt oder als algebraischer Ausdruck dargestellt wird, „Rd“ und „Rr“ sind Arbeitsregister, „Pn“ ist ein Eingabe-Ausgabe-Register.

    Die Operatoren werden in Tabellenform dargestellt.

    Operandenkommentar

    R Arbeitsregister, Standard oder im Abschnitt Arbeitsregister deklariert: (...)

    # Konstante (...)

    SRAM Var Variable im SRAM-Abschnitt deklariert: (...)

    EEPROM Var Variable im EEPROM-Abschnitt deklariert: (...)

    [#] Direkt adressierbare SRAM-Zelle

    [X] SRAM-Zelle, die indirekt von X angesprochen wird

    [--X] SRAM-Zelle indirekt adressiert, zusammen mit X mit Vordekrement

    SRAM-Zelle indirekt in X mit Post-Inkrementierung adressiert

    [Y] SRAM-Zelle, die indirekt von Y angesprochen wird

    [--Y] SRAM-Zelle indirekt adressiert, Y mit Predekrement



    SRAM-Zelle indirekt in Y mit Post-Inkrementierung angesprochen

    In Y indirekt adressierte SRAM-Zelle mit Adressoffset von # Bytes

    [Z] SRAM-Zelle, die indirekt von Z angesprochen wird

    [--Z] SRAM-Zelle indirekt adressiert, Z-vordekrementiert

    SRAM-Zelle indirekt in Z mit Post-Inkrementierung adressiert

    In Z indirekt adressierte SRAM-Zelle mit Adressoffset von # Bytes

    P-I/O-Register (...)

    EE[#] Direkt adressierbare EEPROM-Zelle

    Mit (...) gekennzeichnete Operanden können als Multibyte deklariert werden. Die Ersetzung von Operanden unterschiedlichen Formats ist zulässig. Wenn außerdem der Operand, der das Ergebnis der Operation empfängt, kürzer als ein anderer ist, wird die Dimension der Operation auf die kleinste beschränkt, andernfalls werden die fehlenden Bytes mit Nullen aufgefüllt. Es ist zu beachten, dass für die Korrektheit der Operation bei Größen, deren Vorzeichen berücksichtigt wird, beide Operanden das gleiche Format haben müssen, da sonst die negative Zahl verfälscht werden kann. Lediglich das Format der Operanden in Makrobedingungen muss gleich sein.

    Indirekt adressierende Operanden sind Einzelbyte-Operanden. Multibyte-Operationen mit indirekter Adressierung erfordern eine Konvertierung ihres Formats. Dazu müssen Sie dem Eintrag einen Doppelpunkt und eine Formatdeklaration hinzufügen, zum Beispiel:

    #hAB3E->[Y]:Wort

    Eine solche Makroanweisung wird in die folgende Anweisungsfolge umgewandelt:

    Bei Multibyte-Makrooperatoren, mit Ausnahme von Rechtsverschiebungen, beginnen Aktionen beim Low-Byte (bei Rechtsverschiebungsoperatoren beim High-Byte). Vor diesem Hintergrund gibt es Einschränkungen hinsichtlich der Möglichkeit, Makrooperationen mit indirekter Adressierung zu erstellen:

    Für Operationen, die beim Low-Byte beginnen, ist es nicht möglich, vorab dekrementierte Operanden zu verwenden, zum Beispiel: [--X]:Word+24000

    Für Operationen, die beim höchstwertigen Byte beginnen (Rechtsverschiebungen), ist es nicht möglich, Post-Inkrement-Operanden zu verwenden, zum Beispiel: :Int24>>

    Darüber hinaus ist es nicht möglich, einen Multibyte-Makrooperator mit dem Operanden [X] zu erstellen, da es im AVR-Befehlssatz keine indirekte Offset-Adressierung für das X-Register gibt (

    ). Verwenden Sie oder [--X].

    Wenn das Erstellen einer Makrooperation nicht möglich ist, zeigt der Compiler die Meldung an: „

    Eine solche Makrooperation kann nicht erstellt werden“ („Eine solche Makrooperation kann nicht implementiert werden“).

    Makroanweisungen werden ausschließlich in „Field“-Objekten geschrieben. Vorlagen möglicher Makrooperatoren sind in der Tabelle aufgeführt:

    Vorlagenkommentar

    * -> * Kopieren

    * + * Arithmetische Addition

    * - * Arithmetische Subtraktion

    * & * Bitweise UND-Verknüpfung

    * ! * Bitweise ODER-Verknüpfung

    * ^ * Bitweise „Exklusiv-ODER“-Verknüpfung

    * Zurücksetzen (Null schreiben)

    * ++ Inkrement

    * – Dekrementieren

    - * - Bitinvertierung

    * >> Logische Verschiebung nach rechts

    > * >> Logische Verschiebung nach rechts mit Übertrag

    ± * >> Arithmetische Rechtsverschiebung

    << * Логический сдвиг влево

    << * < Логический сдвиг влево с переносом

    Bei Verwendung von Operanden, die zum EEPROM gehören, lädt der Compiler automatisch den zum Lesen und Schreiben erforderlichen Code. Es ist zu beachten, dass bei einem Schreibvorgang in das EEPROM das Warten auf das Ende des Schreibvorgangs im Code enthalten ist. Dies kann bei der Arbeit einige Millisekunden dauern.

    Beim Kompilieren werden Makroanweisungen in einen Satz elementarer Mikrocontrolleranweisungen umgewandelt. In diesem Fall werden zur Implementierung eines solchen Satzes in der Regel die Zwischenregister r16 und r17 verwendet. Um Missverständnisse zu vermeiden, wird daher bei der Verwendung von Makrooperatoren davon abgeraten, diese Register zu verwenden. In Interrupt-Verarbeitungsroutinen ist es ratsam, deren Inhalte zunächst auf dem Stapel zu speichern.

    Wenn es sich bei einem Makrooperator um eine Operation mit einer unmittelbaren Konstante handelt, ist es in diesem Fall sinnvoller, in der oberen Hälfte deklarierte Arbeitsregister zu verwenden. Andernfalls werden Zwischenanweisungen verwendet, um Teile der Konstante in das Register r16 zu laden. Dies kann zu einer Vergrößerung des Codes bis hin zur Verdoppelung führen, obwohl eine solche Eingabe nicht fehlerhaft ist.

    Es ist zu beachten, dass die von Makrooperationen ausgelösten Flags für ähnliche Operationen auf der Ebene elementarer Mikrocontroller-Operationen unzureichend sind und dass ihre Verwendung für Übergangsbedingungen falsch ist.

    Um Zyklen zu implementieren, ist es praktisch, die Makrobedingung „R--“ zu verwenden. Dabei wird ein Einzelbyte-Register dekrementiert und verzweigt, wenn das Ergebnis ungleich Null ist.

    Objekt „Label“ – (Label)

    Es handelt sich um einen vertikalen Strich innerhalb eines Anweisungsblocks und einen optionalen Namen links oder rechts vom Strich. Die Bezeichnung soll Stellen im Algorithmus angeben, an denen bedingte und unbedingte Übergänge möglich sind. Um es einzugeben, müssen Sie entweder den Menüpunkt „Objekt\Label“ auswählen oder die Tasten „Alt+L“ drücken oder auf die Schaltfläche mit dem Buchstaben L in der Symbolleiste klicken. Bei Bedarf kann einem Label eine bestimmte Programmadresse zugewiesen werden. Dazu müssen Sie vor dem Namen (falls vorhanden) eine Konstante oder einen algebraischen Ausdruck schreiben, der diese Adresse definiert. Um die Position des Etikettennamens umzukehren, drücken Sie die „Tab“-Taste.

    Unterbrechungsdienstmarken.

    Zur Vereinfachung der Programmierung unterstützt Algorithm Builder eine spezielle Art von Labels – Interrupt-Service-Labels. Um einen Interrupt auf die übliche Weise zu bedienen, ist es notwendig, einen unbedingten Sprungcode zum entsprechenden Unterprogramm an der Adresse des Interrupt-Vektors zu platzieren. Bei Verwendung einer speziellen Art von Labels erledigt der Compiler dies alles automatisch. Dazu müssen Sie dem Label (Scheitelpunkt) einen Standard-Interrupt-Namen geben und es durch Drücken der Taste „F2“ als Makroformation markieren. Der Name wird dann fett angezeigt. Das gleiche Ergebnis erreichen Sie einfacher, wenn Sie den Menüpunkt „Objekte\Unterbrechungsvektoren\...“ auswählen.

    Sobald mindestens ein solches Label gefunden wurde, füllt der Compiler den freien Platz der Interrupt-Vektoren mit dem Rückkehrcode der Interrupt-Service-Routine („RETI“) und platziert an der entsprechenden Interrupt-Adresse den Code für einen bedingungslosen Sprung dorthin Etikett.

    „Vertex“-Objekt – (oben im Block)

    In seiner Darstellung und seinem Zweck ist es völlig identisch mit der Markierung, gibt jedoch im Gegensatz zu dieser die Position des Blocks auf der Arbeitsebene an und ist immer dessen Anfang. Um einen Scheitelpunkt zu erstellen, müssen Sie entweder den Menüpunkt „Objekt\Vertex“ auswählen oder die Tasten „Alt+V“ drücken oder auf die Schaltfläche mit dem Buchstaben V in der Symbolleiste klicken oder die Maus verwenden, indem Sie mit der linken Maustaste klicken Taste an der gewünschten Stelle im Feld in Kombination mit den Tasten „

    Alt+Strg+Umschalt.“

    Objekt „Bedingung“ – (bedingter Sprung)

    Strukturell am komplexesten. Das Objekt ist für die Implementierung bedingter Übergänge vorgesehen. Es handelt sich um einen ovalen Umriss, in den die Übergangsbedingung und ein möglicher Vektor in Form einer gestrichelten Linie mit einem Pfeil am Ende geschrieben sind, neben dem sich optional ein Vektorname befindet. Damit ein Vektor ordnungsgemäß adressiert werden kann, muss sein Ende entweder auf einem Label, einem Scheitelpunkt oder einem Segment eines anderen Vektors enden oder den Namen des adressierten Labels tragen.

    Die Vektorbearbeitung erfolgt entweder mit den Richtungstasten in Kombination mit der „Alt“-Taste oder mit der Maus bei gedrückter linker Taste, ebenfalls in Kombination mit der „Alt“-Taste. Um von der Bearbeitung einer Bedingung zur Bearbeitung des Vektornamens und anschließender Änderung seiner Position in die entgegengesetzte Richtung zu gelangen, drücken Sie die „Tab“-Taste. Um ein neues Objekt einzugeben, müssen Sie entweder den Menüpunkt „Objekt\Bedingung“ auswählen, die Tasten „Alt+C“ drücken oder auf die Schaltfläche mit dem Buchstaben C in der Symbolleiste klicken.

    Bedingte Operatoren zum Überspringen der nächsten Anweisung.

    Für das Objekt „Bedingung“ gibt es drei mögliche Gestaltungsmöglichkeiten:

    1. Der Objektvektor fehlt und der Vektorname fehlt entweder oder enthält das reservierte Wort „Skip“. In den folgenden Beispielen wird die Operation ausgeführt:

    „[X]->r2“ wird übersprungen, wenn die Bedingung „r1=r2“ wahr ist.

    „[X]->r2“

    2. Die Umkehrbedingung wird geschrieben, der Vektor fehlt und die zu überspringende Anweisung wird als Name des Vektors eingegeben. In diesem Fall wird das Objekt wie folgt interpretiert: Führen Sie die Anweisung aus, wenn die Bedingung wahr ist. Die folgenden Beispiele sind völlig identisch.

    „[X]->r2“

    3. Wenn die nachfolgende Anweisung ein kurzer bedingungsloser Sprung (RJMP) ist, darf eine inverse Bedingung geschrieben werden, und der Vektor dieser Bedingung wird als nachfolgender bedingungsloser Sprung interpretiert, sodass das Objekt wie folgt interpretiert wird: Machen Sie einen Kurzschluss bedingungsloser Sprung, wenn die Bedingung erfüllt ist. Nachfolgend finden Sie drei völlig identische Beispiele.

    R1=R2-Pfeil zu der Linie, zu der Sie gehen müssen

    Debugging-Umgebung AVR STUDIO.

    Die Debug-Anwendungsentwicklungsumgebung für Mikrocontroller der AVR-Familie enthält:

    • Assembly-Übersetzer (Atmel AVR Macroassembler)
    • Debugger
    • Oberstufensoftware zur Unterstützung der In-System-Programmierung (ISP)

    Die Debugging-Umgebung unterstützt die Ausführung von Programmen sowohl in Form von Assemblertext als auch in Form von Quelltext der C-Sprache. Die AVR-Debugging-Umgebung unterstützt alle Arten von AVR-Mikrocontrollern und verfügt über zwei Betriebsmodi:

    • Softwaresimulationsmodus
    • Steuermodus für verschiedene Arten von Atmel-In-Circuit-Emulatoren (In-Circuit-Emulatoren)

    Die Benutzeroberfläche ändert sich nicht, wenn Sie zwischen den Debugging-Modi wählen.

    Mit der Debugging-Umgebung von AVR STUDIO können Sie Anwendungen mithilfe des integrierten Softwaresimulators oder eines externen In-Circuit-Emulators debuggen. Beim Start wird das Vorhandensein eines Emulators an einem der seriellen Ports des Computers automatisch erkannt. Wenn ein Emulator erkannt wird, wird das grundlegende Debugging-System ausgewählt. Wenn kein Emulator vorhanden ist, wird das Debugging auf dem integrierten AVR-Softwaresimulator durchgeführt.

    Mit einem In-Circuit-Emulator können Sie eine Anwendung direkt auf dem fertigen Produkt debuggen. Beim Arbeiten in Echtzeit ist das Debuggen im Emulator schneller als in einem Softwaresimulator. Informationen zum aktuellen Debug-Modus werden in der AVR STUDIO-Statusleiste angezeigt

    AVR STUDIO bietet zwei Schritt-für-Schritt-Modus-Befehle zum Debuggen von Programmen: Step Over und Trace into. Der Unterschied zwischen ihnen besteht darin, dass der Step Over-Befehl nicht in Unterprogrammen funktioniert.

    Um den Betrieb des Programms zu überwachen, steht ein Modus zum Öffnen mehrerer Fenster zur Verfügung; Fenster können über das Menü „Ansicht“ oder über Schaltflächen in der Symbolleiste geöffnet werden.

    Die Debugging-Umgebung unterstützt die folgenden Modi und MK-Knoten nicht

    • Analog-Digital-Wandler
    • analoger Komparator
    • Echtzeituhrmodus
    • Energiesparmodus

    Für die Hardware-Unterstützung von AVR STUDIO verwenden Sie

    • Starter- und Spezialentwicklungskits
    • In-Circuit-Programmierer
    • In-Circuit-Emulatoren

    Während des Debuggens können Sie internes RAM und EEPROM initialisieren (in einer Übersetzungsdatei im .EEP-Format) oder deren Inhalte im .HEX-Format speichern. Verwenden Sie dazu den Eintrag „Up/Download Memory“ im Menü „File“.

    Über das Menü „Datei“ können Sie von anderen Benutzern erstellte Firmware öffnen, geschriebene Programme drucken, den Status von Geräten überprüfen, die an die serielle Schnittstelle angeschlossen sind. COM-Port-Einstellung.

    Das Menü „Werkzeug“ enthält Befehle zum Starten von Steuerungsprogrammen

    Das Menü „Ansicht“ enthält Betrachter:

    • Speicherzellen programmieren
    • Datenspeicherfenster Daten
    • EEPROM-Fenster Eeprom
    • Registriert Ein-/Ausgabeports im Fenster Neues IO
    • Programmfortschritt Speicherfenster
    • Überwachen von Änderungen in Watch-Variablen
    • Anzeige des Zustands des Programmzählers, des Stapelzeigers auf den Inhalt des Statusregisters SREG und der Indexregister X, Y und Z der aktuellen Ausführungszeit des Mikrocontroller-Kerntaktprogramms im Prozessorfenster
    • Anzeigen des Status von Registern (Wenn sich während der Programmausführung im nächsten Zyklus der Wert eines Registers ändert, wird dieses Register rot hervorgehoben. Wenn außerdem im nächsten Zyklus der Wert des Registers gleich bleibt, dann die Farbe Die Hervorhebung wird entfernt. Eine ähnliche Kontrolle über Änderungen wird im Windows-Eingabe-/Ausgabespeicher und in den Variablen angewendet.)
    • Überwachung des Status des I/O-Fensters von Peripheriegeräten

    Das Menü „Bearbeiten“ ähnelt einem Standard-Texteditor.

    Mit dem Windows-Menü können Sie die Platzierung der sich öffnenden Fenster anpassen

    Die Hilfe enthält Referenzinformationen auf Englisch

    Mit project können Sie neue Projekte öffnen, erstellen und deren Inhalte speichern

    Das Debug-Menü ermöglicht Ihnen dies

    breakpoint steuert die Auswahl der Haltepunkte

    Trace& Trigger führen eine Ablaufverfolgung durch

    Mit dieser Option können Sie ein Programm simulieren oder emulieren

    Erstellen eines Programms

    Öffnen Sie AVR Studio 3.56

    Öffnen Sie das Menü „Neues Projekt“ im Projektmenü im angezeigten Fenster „Neues Projekt erstellen“ und geben Sie den Projektnamen in die Zeile „Projektname“ ein. Derselbe Name wird automatisch in das ursprüngliche Dateifenster kopiert

    Um den Ordner zu bestimmen, in dem sich das Projekt befindet, klicken Sie auf die Schaltfläche.... Rechts neben dem Speicherortfenster im sich öffnenden Fenster „Ordner auswählen“ müssen Sie in der aktuellen Ordnerzeile den Namen des Ordners eingeben. Und klicken Sie auf „Auswählen“ und Sie kehren zum Fenster „Neues Projekt erstellen“ zurück

    Wählen Sie dann den Projekttyp Atmel AVR Assembler à Weiter à Deug-Plattform und Gerät auswählen à Debug-Plattform à Avr-Simulator im Gerätefenster Mikrocontroller-Typ, wenn die Frequenz höher ist, erscheint eine Meldung

    Damit aktivieren wir das Assembler-Fenster mit dem Projekt

    Symbol ". „Assembler-Direktive

    „;“ Kommentare, die den Betrieb des Programms nicht beeinträchtigen

    F2 Suche nach Befehlsmarkierungen im Programm

    Strg + F2 setzt Debugger-Marker

    F7: Stellen Sie das Programm zusammen und speichern Sie es im . verhexen

    F11-Debugging im offenen Arbeitsbereich

    Umschalt +F5 – Zurücksetzen zurücksetzen

    Strg + F5 – Breakback, Stoppen des Debuggens

    F9 – Haltepunktbezeichnung festlegen

    F5 – Programmausführung bis zum Haltepunkt

    Mit Strg + F10 wechseln Sie zur Ausführung des mit dem Cursor markierten Befehls

    Senden und überprüfen Sie die Rechtschreibung.

    Projekt à Assemble à Projektausgabe Dieses Fenster enthält Informationen über die Anzahl der Codewörter sowie Daten über das Vorhandensein von Fehlern und andere Informationen. Um Fehler zu lokalisieren, platzieren Sie den Mauszeiger auf der Meldung und doppelklicken Sie mit der linken Maustaste. Dadurch wird der Cursor auf die Zeile gesetzt, die die Fehlermeldung verursacht hat, und diese Zeile wird farblich hervorgehoben. Wenn der Quell-Assembly-Text ein Segment nichtflüchtiger Daten enthielt, wird während der Übersetzung eine Datei mit der Auflösung .eer erstellt. Diese Datei enthält Daten für das interne EEPROM des MK und hat das gleiche Format wie die Ausgabedatei.

    Das Ergebnis der Übersetzung ist die Ausgabedatei

    Debuggen des Projekts

    Zum Debuggen ist eine Objektdatei erforderlich

    Der Debugger wird durch die Prozedur gestartet

    Erstellen und ausführen Sie es über das Bedienfeld

    Zuerst wird die Eingabe-Assembly-Datei übersetzt, wodurch eine Objektdatei generiert wird. Anschließend wird die Objektdatei im Debugger abgelegt.

    Für ältere Versionen gibt es eine Option zum Übersetzen der Objektdatei; mit dieser Option können Sie die Quelldatei des Programms nicht direkt im Debugger bearbeiten

    Um eine Objektdatei zu generieren, müssen Sie das Format der Übersetzer-Ausgabedatei angeben

    Wenn Sie den Debugger zum ersten Mal starten, wählen Sie im Fenster Option à Simulator Option den Typ des Mikrocontroller-Geräts und die Frequenz der Prozessorkernfrequenz aus

    Während des Debuggens kann das Programm ausgeführt werden

    Vollständiges Debuggen gemäß Schritt

    Im Schritt-für-Schritt-Modus debuggen àtrace

    Verfolgung von Debug-Funktionsblöcken in mehreren Schritten

    Bis zum vom Cursor angezeigten Punkt debuggen àRun to Cursor

    Durch Haltepunkte Haltepunkte à Haltepunkt umschalten

    Verwenden Sie zum schrittweisen Debuggen die Befehle

    Ster Over (funktioniert nicht in Unterprogrammen) und Trace in

    Das Programm wird im Menü Ansicht, Register, Peripheriegeräte im E/A-Windows-Fenster angezeigt

    Vorlesung 15 Programmierer Programmierer XXX prog

    Der Programmierer unterstützt die folgenden Dateiformate:

    Standard/Erweiterter Intel HEX

    Sie sind für die Programmierung vorgesehen:

    · Speicher Chips,

    · internes EPROM von Mikrocontrollern,

    · programmierbare Logikchips (nur für ChipProg+, MultiProg).

    Der Programmierer ist für die Zusammenarbeit mit einem IBM PC-kompatiblen Computer konzipiert. Die Kommunikation mit dem Computer erfolgt über einen Standard-Druckeranschluss.

    So verwenden Sie den Programmierer:

    · Entfernen Sie die Mikroschaltung aus dem Programmierblock (falls vorhanden).

    Eingerichtet).

    · Schließen Sie das Programmiergerät an ein 220-V-Wechselstromnetz an.

    Schalten Sie für MultiProg den Schalter am Programmiergerätgehäuse ein

    Ernährung. Die grüne LED sollte aufleuchten und die Versorgung anzeigen.

    Stromversorgung des Programmiergeräts.

    Schließen Sie das Programmiergerät an einen Standarddruckeranschluss an

    Computer über das im Lieferumfang enthaltene Kommunikationskabel

    Programmierer

    · Starten Sie die xxxProg-Supportsoftware auf Ihrem Computer.

    · Stellen Sie in der Softwareunterstützung den erforderlichen Mikroschaltungstyp ein.

    · Installieren Sie den Mikroschaltkreis im Sockel des Programmiergeräts (Mikroschaltkreis).

    entsprechend der Zeichnung auf dem Gehäuse in die Steckdose eingebaut werden

    Programmierer).

    · Führen Sie die erforderlichen Aktionen mit der Mikroschaltung durch. Wenn drin

    Während der Arbeit mit der Mikroschaltung leuchtet das Gehäuse des Programmiergeräts rot

    Die „ALARM“-LED und eine Warnmeldung werden auf dem Computerbildschirm angezeigt

    Meldung über die Auslösung der Stromschutzschaltung, das bedeutet das

    Die Mikroschaltung ist defekt.

    Bevor Sie den Programmierer ausschalten oder den Chiptyp wechseln

    Es ist notwendig, die Mikroschaltung aus der Steckdose zu entfernen.

    · Schalten Sie den Programmierer aus.

    · Trennen Sie das Programmiergerät vom Computer.

    Die Kommunikationsschnittstelle zwischen Programmiergerät und Computer ist so konzipiert, dass sie nicht nur die Belastung des Computeranschlusses minimiert, sondern auch das Umschalten zwischen Programmiergerät und Computer in beliebiger Reihenfolge ermöglicht.

    In Bezug auf die Interaktion mit Mikroschaltungen ist die xxxProg-Software nach dem klassischen Programmierschema „Datei“ – „Puffer“ – „Chip“ aufgebaut. Speicherpuffer sind in der Programmiersoftwareunterstützung implementiert. Der Speicherpuffer ist eine Zwischenverbindung zwischen der Datei und dem Chip:

    Datei<---->Puffer<---->Chip

    Eines der Hauptelemente des Programmierers sind Speicherpuffer. Ein Speicherpuffer ist ein Objekt zum Speichern von Daten. Der Speicherpuffer des Programmiergeräts ist eine Zwischenverbindung zwischen der Datei und dem Chip.

    xxxProg implementiert eine flexible Speicherpufferstruktur:

    · Es ist möglich, unendlich viele aktive Puffer zu erstellen.

    Die Mengenbegrenzung kann nur der Mangel an Freiem sein

    Speicher im System.

    Jeder Puffer enthält eine bestimmte Menge

    Unterschichten Jede Unterschicht ist einem bestimmten Adressraum zugeordnet

    installierte Mikroschaltung.

    Zum Beispiel,

    - Für den Intel 87C51FA-Chip enthält jeder Puffer

    zwei Unterschichten: Codespeicher-Unterschicht und Codetabellen-Unterschicht

    (Verschlüsselungstabelle);

    - Beim Microchip PIC16F84-Chip hat jeder Puffer seinen eigenen

    besteht aus drei Unterschichten: Codespeicher-Unterschicht und Datenspeicher-Unterschicht

    EEPROM, Benutzer-ID-Unterschicht.

    · Es ist eine unbegrenzte Anzahl von Sichtfenstern zulässig

    den Inhalt jedes Puffers.

    Diese flexible Implementierung des Puffersystems ermöglicht es dem Benutzer, mehrere unterschiedliche Datensätze sehr einfach zu manipulieren, indem er sie in verschiedenen Puffern ablegt. Alle Dateivorgänge (Laden/Speichern von Dateien) interagieren nur mit dem Puffer. Diese. Sie können eine Datei in einen Puffer laden und den Inhalt des Puffers auch in einer Datei speichern. Die Interaktion mit der Mikroschaltung ist ähnlich aufgebaut. Alle Manipulationen am Chip (wie Lesen, Schreiben, Vergleichen) nutzen nur einen Puffer. So können Sie den Chip in einen Puffer einlesen, den Inhalt des Puffers in den Chip schreiben, den Inhalt des Puffers und des Chips vergleichen usw. Eine direkte Interaktion zwischen der Datei und dem Chip ist nicht zulässig.

    Der Programmierer implementiert ein System von Leistungstests, das es ermöglicht, Hardwarefehler bereits in der Initialisierungsphase zu erkennen und so mögliche Ausfälle von Benutzer-Mikroschaltungen zu verhindern.

    Das Testsystem ist in zwei Gruppen unterteilt:

    · Das Testen der Qualität der Kommunikation mit der Programmierausrüstung umfasst nur das Testen der Qualität der Kommunikation mit der Programmierausrüstung.

    · Vollständige Prüfung der gesamten Programmierhardware. Beinhaltet die vollständige Prüfung der gesamten Programmierhardware. Es wird sofort ausgeführt, nachdem die Ausführung der ersten Testgruppe abgeschlossen ist. Bei der Durchführung vollständiger Tests erscheinen am Test-DIP-Block des Programmiergeräts verschiedene Testsignale, die die darin installierten Mikroschaltungen beschädigen können. Daher wird der Benutzer vor der Aktivierung des Tests darauf hingewiesen, dass der Chip aus dem Block entfernt werden muss.

    Stellt das Testsystem einen Hardwaredefekt fest, wird der Benutzer vor dem Vorfall gewarnt und eine weitere Arbeit mit dem Programmierer ist nicht möglich.

    Fortsetzung des Themas:
    Betriebssystem

    Nachfolgend sind die wichtigsten 1C-Objekte aufgeführt, die beim Arbeiten mit verwalteten Formularen verwendet werden. Es werden kurze Codebeispiele bereitgestellt, um die traditionelle Datennutzung zu veranschaulichen ...