SDCC och pic18

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
Rick81
Inlägg: 746
Blev medlem: 30 december 2005, 13:07:09

SDCC och pic18

Inlägg av Rick81 »

Trots att jag professionellt jobbar med STs 32 bitare så är det ändå nåt speciellt att koppla upp en gammal PIC med tinybootloader på ett kopplingsdäck till PC via USB Uart och styra lite elektronik, framförallt nu när jag lyckats få frugan intresserad av hobbyprojekt (ja det går faktiskt!).

Håller med styra 8 RCservo via mjukvaruPWM men retar mig på att XC8 kompilatorn i free mode injicerar en massa instruktioner för att man ska uppgradera till betalversion för 995$ (lär ju inte hända).

Så testade med SDCC och gputils och porta koden från XC8 var relativt enkelt,...dessvärre funkar inte den kompilerade koden när den laddats in så undrar om nån på forumet lyckats få SDCC lira med pic18 och vad jag kan ha missat.
Användarvisningsbild
lillahuset
Gått bort
Inlägg: 13969
Blev medlem: 3 juli 2008, 08:13:14
Ort: Norrköping

Re: SDCC och pic18

Inlägg av lillahuset »

Det verkar vara "work in progress". Fråga på SDCCs forum: https://sourceforge.net/p/sdcc/discussion/
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 45176
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

Re: SDCC och pic18

Inlägg av TomasL »

Håller med styra 8 RCservo via mjukvaruPWM men retar mig på att XC8 kompilatorn i free mode injicerar en massa instruktioner för att man ska uppgradera till betalversion för 995$ (lär ju inte hända).
Kör XC32, fria versionen, och har int sett något konstigt.
Du får nog precisera dig lite bättre.
Vad är det som stoppas in, och vad är det som inte funkar.
Användarvisningsbild
Klas-Kenny
Inlägg: 11292
Blev medlem: 17 maj 2010, 19:06:14
Ort: Växjö/Alvesta

Re: SDCC och pic18

Inlägg av Klas-Kenny »

Du måste ju inte köpa hela XC8, går fint att prenumerera månadsvis om du bara behöver betalvariant tillfälligt.
Användarvisningsbild
baron3d
EF Sponsor
Inlägg: 1339
Blev medlem: 1 oktober 2005, 23:58:43
Ort: Torestorp

Re: SDCC och pic18

Inlägg av baron3d »

Genererade från CodeBlocks och SDCC en hex-fil och jämförde med en hex-fil från C18.

Detta saknades i filen fån SDCC:

Kod: Markera allt

:0600000062EF01F01200A6
:0600080004EF04F01200F9
:060018000CEF04F01200E1
:02002A000000D4
:04002C000101820E3E
Är ingen expert med är detta inte "fuses" som saknas.
Rick81
Inlägg: 746
Blev medlem: 30 december 2005, 13:07:09

Re: SDCC och pic18

Inlägg av Rick81 »

TomasL: Du kan inte jämför med XC32 för MIPSarkitektur som är baserad på GCC med XC8, det är ju två helt olika kompilatorer.

Här är ett av de exempel som finns på nätet om xc8:
https://www.t4f.org/articles/optimizati ... -pro-mode/


Baron3d: ja det stämmer att fuses eller configuratiinbits ska defineras i SDCC ckod. Men jag kör tinybootloader för programladdning och då är dessa satta vid inladdning av bootloader.

Vilken gputils kör du? När jag körde 1.5.1 fick jag skumt fel på rad 190 nånstans så jag laddadr ned en fixad variant.
Användarvisningsbild
baron3d
EF Sponsor
Inlägg: 1339
Blev medlem: 1 oktober 2005, 23:58:43
Ort: Torestorp

Re: SDCC och pic18

Inlägg av baron3d »

Har laddat ner "sdcc-3.6.0-x64"

https://sourceforge.net/projects/sdcc/files/
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 45176
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

Re: SDCC och pic18

Inlägg av TomasL »

Rick81 skrev:TomasL: Du kan inte jämför med XC32 för MIPSarkitektur som är baserad på GCC med XC8, det är ju två helt olika .
Spelar ingen roll licenserna är ungefär samma, dvs optimering saknas i den fria versionen. Dock lägger naturligtvis inte kompilatorn till en massa extra som du påstår.
Användarvisningsbild
baron3d
EF Sponsor
Inlägg: 1339
Blev medlem: 1 oktober 2005, 23:58:43
Ort: Torestorp

Re: SDCC och pic18

Inlägg av baron3d »

Jo, XC8 gör det.
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 45176
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

Re: SDCC och pic18

Inlägg av TomasL »

Vad läggs till?
Rick81
Inlägg: 746
Blev medlem: 30 december 2005, 13:07:09

Re: SDCC och pic18

Inlägg av Rick81 »

Kolla länken vad XC8 lägger till
Rick81
Inlägg: 746
Blev medlem: 30 december 2005, 13:07:09

Re: SDCC och pic18

Inlägg av Rick81 »

Det var SBS (Skit Bakom Spakarna) som orsakade problemet.

Hade gjort en miss vid portning av uartkoden.

Ska bli intressant att testa SDCC lite mer då den dessutom har optimering.
Användarvisningsbild
baron3d
EF Sponsor
Inlägg: 1339
Blev medlem: 1 oktober 2005, 23:58:43
Ort: Torestorp

Re: SDCC och pic18

Inlägg av baron3d »

Det skall bli spännande att följa. Jag har inte kommit i gång än.
Vad som drev mig i riktning mot SDCC var också optimeringen.
Har idéer om PLC ladder programmering.
Rick81
Inlägg: 746
Blev medlem: 30 december 2005, 13:07:09

Re: SDCC och pic18

Inlägg av Rick81 »

För de som vill testa SDCC körde har jag installerat SDCC för windows på
https://sourceforge.net/projects/sdcc/files/

För gputils 1.5.1 fick jag detta fel
Assertion failed!

Program: C:\PROGRA~2\gputils\bin\gplink.exe
File: gpcofflink.c, Line 190

Expression: sym != NULL


Men finns fixad version på
https://sourceforge.net/projects/gputil ... e/download

I mplab X laddade jag ned SDCC plugin via IDE.

Portning från XC8 till SDCC är princip bara lägga till struct med samma namn som register i datablad .bit
Ex
swdten =1; // xc8, aktivera soft watchdog
wdtcon.swdten=1; // SDCC aktivera soft watchdog
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 45176
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

Re: SDCC och pic18

Inlägg av TomasL »

Rick81 skrev:Kolla länken vad XC8 lägger till
Nja, XC8 lägger nog inte till nånting, utan snarare tar inte bort det som bildas vid en standard kompilering, de instruktionerna kan ses som platshållare som kanske kan behövas, senare.
De tas bort vid optimeringen (som inte finns i den fria XC8an)

Testa en en enkel "if()" i den fria versionen och betalversionen utan optimering påslagen, så brukar det genereras 3 eller flera "goto" i rad.
Slår man på optimeringen i betalversionen försvinner dessa.

Så det handlar mer om att gratisversionen saknar optimering och uppstädning, inte att extra kod läggs till.
Skriv svar