mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik sdcc und at89s8252 rotiert bits falsch


Autor: Tim (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

ich versuche zum ersten mal C anstelle von ASM zu benutzen, und da ich
Linuxer bin muss es eben sdcc sein. Ich will nun ein Bit endlos durch
meinen Port laufen lassen. Unter Asm macht man das mit RL oder RR, in
sdcc schreibt man das so: i=((i<<1)|(i>>7))
Der sdcc compiliert ja nicht nur, sondern macht vorher eine .asm file,
in der der Assemblercode drin steht. Dort steht auch richtigerweise rr
a;
Nun lade ich aber die .ihx in meinen 8051er Simulator, der meckert dann
erstmal ueber einen checksum error und wenn ich mir das Prog dann dort
anschaue steht da kein RR, sondern ein RRC. Macht nun der sdcc und oder
sein Assembler Murks oder der Simulator? Wieso kommen da .ihx raus, und
keine .hex? Ist das ein Unterschied oder ist einfach der Name
unterschiedlich. Ich rufe einfach sedcc bla.c auf, keine weiteren
Optionen. Dann muesste er doch ein fuer mein 89s8252 passendes Hexfile
erstellen, oder?


TIM

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

der sdcc hatte, als ich mit ihm gearbeitet habe, die Angewohnheit sehr
merkwürdige HEX-Dateien (mit der Endung ihx und unterschiedlichsten
Zeilenlängen) zu erstellen. Evtl. macht das deinem Simulator Probleme.
Beim sdcc sollte das tool packihx dabei sein welches aus dem
durcheinandergewürfelten ihx ein ordentliches hex macht.

i=((i<<1)|(i>>7)) hat bei mir aber immer funktioniert.

Matthias

Autor: Tim (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hoert sich ja nach nem passenden Tipp an, nur passiert nach einem
packihx bla.ihx nichts. Ich habe danach keine bla.hex und an der
bla.ihx hat sich (laut checksum) nichts geaendert, auch wenn packihx
meine
:040000000200823246
:01000B0032C2
:0100130032BA
:01001B0032B2
:0100230032AA
:01002B0032A2
:1000820075810712007EE5826003020033020033AD
:1000330012003880FE7A0175800075900075B05A01
:1000430075A0008AA0EA03FAC00212006AD002C0B7
:100053000212006AD002C00212006AD002C0021269
:10006300006AD00280DD22758901D28CAA8CC3EA92
:0F007300958C5004AA8C80F6C28C2275820022D4
:00000001FF
packihx: read 22 lines, wrote 13: OK.

Tim

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

dann ist an dem HEX-File eben nichts mehr zu packen. Du kannst aber mal
versuchen mit hex2bin und bin2hex ein komplett neues HEX-File zu
erstellen.

Diese Tools gibt es hier http://www.keil.com/download/list/utility.htm
für Windows. Für Linux findet sich aber bestimmt auch was.

Oder versuch einfach mal:

:1000000002008232FFFFFFFFFFFFFF32FFFFFFFF13
:10001000FFFFFF32FFFFFFFFFFFFFF32FFFFFFFF8A
:10002000FFFFFF32FFFFFFFFFFFFFF32FFFFFFFF7A
:10003000FFFFFF12003880FE7A0175800075900086
:1000400075B05A75A0008AA0EA03FAC00212006ACD
:10005000D002C00212006AD002C00212006AD002AE
:10006000C00212006AD00280DD22758901D28CAAFA
:100070008CC3EA958C5004AA8C80F6C28C227582BF
:10008000002275810712007EE582600302003302C0
:0200900000333B
:00000001FF

Matthias

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.