www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik GNU-Compiler: BLB-Bits zur Laufzeit setzen setzen


Autor: Martin Raffelsieper (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Zusammen!

was mache ich denn nun wieder falsch:

der Aufruf

#include <avr/io.h>
#include <avr/ina90.h>
#include <avr/interrupt.h>
#include <avr/signal.h>
#include <avr/pgmspace.h>
#include <avr/boot.h>
#include <avr/eeprom.h>


char bits;

    bits =....;
    boot_lock_bits_set(bits);

resultiert in wüsten Beschimpfungen des Compilers an meine Code:
'BLB01' undeclared (first use in this function)
'BLB02' undeclared (first use in this function)
'BLB11' undeclared (first use in this function)
'BLB12' undeclared (first use in this function)

muss ich denn noch mehr AVR-Header einbinden oder mache ich nur den
Aufruf falsch??


Gruß Martin

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die hat Eric B. Weddington im boot.h verwendet, aber vergessen zu
definieren.


Peter

Autor: Martin Raffelsieper (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
was muss ich denn da machen? selber  etwas definieren,

und wenn ja was??

Gruß Martin

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Genau.

Datenblatt zur Hand nehmen und selber definieren.


Wenn ich das richtig verstanden habe, lassen die sich aber nicht wieder
löschen. Ist also eine Einbahnstraße.


Peter

Autor: Jörg Wunsch (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vermutlich hat Eric erwartet, daß die jeweiligen <avr/ioXXX.h> Files
diese Bits definieren.

Martin, schreib mal einen Bugreport auf savannah.nongnu.org dafür.

Autor: Martin Raffelsieper (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Jörg, ich habe leider keine Zeit, mich durch die
savannah.nongnu.org zu wühlen, um einen Bug-Report abzusetzen.

Deshalb meine Bitte an Dich: Copy and paste mit folgemdem Text:


Bug Report:

"Problem" by using the library function "boot_lock_bits_set"

ATmega64, maybe more cpu's, too

GCC-Compiler, version 3.3.1

#include <avr/io.h>
#include <avr/ina90.h>
#include <avr/interrupt.h>
#include <avr/signal.h>
#include <avr/pgmspace.h>
#include <avr/boot.h>
#include <avr/eeprom.h>


char bits;

    bits =....;
    boot_lock_bits_set(bits);

results in some error code:
'BLB01' undeclared (first use in this function)
'BLB02' undeclared (first use in this function)
'BLB11' undeclared (first use in this function)
'BLB12' undeclared (first use in this function)

it looks like a missing define for BLBxy.

Greetings from Germany
Martin





Gruß Martin

Autor: Jörg Wunsch (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: Martin Raffelsieper (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ok!

Autor: Henrik (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mal rein theoretisch:
Es gibt ja von Atmel diesen DES-Bootloader. Damit soll man ja updaten
können, ohne dass jemand an den Quellcode kommen kann. Welchen Sinn
macht das aber, wenn die Lockbits deaktiviert sein müssen, damit der
Loader schreiben kann? Oder kann der Bootloader sogar schreiben, wenn
der Schreibschutz aktiviert ist (wohl kaum)?
Sonst könnte man den Bootloader ja updaten lassen und dann den
dechiffrierten Code aus dem Speicher holen. Oder schmeiss ich da ein
paar Sachen durcheinander?

Henrik

Autor: Martin Raffelsieper (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
tja, ich bin gerade dabei, diesen Bootloader auf GNU zu portieren, aber
kämpfe noch mit allerlei inkompatibiläten. Auf dem IAR-Compiler habe
ich ihn auch noch nicht zum laufen bekommen.

Deine Fragen werde ich daher erst in kürze beantworten können. Z.Z.

ich vermute, man kan die Lockbits schon irgend wie so setzen, dass man
das Ding nachflashen kann, ohne aber das Flash auslesen zu können.

Am besten hilfst du mir bei der Entwicklung, umso schneller kann ich
deine Fragen beantworten  :-)

Gruß Martin

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
"Oder schmeiss ich da ein
paar Sachen durcheinander?"

Ja.

Es gibt die Hardwarelockbits und nur die haben Einfluß auf
Programmierung per High-Voltage, SPI oder JTAG.
Die müssen also immer nach dem Brennen eines sicheren Bootloaders
gesetzt werden.

Dann gibt es die Softwarelockbits und nur die haben Einfluß auf den
SPM-Befehl. Die sind dann allerdings für die Ewigkeit, also fürs
Updaten völlig witzlos.


Peter

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.