sdcc gnu c compiler til pic

Jeg vil lige høre om jeg er på det rette spor her, da jeg ikke har en chip at teste med. Skal jo simulere den (jævnfør tidligere tråd). Jeg har instaleret SDCC c compileren. Jeg skrev et absolut minimalt c-program og kompilerede det med "sdcc -p18f6585 test.c" hvilket gav en række filer. Deriblandt en med pic assembler mnemonics. Kørte derefter "aslink -f test", hvilket gav yderligere filer. Deriblandt en test.ihx, som jeg opfatter som værende maskinkoden til programmet. Den der skal "brændes" på pic eller en rom, eller som jeg skal indlæse i min simulator.

Det ser dog ikke ud til at være helt ren maskinkode. Jeg mistænker det for at være et af de utallige formater der findes med lidt checksumsberegning. Hvilket det er, kan jeg dog ikke lige gennemskue på siddende fod.

-Er ihx-filen masknkoden i en elelr anden form?

-Hvilket format er den i? Hvilke bytes er data og hvilke er checksum oa.?

-Kan man et sted i nogle af de genererede filer se hvilken pic koden er kompileret til?

Reply to
Jakob Nielsen
Loading thread data ...

yderligere

til

Kunne godt stå for Intex Hex File, de plejer dog at hedde .HEX

Et meget udbredt filformat, søg på google: "intel hex file", giver en masse rigtigt gode hits.

--
mvh/rg. Christian
Her skulle der have stået
 Click to see the full signature
Reply to
Christian B. Andresen

Yes. Det så også bekendt ud. Kunne bare slet ikke huske navnet. Kørte mere rundt i noget ibm hex. Tæt på, men ikke tæt nok. Takker.

Jeg er dog stadig ikke klar over om dene fil er præcis de data som skal i chippen/rommen.

Reply to
Jakob Nielsen

Det er et format som brænderprogrammet kan forstå.

Det er noget med:

:10132100D000EC38FCEB38FBEA38FAD083D0827578

: = start

10 = typen af hexfile 1321 = adressen 00 = dummy D000EC38FCEB38FBEA38FAD083D08275 = data som skal lægges ind på adressen 1321 og frem 78 = checksum
--
mvh/rg. Christian
Her skulle der have stået
 Click to see the full signature
Reply to
Christian B. Andresen

1321

Ja næsten. 10 er data bytes, 00 er datatypen.. 00=data, 01=end of file og 02 extended address.

Reply to
Jakob Nielsen

Hej Jeg har brugt SDCC til 8051. Og har fundet ud af at mange simulatorer og brændere ikke kan bruge filerne fra SDCC. Det kan dog løses ved at lave dem til .bin filer og derefter tilbage til en .hex fil. Det gøres ved at hente programmerne hex2bin.exe og bin2hex.exe (søg på google).

hex2bin dinfil.ihx dinfil.bin bin2hex dinfil.bin dinfil.hex

Håber det hjælper dig

Mvh Toke

Reply to
Toke Koustrup

dem

Nææ, men tak for tanken alligevel. Skal jo, som skrevet her og der efterhånden, lave min egen emulator, så skal ikke brænde og skal ikke bruge andres emulatorer.

Reply to
Jakob Nielsen

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.