Forum: Mikrocontroller und Digitale Elektronik hello led.hex - Frage zum Hexfile


von Hano G. (Gast)


Lesenswert?

Hallo zusammen, habe mir kürzlich das PICkit3 Starter Kit zugelegt und 
auch schon das erste Programm draufgespielt, hat soweit auch alles 
funktioniert. Ich habe aber eine Frage zur Größe des hexfiles, ich 
dachte immer, dass die besonders klein sind wenn man in Assembler 
programmiert, wieso ist es bei mir dann ganze 270Byte groß?
Ich mache in meinem Programm nichts weiter als eine LED einzuschalten. 
Hier mal der Quellcode:
1
#include <p18F14K22.inc>
2
3
    ;Config settings 
4
    CONFIG IESO = OFF, PLLEN = OFF, FOSC = IRC, FCMEN = OFF, PCLKEN = OFF
5
    CONFIG BOREN = SBORDIS, BORV = 19, PWRTEN = OFF, WDTEN = OFF
6
    CONFIG MCLRE = OFF, HFOFST = OFF, DEBUG = OFF, STVREN = ON
7
    CONFIG XINST = OFF, BBSIZ = OFF, LVP = OFF
8
    CONFIG CP0 = OFF, CP1 = OFF
9
    CONFIG CPD = OFF, CPB = OFF
10
    CONFIG WRT0 = OFF, WRT1 = OFF
11
    CONFIG WRTB = OFF, WRTC = OFF, WRTD = OFF
12
    CONFIG EBTR0 = OFF, EBTR1 = OFF
13
    CONFIG EBTRB = OFF
14
15
  errorlevel -302    ;suppress the 'not in bank0' warning
16
17
  ORG 0
18
Start:
19
  ;set IO Pins
20
  bcf    TRISC,0    ;make IO Pin C0 an output
21
    
22
  ;clear LATCH register to be sure the whole register is cleared
23
  clrf  LATC    ;init the LATCH by turning off everything
24
  
25
  ;write the LATCH register
26
  bsf    LATC,0    ;turn on LED C0 (DS1)
27
  goto  $      ;sit here forever!
28
end

von holger (Gast)


Lesenswert?

>Ich habe aber eine Frage zur Größe des hexfiles, ich

Dann solltest du dich mal über den Aufbau eines HEX-Files informieren.

https://de.wikipedia.org/wiki/Intel_HEX

>dachte immer, dass die besonders klein sind wenn man in Assembler
>programmiert, wieso ist es bei mir dann ganze 270Byte groß?

Ein 270 Byte HEX-File IST besonders klein.

von Hano G. (Gast)


Lesenswert?

holger schrieb:
> Ein 270 Byte HEX-File IST besonders klein

Als ich dasselbe mit einem AVR gemacht habe war das hexfile gerade mal 6 
oder 8 Byte groß, das ist klein, 270 ist riesengroß dagegen. Bei 270 
Bytes müsste mein Programm ja fast 300 Zeilen lang sein.
Oder ist das hexfile nicht das welches direkt in den Controller 
progammiert wird?

von holger (Gast)


Lesenswert?

>Als ich dasselbe mit einem AVR gemacht habe war das hexfile gerade mal 6
>oder 8 Byte groß,
>das ist klein, 270 ist riesengroß dagegen. Bei 270
>Bytes müsste mein Programm ja fast 300 Zeilen lang sein.

Schwachsinn. Beim AVR gibt es die ganzen Configurationwords
im HEX-File nicht. Die stehen beim PIC aber mit drin.
Und jetzt informierst du dich mal bitte selber über den Aufbau
eines HEX-Files.

von asdf (Gast)


Lesenswert?

Hano G. schrieb:
> Oder ist das hexfile nicht das welches direkt in den Controller
> progammiert wird?

Nein! Das ist es nicht. Es ist eine ASCII-Darstellung (vereinfacht 
gesagt) eines oder auch mehrerer Speicherbereiche. Schau dir mal den 
Link von holger an.

von Hano Glahr (Gast)


Lesenswert?

Ich hoffe der dient meinem Verständnis. Eine Frage aber vorweg, wo kann 
ich dann die Datei mit dem "Maschinencode" für den PIC finden?

von holger (Gast)


Lesenswert?

>wo kann ich dann die Datei mit dem "Maschinencode" für den PIC finden

Der steht neben anderen Dingen AUCH in der HEX-Datei.

von ?!? (Gast)


Lesenswert?

Hano Glahr schrieb:
> Ich hoffe der dient meinem Verständnis. Eine Frage aber vorweg, wo
> kann
> ich dann die Datei mit dem "Maschinencode" für den PIC finden?

Sieh mal, ob du im gleichen Verzeichnis, wo die *.hex ist, ein 
*.bin-File findest (oder dort in der Nähe). Ist nur eine Vermutung von 
mir, ich kenne die Entwicklungsumgebung vom PIC nicht.
Vielleicht kann jemand was dazu sagen, der sich mit PIC auskennt?

von Hano G. (Gast)


Lesenswert?

holger schrieb:
> Der steht neben anderen Dingen AUCH in der HEX-Datei.

Dann werde ich mir den Artikel wohl zwingend durchlesen müssen wenn ich 
das verstehen will :-)

Im Projektverzeichnis ist leider nichts von einem Binärfile zu finden.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.