Dessa fria begränsade kompilatorer
Dessa fria begränsade kompilatorer
Jag programmerar PIC mestadels i C. Använder just nu nya XC8 kompilatorn. Kan inte hjälpa att känna mig lite besvärad över meddelandet att koden skulle bli 40% mindre om den var optimerad dvs om jag använt den fulla betalda versionen. Såvitt jag vet så gäller detta allmänt att om kompilatorn är fri så är den begränsad. Eller finns det några möjligheter till en gratis kompilator som också optimerar fullt ut? Eller är vilkoret för hemanvändaren som inte vill betala flera tusen kronor att han måste acceptera icke optimerad C kod eller hålla sig till assembler?
- Krille Krokodil
- Inlägg: 4062
- Blev medlem: 9 december 2005, 22:33:11
- Ort: Helsingborg
- PHermansson
- EF Sponsor
- Inlägg: 4340
- Blev medlem: 22 december 2004, 00:46:38
- Ort: Särestad Grästorp
- Kontakt:
Re: Dessa fria begränsade kompilatorer
Eller ännu bättre, lämna 8-bitars till dåtiden. I tråden Varför 8 bit? finns en del argument för och emot.
http://elektronikforumet.com/forum/view ... =7&t=59070
Annars kan du kolla in hur långt SDCC (Small Device C Compiler) har kommit kring PIC
http://sdcc.sourceforge.net/
http://elektronikforumet.com/forum/view ... =7&t=59070
Annars kan du kolla in hur långt SDCC (Small Device C Compiler) har kommit kring PIC
http://sdcc.sourceforge.net/
Re: Dessa fria begränsade kompilatorer
En snabb koll:
Krav:
Vdd max. 5,5V
Den billigaste 16 bit PIC på ELFA kostar då 25:30. Det är en PIC24FV16KA301-I/SO, 2k RAM, 16k Flash, 512 bytes EEPROM.
Den billigaste 8 bit med samma RAM & Flash blir då PIC18LF4550-I/PT till 75:60. Den har 2k RAM, 32k Flash, 256 bytes EEPROM.
Jag valde 5V som driftspänning då det ger en del fördelar som amatörer kan behöva.
Resultatet: skippa de gamla typer av PIC och anamma de moderna, det är mycket billigare!
Krav:
Vdd max. 5,5V
Den billigaste 16 bit PIC på ELFA kostar då 25:30. Det är en PIC24FV16KA301-I/SO, 2k RAM, 16k Flash, 512 bytes EEPROM.
Den billigaste 8 bit med samma RAM & Flash blir då PIC18LF4550-I/PT till 75:60. Den har 2k RAM, 32k Flash, 256 bytes EEPROM.
Jag valde 5V som driftspänning då det ger en del fördelar som amatörer kan behöva.
Resultatet: skippa de gamla typer av PIC och anamma de moderna, det är mycket billigare!
Re: Dessa fria begränsade kompilatorer
Och dom fria kompilatorerna för 16bit har inga begränsningar? Eller varför tar ni upp det i diskussionen om kompilatorer?
Re: Dessa fria begränsade kompilatorer
Är dom fria kompilatorerna till AVR lika bra som dom fulla registrerade motsvarigheterna för PIC ?Krille Krokodil skrev:Gå över till AVR.
Re: Dessa fria begränsade kompilatorer
Det är ju uppenbart ett medvetet val av microchip att göra så, istället för att sluta tillverka gamla modeller låter man dom bara ligga kvar på samma prisnivå, medans ersättarna blir billigare och billigare.Icecap skrev: Resultatet: skippa de gamla typer av PIC och anamma de moderna, det är mycket billigare!
Smart tycker jag, det är ett snyggt sätt att få folk att uppgradera sej, utan att tvinga dom.
..Fast nu är det ju så att en ny 8bit också är billigare än en gammal, en klassiker är ju PIC16F877A som ersattes av PIC16F887 för typ en fjärdedel av priset, trots i princip identiska eller bättre data.
Re: Dessa fria begränsade kompilatorer
Atmel Studio 6 är antagligen "ungefär" lika bra, eftersom Atmel bara har en version oavsett om man är proffs eller inte, och den är gratis.jfri skrev:Är dom fria kompilatorerna till AVR lika bra som dom fulla registrerade motsvarigheterna för PIC ?Krille Krokodil skrev:Gå över till AVR.
Den stödjer även Atmels 32-bitars.
Re: Dessa fria begränsade kompilatorer
Att priset på nyare kretsar kan vara lägre brukar ha en koppling till att det ofta mindre kiselyta i dem, för relativt lika designer, billigare att producera.
Utvecklingsmiljön för AVR är både gratis och riktigt trevlig, helt klart en rekomendation.
Utvecklingsmiljön för AVR är både gratis och riktigt trevlig, helt klart en rekomendation.
- Krille Krokodil
- Inlägg: 4062
- Blev medlem: 9 december 2005, 22:33:11
- Ort: Helsingborg
Re: Dessa fria begränsade kompilatorer
Atmel Studio har ingen egen C-kompilator men är inställd för att köra mot fria AVR-GCC. IAR påstår att deras kommersiella kompilator producerar kod som är 20-25% mindre, så situationen är liknande TS.
Re: Dessa fria begränsade kompilatorer
Om man skriver koden med avr-gcc i bakhuvudet tror jag att koden blir väldigt effektiv. Atmel har en appnote i hur man skriver koden så att den blir effektiv på en AVR. Man får göra några "specialare", som att skriva inline-funktioner i .h-filer och liknande.
Men det är ju väldigt sällan man verkligen behöver den där extra optimerade koden, om man nu inte försöker slå något rekord i att göra något så häftigt som möjligt med en så liten processor som möjligt.
Men det är ju väldigt sällan man verkligen behöver den där extra optimerade koden, om man nu inte försöker slå något rekord i att göra något så häftigt som möjligt med en så liten processor som möjligt.
Re: Dessa fria begränsade kompilatorer
Om man har egenutvecklade optimeringsalgoritmer som exempelvis Microchip, är det väl inte konstigt att man vill ha betalt. Samma gäller Microchips version av gcc, vill du ha full optimering mm, får du köpa den, nöjer du dig med gcc's normala optimering, så är det gratis, men de extra 50% eller vad det nu är kostar pengar. Vidare är det så att om man använder standard gcc till pic32, kan man inte använda uChips egna special-libbar.
Då det handlar bla om vad Microchip kallar "procedural abstraction" där all kod görs om till en mängd subrutiner, vilka återanvänds. Dessutom är det så att all kod inte går att optimera, de 50% som Mikrochip pratar om är maximal optimering, vilket man sällan uppnår.
Notera dock att, om koden är optimerad med dessa speciella algoritmer så går det inte att debugga den. Vilket för mig innebär att optimering är oanvändbar, eftersom optimeringen då genererar något helt annat än det man skrev, som man inte kan avlusa.
Om du har sådana behov att optimera, har du gjort fel, antingen har du skrivit fruktansvärt dålig kod eller valt fel processor.
Btw, skrota de där gamla stenålderspicarna, och använd lite modernare i stället.
Då det handlar bla om vad Microchip kallar "procedural abstraction" där all kod görs om till en mängd subrutiner, vilka återanvänds. Dessutom är det så att all kod inte går att optimera, de 50% som Mikrochip pratar om är maximal optimering, vilket man sällan uppnår.
Notera dock att, om koden är optimerad med dessa speciella algoritmer så går det inte att debugga den. Vilket för mig innebär att optimering är oanvändbar, eftersom optimeringen då genererar något helt annat än det man skrev, som man inte kan avlusa.
Om du har sådana behov att optimera, har du gjort fel, antingen har du skrivit fruktansvärt dålig kod eller valt fel processor.
Btw, skrota de där gamla stenålderspicarna, och använd lite modernare i stället.
Re: Dessa fria begränsade kompilatorer
20-25 % mindre än Atmel Studio ? Frågan är då hur många % motsvarar då XC8 40% mindre än utan optimering som jag nu får med deras liteversion?Krille Krokodil skrev:Atmel Studio har ingen egen C-kompilator men är inställd för att köra mot fria AVR-GCC. IAR påstår att deras kommersiella kompilator producerar kod som är 20-25% mindre, så situationen är liknande TS.