PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : AVR bootloader: WIE vor Überschreiben schützen?



igelstein
08.02.2011, 10:21
zuersteinmal guten tag miteinander, hab mich gerade angemeldet.
suche seit längerem nach der antwort auf meine themen-frage. habe von deltawave ein board Atmega32 mit LCD-display, und (nicht nur) die schreiben, dass wenn man den bootloader versehentlich überschreibt, man dann nicht mehr über die RS232 programmieren kann.
ist ja ok, aber wie schütze ich den bootloader?
was kann ich sonst noch alles falschmachen (außer 230 volt an die platine anlegen O:) )? (hab das board noch NICHT ausprobiert, vorsicht ist die mutter...)
lg Marcel

Andree-HB
08.02.2011, 11:33
...solange man die Fusebits nicht verändert, und ausschliesslich über RS232 flasht kann man das Problem ausschliessen. Meines Wissens bekommt man einen Bootloader nur per ISP-Adapter übertragen (Daher auch das Henne/Ei-Problem)

igelstein
08.02.2011, 13:35
danke vorerst einmal, werde also die rs232, ohrstöpsel und schutzbrille verwenden.
lg von 48° 17' 54''N 15° 28' 15''E

radbruch
08.02.2011, 14:15
Dann kann ja nichts passieren ;)

Willkommen im RN-Forum.

igelstein
08.02.2011, 14:27
Willkommen im RN-Forum.

dankschön!
war grad auf pixelklecks' seite, werd dort grasen.
lg M.

chr-mt
08.02.2011, 16:48
Hi,
man kann den Bootloader auch per RS232 überschreiben, wenn das Programm groß genug ist und somit in den Speicherbereich des Bootloaders hineinragt.
Flasht man aus Versehen eine größere Datei zB. für einen Mega128 in einen Mega16, dann ist der Bootloader weg.
Um das zu verhindern kann man die Lockbits für
"LPM and SPM prohibited in Boot Section““ setzen.
Damit sind dann keine Schreibbefehle auf den Bootloader-Bereich mehr möglich.
Vorsicht, nach einem Chip Erase sind die Lockbits wieder gelöscht.
Also immer nach neuem Aufspielen des Bootloaders mittels ISP die Lockbits neu setzen.

Gruß
Christopher

igelstein
08.02.2011, 19:12
Um das zu verhindern kann man die Lockbits für
"LPM and SPM prohibited in Boot Section““ setzen.
......Vorsicht, nach einem Chip Erase sind die Lockbits wieder gelöscht.
Also immer nach neuem Aufspielen des Bootloaders mittels ISP die Lockbits neu setzen.

wo und wann steht das LPM...SPM...?
Chip Erase?


Gruß
Christopher


danke herzlich, Christopher, es grüßt ein greenhorn!
hab Dein "LPM...SPM" zitat gegoogelt, und sieheda:

http://www.alvidi.de/data_sheets/bootloader.pdf

chr-mt
08.02.2011, 20:08
Jep
Load Program Memory und Store Program Memory.
Eigentlich sollte es reichen nur den Schreibzugriff also SPM zu sperren.
Da ich das aber schon ein paarmal durch Schusseligkeit verwechselt habe, habe ich mir angewöhnt einfach beides zu sperren. :)

Da du sowieso nicht per ISP Programmer an das Board gehst, kannst du eigentlich auch nix verstellen.
Es ging mir nur grundsätzlich darum, daß man sich den Bootloader natürlich auch per RS232 zerschießen kann.
Vermutlich sind die Bootloader-Lockbits bei deinem Board sowieso gesetzt, wenn es mit installiertem Bootloader ausgeliefert wurde.

Chip Erase löscht den Chip, wie der Name schon sagt :)
Das EEProm wird auch gelöscht, falls nicht die EESAVE Fuse gesetzt ist.
(Preserve EEProm throuhg the Chip Erase cycle)
Solltest du also Werte im EEProm abgelegt haben, sind die nach einem Chiperase weg, es sei denn, diese Fuse ist gesetzt.
Außerdem löscht Chip Erase alle Lockbits. (Nicht die Fuses)
Du kannst den ganzen Chip zB. gegen das Auslesen sperren um unberechtigtes Kopieren deines Programms zu verhindern.
Nach einem Chip Erase geht das Lesen dann zwar wieder, da das Lockbit dafür gelöscht wurde, allerdings ist das Programm dann auch weg.
Nützt einem also nix mehr ;)

Eine recht gute Seite mit den Assemblerbefehlen findet man übrigens hier:
http://support.atmel.no/knowledgebase/avrstudiohelp/mergedProjects/AVRASM/AVRASM.htm

Unten mal ein Screenshot aus dem Avrstudio Programmer :

Gruß
Christopher

igelstein
09.02.2011, 09:44
danke, das war ausführlich. muss jetzt anscheinend statt Edgar Wallace abends mehr AVR-tut's lesen. außerdem einen schießstand mit LEDs, ICs und diversen progs installieren. lest halt bitte diverse ösische nachrichten...
ich meld mich, wenn ich soweit bin. nocheinmal danke!

igelstein
16.02.2011, 19:06
so, bin wieder - erfolgreich - da.
gelernt hab ich:
1. das ursprüngliche ("Hello World") und jedes andere boot-programm wird im chip gelöscht => erster schock.
2. es hat keinen sinn, stunden in AVR-studio oder Bascom zu probieren, das lämpchen zum blinken zu bringen. starte das board neu, warte die 5 sekunden und freu dich (???).
3. steck doch bitte die LED richtig gepolt hinein, sie wirds Dir danken.
ich habs ja gesagt: ein GREENHORN ist am werk; aber ich hab ja zeit.
danke Euch allen!

PICture
16.02.2011, 19:35
Hallo!

Ich kopiere mir immer alle "kostbare" Programme auf einen getrennten von der Festplatte Datenträger (z.B.CD) was vor fast allem Möglichen schützt. Einziges Nachteil: man muss die verlorene Datei wieder in den µC brennen. ;)

MfG

igelstein
17.02.2011, 10:11
danke, ja: zwei externe HDs freuen sich bei mir über jeden neuzugang. das war nicht das problem, sondern dass das LCD-display (feuer!)rot und leer vor sich hinglotzte und mir sagen wollte, dass da nix mehr ist. aber es WAR ja was drin, nur hab ichs nicht gesehen, weil ja keine textausgabe beim programm dabeiwar; hab nur ein lamperl mit PortC.0=1 und 0 blinken lassen. und auch das hat erst mit reset funktioniert. jetzt such ich einmal ein tutorial, das mir das innenleben so eines Atmega32 näherbringt. das datenblatt ist fies.
lg Marcel

oberallgeier
17.02.2011, 10:57
... jetzt such ich einmal ein tutorial ... Atmega32 ...Vielleicht bist Du schon darüber gestolpert, über dieses zu AVRs (http://www.mikrocontroller.net/articles/AVR-Tutorial) allgemein, bei großem Umfang recht übersichtlich aufgeteilt und dieses, eher für den m32 (http://www.rn-wissen.de/index.php/AVR-Einstieg_leicht_gemacht) - aber fast allgemeingültig.

igelstein
18.02.2011, 14:40
Vielleicht bist Du schon darüber gestolpert...
ja, bin ich, mit dem zweiten hab ich -erfolgreich- angefangen.
jetzt möcht ich aber wissen, was hinter den einzelnen pins steckt (z.b. wo steck ich einen sensor an und warum dort, was passiert da mit dem signal).
bisher war ich immer mit try&error unterwegs, aber mit ICs???
ich such halt nach einfachen (BASIC)-codes. vielleicht gibz hier bei RN was für mich.
lg und danke,
MarcAufmBerg O:)

oberallgeier
18.02.2011, 15:24
Na ja, hinter den einzelnen Pins steckt eine eher komplexe Schaltung, die in den meisten Dokumentationen zum Controller schön vorgestellt ist. Daran kann man dann das übliche TTL-Signal anschließen - Ausnahme: ADC. Das kennst Du ja schon aus den eben genannten Tutorials.

Zu den Sensoren gibts schon wieder dieses Gehirnfutter. (http://www.rn-wissen.de/index.php/Sensor) Dabei haben natürlich verschiedene Sensorarten unterschiedliche Signale. (http://www.rn-wissen.de/index.php/Sensor) Und ein nettes Basic-Beispielprogramm (http://www.rn-wissen.de/index.php/RN-Control#Basic_Beispieltestprogramm) gibts für den m32 auf der R N-Control-Seite.

igelstein
18.02.2011, 15:45
na seawas, tät man hier sagen.
das beispielprogramm schau ich mir genauer an, die tuts auch und und.
jedenfalls eine spannende sache.
lg
M

Richard
18.02.2011, 16:29
ich such halt nach einfachen (BASIC)-codes. vielleicht gibz hier bei RN was für mich.
lg und danke,
MarcAufmBerg O:)

Dann lade Dir Bascom Demo herunter, da sind für jeden einzelnen Befehl kleine Basic Beispiele dabei. Damit kann man sehr gut auch eigene Ideen "zusammen Kopieren".:-)

Gruß Richard

igelstein
18.02.2011, 16:36
he, was Ihr alles drauf habt!
BASCOM hab ich, hab damit auch schon das erste prog auf den a32 draufgespielt (über die RS232), aber das mit den beispielcodes ist eine gute idee.
gruß dem Richy und allen anderen!

Richard
18.02.2011, 18:59
he, was Ihr alles drauf habt!
BASCOM hab ich, hab damit auch schon das erste prog auf den a32 draufgespielt (über die RS232), aber das mit den beispielcodes ist eine gute idee.
gruß dem Richy und allen anderen!

Das ist Fein! Aber wenn Du einmal die letzten 3..4 Wochen hier im Foprum "Durchakkerst" wirst Du festellen das es etliche USER mit erheblichen Problemen bei Bascom und den MCS Boolloader gibt. :-(

Ich habe nur sehr kurzfristig aus purer Neugierde einen Bootloader installiert und getestet. Keinerlei Probleme dabei, aber auch keinerlei Erfahrungen gesammelt...:-( Ich besitze ein STK500, brauche also (vorerst) keinen Bootloader. Vorerst deswegen weil es sicher Arbeit spart per Funk und RS232 zu Testzwecken einen Bot neu zu Proggen....

Im Sinne der Allgemeinheit wäre es nett wenn Du Deine Erfahrungen Bascom>Bootloader> Einstellungen......zur Verfügung stellst.

Eher "alte Erfahrene" können sich oft nicht wirklich brauchbar in eher unerfahrene "Lehrlinge" hinein versetzen und erkennen dessen oft für erfahrene User nicht nachvollziehbare Fehler nicht. :-(

Gruß Richard

Richard
18.02.2011, 19:22
Noch einmal Richard. :-)

Ich habe seiner Zeit hier im Forum nach einem Bootloader gesucht, parallel dazu im Netz und bin beiderseits fündig geworden. es gibt etliche funktionierende "Freie" Bootloader. :-) Mein gut funktionierender ist zwar "Wech" = PC platt, aber das wird schon wieder. :-) Ansonsten aber halt abspeichern > Backup..... Wenn (ich) dazu nicht zu faul wäre. :-(

Gruß Richard

chr-mt
18.02.2011, 20:28
Hi,
noch zur Info,
der Bascom Bootloader arbeitet mit dem X-Modem Protokoll.
Ändert man das anfängliche Handshake (PC sendet eine 123, Controller antwortet mit einer 123 etc.) um, kann man zB. aus einem Menü heraus, oder mit einem Tastendruck beim Starten den Bootloaer starten.
Man braucht dann zum Flashen nur ein beliebiges Terminalprogramm, das Dateitransfer mittels X-Modem unterstützt, egal was für ein Betriebssystem man verwendet.

Gruß
Christopher

igelstein
22.02.2011, 08:59
meine verehrung rundherum :-)
hab mich schon gewundert, dass ich als absolut-beginner mitten in die herde der alten bullen gelangt und trotzdem so rücksichtsvoll behandelt worden bin. ist nicht überall so, dank dafür.
hab übers wochenende meiner demnächst maturierenden schwägerin eine powerpoint-präs (thema "ist das normal?") gebastelt, daher meine mü-C abwesenheit (wo krieg ich das mü-zeichen her -zubehör-zeichentabelle oder ALT-code?) .

jetzt versuche ich, das LCD vom deltawave-board (16*2) zu aktivieren, hab ja den code ("hello world") hinausgeschmissen. muss also die einzelnen pins abfragen.
nach vielem googeln weiß ich vorläufig nur, dass das nicht genormt ist.
zb


'$LCD1
Config Lcdpin=Pin, Db4=Portc.4, Db5=Portc.5, Db6=Portc.6, Db7=Portc.7, Rs=Portd.7, E=Portd.6
Config Lcd=16*2
Cls
Corsor Blink
Lcd "Hello world!"
Locate 2, 1
Lcd "LCD Test"
End

nochwas: sollte ich in ein anderes forum übersiedeln?
lg
Marcel

oberallgeier
22.02.2011, 09:19
Hi, Marcel
willkommen im Forum.
... wo krieg ich das mü-zeichen her -zubehör-zeichentabelle oder ALT-code ...1) [Alt Gr][M] oder
2) links-unten-pick, [Ausführen...] klicken,
2) in die Kommandozeile eingeben [charmap][Ret], in der Zeichentabelle weiter unten das griechische Alfabet, jetzt der Guttenbergtrick (copy & paste) . . .
3) noch andere Möglichkeiten . . .
... nochwas: sollte ich in ein anderes forum übersiedeln ...Wenns Dir hier nicht gefällt? Nur, Dein Posting passt halt nicht direkt zum Threadtitel.

igelstein
22.02.2011, 09:24
µµµµµµµµµµµµµ :-)
danke!

igelstein
23.02.2011, 17:08
natürlich gefällts mir hier, siehe vorige seite. aber so wie Du sagst, es sollte halt schon irgenwie zampassen. und eine frage gibt die andere, besonders bei anfängern.
jetzt bin ich beim LCD:
https://www.roboternetz.de/phpBB2/viewtopic.php?p=539966#539966

oberallgeier
23.02.2011, 17:30
Hi, Marcel,

... Wenns Dir hier nicht gefällt ...Das war von mir dämlich ausgedrückt, sorry, es hätte der Hinweis auf den Threadtitel genügt (na ja, in den Forumregeln wird auch von mehreren verschiedenen Foren gesprochen). ABER - welcher Thread ist schon gradlinig und immer dem Titel entsprechend. Es gibt Threadersteller, hatte ich auch schon gemacht, die ändern den Titel mehrfach - je nach Bedarf.

Insgesamt zum Threadinhalt und -titel vielleicht mal die Forumregeln lesen (klick hier). (https://www.roboternetz.de/phpBB2/viewtopic.php?t=1340) Aber das Alles ist ja nicht wirklich wichtig, die Hauptsache Dir wird geholfen. Gradlinigkeit, titelkonform und so hilft aber beim Wiederfinden oder bei der Suche von anderen Leuten mit gleichen/ähnlichen Problemen.

igelstein
23.02.2011, 17:43
ist ok und mir klar, danke.
wie schließ ich das thema ab?
denn mir ist soweit geholfen worden, dass ich jetzt weiß, dass auch RS232 nicht vor dummheiten (überschreiben) schützt.
lg
Marcel