www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Anfängerfrage Atmel ausgelesenes .hex in .asm umwandeln


Autor: Rocco L. (kaufparkangucker)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

nachdem ich seit ein paar Tagen schon fleisig alles zum Heizungssteller 
Thermotronic gelesen habe war es nun so weit. Eben mal das Moped 
geöffnet und reingeschaut - und siehe da ein Atmega 169V ist zu sehen.
MISO, MOSI etc mit meinem USB-ISP Programmer verbunden - und siehe da, 
er wird erkannt. Das Hexfile aus dem Flashspeicher lies sich auch 
auslesen.

Meine Frage ist nun wie man aus diesem .hex wieder nachvolziehbaren Code 
generiert. Also mal davon ausgehend das das Dingens ursprünglich in 
Assambler geschrieben ist.

Benutzen tue ich das AVR Studio 4.xx

Vielen Dank für die Hilfe

fg Rocco

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Meine Frage ist nun wie man aus diesem .hex wieder nachvolziehbaren Code
>generiert.

Gar nicht. Das Hexfile ist das, was nach dem Assemblieren bzw. 
Compilieren übrigbleibt, d.h. es sind keine Labels oder Kommentare mehr 
drin. Alles was du tun kannst, ist das Hexfile in AVRStudio zu laden und 
dir das Assemblerlisting anschauen. Sehr aussagekräftig ist das aber 
nicht; um den Code zu verstehen wirst du eine Menge Zeit investieren 
müssen.

Autor: Rocco L. (kaufparkangucker)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für die schnelle Antwort.

Das ist aber schade...

Dachte das vieleicht jemand irgendwelche Erfahrungen mit Disasamblern 
hatt und die weiter geben könnte.

fg Rocco

Autor: Uwe (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi!
Suche mal nach REAVR24. Mit dem habe ich mal sowas gemacht.
Stelle es dir aber nicht so einfach vor, weil Konstanten und Texte nicht
unbedingt am Ende des Progs stehen müssen. Es braucht sehr viel Zeit um
das alles auseinanderzupussementieren.

Viel Erfolg, Uwe

Autor: Komischer Kauz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
"Gar nicht" halte ich für etwas übertrieben, ich sehe es ein wenig 
anders.

Allerdings hat unser Gast Recht, dass es eine Sauarbeit sein kann. Ich 
habe bzgl. AVRs keine Erfahrung mit Disassemblern, dafür jedoch mit 
verschiedensten anderen Systemen.

Das HEX-File 'besteht nur aus Zahlen'. Jeder Prozessorbefehl kann über 
so eine 'Zahl' angesprochen werden. Somit stehen in dem Hex-File nur 
alle Befehle, die abgearbeitet werden sollen (zusätzlich mit weiteren 
Parametern wie z.B. Werte, die statisch geladen werden).

Ein Assembler wandelt die schönen ASM-Mnemonics in die binären 
Prozessorbefehle. Ein Disassembler macht es halt umgegehrt. Das Problem 
ist nun, wie Gast schon schrieb, dass alle Labels, Kommentare, etc. weg 
sind. Statt z.B. "rjump loop" steht dann dort "rjump 0x0A0A" o.Ä. oder 
statt "add summe, zahl" steht dann dort "add r16, r17". Du musst also 
alles auseinandernehmen und verstehen.

Wenn dich nur ein Teil der Implementierung interessiert (um z.B. einen 
Bug zu beseitigen), dann finde ich Disassemblieren hervorragend. Sonst 
ist es, ab einer bestimmten Programmlänge, der Horror.

Autor: Michael_ (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bei einem Atmega 169V hat man schlechte Karten. Der ist mit Sicherheit 
in einer Hochsprache programmiert. Da gibt es unnötig viele 
Maschinenbefehle(Push/Pop...) und der Code ist sicher sehr umfangreich. 
Aber prinzipiell geht es. Auch oben genanntes Programm REAVR24 hilft 
gut.
Bei kleinen Speicher und Maschinenprogramm hat man Erfolg. Habe ich 
schon gemacht.
Bedingung sind jedoch gute Kenntnisse in der Assemblerprogrammierung!!
Wie groß ist denn die Datei? Evtl. hochladen?

Autor: Rocco L. (kaufparkangucker)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

das sind ja vilen Antworten - Danke für die Umfangreichen Informationen.

Die .hex ist 45kB groß. Ob ich die jedoch hochladen sollte - da bin ich 
mir nicht so sicher ob das in Ordnung geht - zumindest aus sicht des 
Herstellers.
Gern würde ich jedoch über eine "das näher erklähren".

In Assembler habe ich leider nur ganz wenig Erfahrungen - Hatte mal 
einen Taschenrechner von TI der ein Assembler Programm hatte was ihn 
befähigte CAS zu können. Da hatte ich damals etwas dran rum optimiert. 
Ansonsten bin ich dabei mir c++ bei zu bringen.
Daher bin ich für jede Hilfe natürlich sehr dankbar.

Es gibt ja schon einen laaaangen Thread hier über die Heizungssteller 
"Rondostat" - also warum nicht auch über diesen Thermotronik.

Wen es weiter interessiert - den Schaltplan für den Thermotronik gibts 
bereits hier im Forum.

Danke für eure Hilfe

fg Rocco

Autor: Marcus Kunze (marcusk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Die .hex ist 45kB groß
das sieht mir mehr nach der gesamt größe des Flash aus, wieviel ist 
davon belegt?

Autor: Knut Ballhause (Firma: TravelRec.) (travelrec) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Poste mal das .hex file. Ich bin mir sicher, daß Du nur einen Dummy-Dump 
wegen gesetzter Lockbits aulesen konntest. Damit kannst Du nichts 
anfangen, das sind nur aufeinanderfolgende Zifferngruppen.

>Es gibt ja schon einen laaaangen Thread hier über die Heizungssteller
>"Rondostat" - also warum nicht auch über diesen Thermotronik.

>Wen es weiter interessiert - den Schaltplan für den Thermotronik gibts
>bereits hier im Forum.

Kennste den: Beitrag "Preisgünstiger Heizungsregler bei Praktiker"

Autor: Michael_ (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Die .hex ist 45kB groß. Ob ich die jedoch hochladen sollte - da bin ich
>mir nicht so sicher ob das in Ordnung geht - zumindest aus sicht des
>Herstellers.
Zu bedenken ist eine Veröffentlichung schon. Aber der Hersteller hätte 
ja den Chip gegen Auslesen schützen können!
Also definiert er ihn als "öffentlich".
Wie denkt ihr darüber?
Ist sicher nicht nur für diesen Fall von Interesse.
Übrigens, kann man den EEPROM auch auslesen? Da sind vielleicht 
Konstanten usw. abgelegt.

Autor: Hannes Lux (hannes)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Aber der Hersteller hätte
> ja den Chip gegen Auslesen schützen können!
> Also definiert er ihn als "öffentlich".

Nööö, eine nicht abgeschlossene fremde Tür berechtigt mich noch lange 
nicht dazu, mich dahinter wie zu Hause zu benehmen.

> Wie denkt ihr darüber?

Wenn der MC nicht geschützt ist, dann lies ihn aus und ändere daran nach 
Herzenslust herum, vor einer Veröffentlichung solltest Du aber den 
Hersteller fragen. Das har jetzt nix mit Recht zu tun, sondern mit 
Anstand. Ich gehe aber davon aus, dass der Code geschützt ist und Du 
Blödsinn ausgelesen hast.

...

Autor: Rocco L. (kaufparkangucker)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

so, habe den Thermotronic wieder an den USB ISP gehangen und nochmal 
nachgesehen.
Folgende Lockbits sind gesetzt:
LB    Further Programming an Verification disabled
BLB0  No Lock on SPM and LPM in Application Section
BLB1  No Lock on SPM and LPM in Boot Section

Lockbit 0xFC

Da ich bisher nur mit den Fuses zu tun hatte weis ich nicht was die 
Lockbits bedeuten. Sicher weis das einer von Euch.

Bei den Fuses ist es so:
BODLEVEL  Brown out Detecktion disabled
Spien     "hat ein Häckchen und ein Fragezeichen"
BOOTSZ    Boot flasch size = 1024 Words Start Adress = $1C00
CKDIV8    "hat ein Häckchen"
SUT_CKSEL Int RC Osc.; Startuptime 6CK + 65 ms

^^Interesannt ist das an XTAL1 & 2 ein Uhrenquarz hängt. Wobei ich das 
mit dem Uhrenquarz eher vermute in der Anahme das alle Uhrenquarze 
dieses Zylinderförmige Gehäuse besitzen und man sie daran deutlich 
erkennt. Bitte berichtigt mich fals das totaler Humbug ist.


Was des .hex angeht sehe ich es so wie Hannes Lux. Ich denke auch das 
sich der Hersteller von dem Thermotronik nicht gleich im Kreise dreht 
wenn ich im stillen Kämmerlein an seinem Gerät herumbastel - anders siht 
es sicher aus wenn ich den Quelltext einfach mal so offenbare.

Ich möchte es deswegen mal so formulieren, wer Interesse hat mir das 
.hex zu erklähren kann sich gern bei mir per PN melden. Im gegebnteil - 
ich würde mich sogar sehr freuen wenn sich jemand meldet. Dazu einfach 
den blauen Link "kaufparkangucker" neben meinem Namen im Kopf dieses 
Antwortschreibens anklicken. Danke für das Verständniss.

Eigentlich kann ich doch bei den Lockbits im AVR Studio wählen was ich 
da einstellen möchte und im Hinterkopf habe ich da irgend was mit einem 
Programmer der mit mehr volt - oder so was in der Richtung - auch die 
Lockbits wieder ändern konnte.
Hat da einer einen Schaltplan oder einen Link für so einen Programmer? 
Ich weis leider nicht mehr wie das Zaubergrät hieß und weis somit gerade 
nicht wonach ich google fragen soll.

Die ganzen Links hier im Forum habe ich übrigens schon gelesen. Einer 
davon war mehr als mfangreich. Aber leider gings da vorallem um den 
Honeywll Thermostaten.

Hier mal ein Bild von meiner Platine (im Forum gefunden):
http://img407.imageshack.us/img407/8021/thermotron...
Und Der Schaltplan (auch hier im Forum gefunden)
https://www.mikrocontroller.net/attachment/29357/s...

Danke für Eure Ideen

fg Rocco

Autor: Hc Zimmerer (mizch)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Folgende Lockbits sind gesetzt:
> LB    Further Programming an Verification disabled
> [...]

Dieses Bit bekommst Du nur gelöscht, wenn Du den gesamten Chip löschst. 
Einzeln lässt es sich durch keine Programmierart rücksetzen.  Zu 
deutsch:  Vergiss den Flash-Dump.  Du bekommst keinen, der den 
tatsächlichen Inhalt widerspiegelt.

Autor: Johann L. (gjlayde) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die .hex kannst du zB mit avr-objdump nach Assembler umwandeln:
avr-objdump -m avr5 foo.hex -D -z > foo.disasm

für den ATmega169 (ist Architektur avr5).

Allerdiungs ist .hex ein "dummes" Format. Es weiß nicht, was und wo Code 
und wo Daten sind.

Johann

Autor: Rocco L. (kaufparkangucker)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Johann L. schrieb:
> Die .hex kannst du zB mit avr-objdump nach Assembler umwandeln:
>
>
> avr-objdump -m avr5 foo.hex -D -z > foo.disasm
> 
>
> für den ATmega169 (ist Architektur avr5).
>
> Allerdiungs ist .hex ein "dummes" Format. Es weiß nicht, was und wo Code
> und wo Daten sind.
>
> Johann

Habe mir gerade mal eine Einleitung zu avr-objdump angesehen:
http://www.rn-wissen.de/index.php/Assembler-Dump_e...
Ich hatte ja schon gesagt das ich Anfänger bin - wenn ich das sehe weis 
ich das ich wohl noch für viele Jahre Anfänger bleibe - weil ich 
verstehe nur Bahnhof :-(

Es will bstimmt auch keiner die.hex mal zum angucken haben oder? - mal 
abgesehen davon das ich es genau so sehe wie mizch und das .hex so eh 
nur unsinn enthält.

Somit ist wohl löschen und selber ein Code erzeugen die einzige 
Möglichkeit.
Das wird dann sicher ne gute Übung für mich.

sollte ich evtl einen neuen Thred mit einem Titel wie "Heizungssteuerung 
mit dem Thermotronic" aufmachen?

fg Rocco


>>>>Ach so, noch eine Frage, wenn ich den Atmega lösche kann ich dann das 
ursprüngliche .hex einfach wieder aufspielen und alles ist so wie vorher?<<<<<<

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> sollte ich evtl einen neuen Thred mit einem Titel wie "Heizungssteuerung
> mit dem Thermotronic" aufmachen?
noch nicht, fang erstmal mit "Wie bringe ich eine LED zum Blinken" an.

> Es will bstimmt auch keiner die.hex mal zum angucken haben oder?
eigentlich schon, stell doch mal die ersten paar zeilen hier rein, bloss 
um zu sehen ob es sinnvoll ist daran weiter zu arbeiten.

Autor: Hc Zimmerer (mizch)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>>>>>Ach so, noch eine Frage, wenn ich den Atmega lösche kann ich dann das
> ursprüngliche .hex einfach wieder aufspielen und alles ist so wie vorher?<<<<<<

Da Du die originale .hex nicht hast (wegen des Lockbits), kannst Du auch 
nichts wieder draufspielen.

Beginnen die Daten im .hex denn mit 0c94? Ein typischer Hex-File-Beginn 
für einen AVR dieser Größe sieht z.B. so aus:
:100000000C9406030C9430030C9430030C94F50408
:100010000C9430030C9430030C9430030C94300394
Die ersten 0c94 müssen praktisch immer vorhanden sein.  (Man könnte 
theoretisch ohne Sprungvektoren auskommen aber das ist in Realität für 
größere Programme äußerst theoretisch bis seltsam.)

Autor: Rocco L. (kaufparkangucker)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mein letzes Projekt war ein Ziehrobotter der mit einer definierten 
Geschwindigkeit einen Objektträger aus einem Solgel zieht. Also ein LED 
bekomme ich schon zum Blinken ;-)

Hier mal die ersten Zeilen aus dem Flashspeicher:
:1000000000000303020203030404070706060707B0
:1000100008080B0B0A0A0B0B0C0C0F0F0E0E0F0F20
:100020001010131312121313141417171616171790
:1000300018181B1B1A1A1B1B1C1C1F1F1E1E1F1F00
:100040002020232322222323242427272626272770
:1000500028282B2B2A2A2B2B2C2C2F2F2E2E2F2FE0
:100060003030333332323333343437373636373750

und hier der Eeprom:
:100000000003020304070607080B0A0B0C0F0E0F70
:100010001013121314171617181B1A1B1C1F1E1F60
:100020002023222324272627282B2A2B2C2F2E6F10
:100030003073327334373677787B3A7B3C7F7E7F00
:100040000003020304070607080B0A0B0C0F0E0F30
:100050001013121314171617181B1A1B1C1F1E1F20
:100060006063626364676667686B6A6B6C6F6E6F10

Autor: master (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
sieht nicht nach einem sinnvollen Programm aus

=> Kopierschutz

Autor: Rocco L. (kaufparkangucker)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie kann man nur so einem Hexedezimalen Zeugs schlau werden?

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Wie kann man nur so einem Hexedezimalen Zeugs schlau werden?
wenn man mit ASM anfängt zu Programmieren, dann lernt man halt noch 
jedes byte persönlich kennen. Bei den Atmel kommt als erstes eine 
Tabelle mit Sprungmarken für die verschienden Interrupts und die sie 
definitiv anders aus.

Autor: Michael_ (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wer den Intel-Hex noch nicht kennt, hier:
http://de.wikipedia.org/wiki/Intel_HEX
Ich komme am besten mit .bin aus.
Vielleicht mal in umgewandelter Form hochladen.
Und bitte als Datei, denn sonst muß man es ja zu Fuß machen und erst 
eintippen.
Diese Zeit ist bei mir vorbei!

Autor: Rocco L. (kaufparkangucker)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Michael_ schrieb:
> Wer den Intel-Hex noch nicht kennt, hier:
> http://de.wikipedia.org/wiki/Intel_HEX
> Ich komme am besten mit .bin aus.
> Vielleicht mal in umgewandelter Form hochladen.
> Und bitte als Datei, denn sonst muß man es ja zu Fuß machen und erst
> eintippen.
> Diese Zeit ist bei mir vorbei!

also die .hex in eine .bin konvertieren?
Habe das zum ersten mal gemacht und hoffe das das so richtig ist.
Habe in der Konsole:
avr-objcopy -I ihex -O binary test.hex test.bin
ausgeführt.

Autor: Hc Zimmerer (mizch)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Rocco L. schrieb:
> Wie kann man nur so einem Hexedezimalen Zeugs schlau werden?

Das geht schon.  Und aus dem hier:
> :1000000000000303020203030404070706060707B0
> :1000100008080B0B0A0A0B0B0C0C0F0F0E0E0F0F20
> :100020001010131312121313141417171616171790
kann man eindeutig sagen, dass das Müll ist.  Im großen Ganzen kommt 
nichts als die Adresse zurück, mit ein wenig Übersprechen und 
Verschieben von einem Bit eines Bytes aufs nächste Bit.  Das kannst Du 
getrost vergessen.

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

Verstehe es doch mal, du hast aus dem Controller nichts sinnvolles 
ausgelesen. Und das wird als Bin-File auch nicht besser. Mit grosser 
Sicherheit sind die Security-Bits gesetzt. Denn dann kommt beim Auslesen 
solcher Müll heraus.

MfG Spess

Autor: Rocco L. (kaufparkangucker)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
spess53 schrieb:
> Hi
>
> Verstehe es doch mal, du hast aus dem Controller nichts sinnvolles
> ausgelesen. Und das wird als Bin-File auch nicht besser. Mit grosser
> Sicherheit sind die Security-Bits gesetzt. Denn dann kommt beim Auslesen
> solcher Müll heraus.
>
> MfG Spess


Hatte ich schon verstanden. Ich habe sogar schon angefangen ein neues 
Programm zu schreiben. Hatte ja nur auf Wunsch das .bin erstellt.

Autor: Michael_ (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
He, es geht doch nur um das Prinzip wie man sowas machen kann.
Keiner hier wird den Moped-Chip umprogrammieren wollen.

Autor: Rocco L. (kaufparkangucker)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke Michael.
Über Deine Aussage freue ich mich schon - so kann man zumindest noch was 
lernen.
Vieleicht studier ich ja mal "Reverse Engeneering" lol

Letztlich wollte ich mir ja nur etwas Programmierarbeit ersparen indem 
ich das .hex auslese - nun weis ich zwar das es theoretisch geht - ich 
aber im speziallen nix mit anfangen kann - das ist eher eine Hilfe für 
Experten.

So alle Pins habe ich schonmal definiert (#define PIN26   PD1).

Ich frage mich wie die eine routine geschrieben haben die, wenn man das 
Thermostat zu ersten mal dran macht das Ventil rein und raus fährt und 
dabei testet wie weit das ventil überhaupt rein und raus geht.

Kann man das so machen das man die Reflexlichtschranke am Motor 
überwacht und wenn Beispielsweise nicht aller 1 Sekunde ein signal 
ankommt man davon ausgeht das der Motor steht und somit das Ventil 
maximal ausgefahren bzw eingefahren ist?

fg Rocco

Autor: Knut Ballhause (Firma: TravelRec.) (travelrec) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Ich frage mich wie die eine routine geschrieben haben die, wenn man das
>Thermostat zu ersten mal dran macht das Ventil rein und raus fährt und
>dabei testet wie weit das ventil überhaupt rein und raus geht.

Die Reflexlichtschranke wird abgefragt und in Relation zu 
Leerlaufdrehzahl wird die Lastdrehzahl, die etwas niedriger ist, 
ausgewertert und daran der Ventilweg berechnet. Die oberen und unteren 
Anschläge werden zusätzlich durch Stillstand des Motors angezeigt. Die 
Abfrage sollte im Interesse eines langen Lebens der Batterien und des 
Motors deutlich schneller als 1 Sekunde betragen, eher 200ms zur 
Stillstandsdetektierung. Das Ganze muß allerdings immer dynamisch und 
relativ zur Leerlaufdrehzahl gemessen werden, da es Exemplarstreuungen 
gibt und mit abnehmender Batteriespannung alle Drehzahlen logischerweise 
auch kleiner werden. Ich nehme an, daß die wöchentliche Entkalkungsfahrt 
auch zum Neuabgleich der Drehzahlen genutzt wird.

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

Bewertung
0 lesenswert
nicht lesenswert
Re-Assemblierung
Ich bringe mal ein einfaches Beispiel für einen ATMEL, welcher auf einer 
PC-Hauptplatine war. Also nur zum üben der Re-Assemblierung.
Übrigens der 90S1200 war der erste seiner Art, der UrUrgroßvater. 
Vielleicht kriegt jemand raus, was er gemacht hat.

Autor: yalu (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Michael_ schrieb:
> Vielleicht kriegt jemand raus, was er gemacht hat.

Da bisher noch niemand einen Kommentar abgegeben hat, werde ich es jetzt
tun, wenngleich meine Analyse des Codes sehr lückenhaft ist:

Knapp die Hälfte des Programmcodes belegt eine I²C- bzw. SMBus-Slave-
Schnittstelle in Software. PD2 ist dabei die Daten-, PD4 die Taktlei-
tung. Die Kommunikation wird durch einen über die Datenleitung ausge-
lösten Interrupt angestoßen. Die Busadresse lautet 0x19.

Über die Schnittstelle kann lesend und schreibend auf die CPU-Register
des Controllers zugegriffen werden. Das erste Datenbyte des I²C-Tele-
gramms ist dabei die Registernummer, das zweite der Inhalt. Es ist
sicher nicht vorgesehen, dass über den Bus auf jedes Register zuge-
griffen wird, da einige der Register ja vom Programm selbst verwendet
werden, so dass dies zur Fehlfunktion führen würde. Eines der Register
(vielleicht sogar das einzige?), das zur Kommunkation genutzt wird, ist
R29 und hat die Funktion eines Steuer-/Statusregisters, in dem jedes Bit
(außer Bit 5) eine bestimmte Funktion hat.

Der Rest der Software besteht aus eine zeit- und zustandsgesteuerten
Lesezugriffen der Eingänge PD3, PD5 und PD6 und Schreibzugriffen auf die
Ausgänge PB0 bis PB5. Eine Interpretation der Abläufe ist ohne Kenntnis
der äußeren Beschaltung des Controllers schwierig. Es finden jedenfalls
keine komplizierten Berechnungen statt, aus denen man auf die Funktionen
der einzelnen Leitungen schließen könnte. Da sehr viel mit Verzögerungs-
schleifen gearbeitet wird, die teilweise im Sekundenbereich liegen, hat
das, womit interagiert wird, offensichtlich eine längere Reaktionszeit.
Es wäre bspw. möglich, dass an die I/Os Taster und LEDs für die Inter-
aktion mit dem PC-Benutzer angeschlossen sind.

Die Software ist etwas pfuschig gemacht. So gibt es mindestens eine
nicht erreichbare Codezeile, manches ist unnötig umständlich program-
miert und einige Rechenergebnisse werden gar nicht weiterverwendet.
Zusammen mit den vielen Delays und der Möglichkeit des unkontrollierten
Zugriffs von außen auf die CPU-Register werden da komische Erinnerungen
wach ...

... ich wage es ja kaum auszusprechen, aber ...

Hat da, um den teuren Pentium auf dem PC-Mainboard einzusparen,
womöglich jemand versucht, Windows auf den AVR zu portieren?    =8-o


PS: Was ist den das für ein Mainboard, auf dem du den AVR gefunden hast?

Autor: Michael_ (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Zu spät, ist schon entsorgt. War aber ein ATX.
Er war auf der rechten oberen Ecke.
Mit schlampig programmiert wäre ich vorsichtig.
In einer Hochsprache ist er nicht programmiert, da er keinen RAM hat und 
der Stack nur 2 Stufen hat.
Mal sehen, ich schau ihn mir noch mal genauer an.

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.