Hex igen!

Elektronikrelaterade (på komponentnivå) frågor och funderingar.
BoF
EF Sponsor
Inlägg: 222
Blev medlem: 7 oktober 2006, 16:43:37

Hex igen!

Inlägg av BoF »

Stör mig lite!
Varför dubblar man adressen (i en hex fil för PIC)?

Kan inte vara något med 14bits etc. Hex filen kan beskriva en 16bits adress.

Läste om åtta bits, är där svaret (förstod inte vad som beskrivs)?
Möjligt att PIC enbart kan adressera med åtta bitar och behöver en offset som gamla goda doset behövde!

Någon som vet?
Användarvisningsbild
Icecap
Inlägg: 26659
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Inlägg av Icecap »

Intel-Hex-filer adresserar datan på byte-nivå. Det betyder att 14 bit blir extended till 16 bit för att undvika en jävla massa packande och skit.

Alltså blir varje program-ord till PIC'en 2 bytes där MSB'n kan vara 0x00-0x3F och där har du svaret: varje program-ord blir 2 bytes. Programordet på 0x000 måste alltså vara adress 0x00 & 0x01 i HEX-filen, program-ord 0x001 måste då bli adress 0x02 & 0x03 i HEX-filen osv.

Alltså är adressen i HEX-filen dubblerad mot programstegen i PIC'en, helt enkelt för att PIC-programminnet tar "dubbla" steg sett i bytes.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

> Hex filen kan beskriva en 16bits adress.

Självklart, men på den adressen kan det bara finnas *en* byte.
Och det går åt *två* bytes för ett programord i en PIC...
Skriv svar