View previous topic :: View next topic |
Author |
Message |
4help
Joined: 09 Feb 2012 Posts: 1
|
Check CCS C compiler version |
Posted: Thu Feb 09, 2012 8:42 am |
|
|
Hi,
I bought the compiler four years ago (July 2009), in order to develop a program on PIC18F4550.
Two weeks ago (January 2012), my company bought the same compiler to compile the same program for the same PIC.
But .hex and .sta files are totally different.
Moreover, the PIC failed.
The new compiler seem to optimize code differently.
My questions are :
.
1-How I can easily check the version of the CCS C compiler for PICĀ® PIC10, PIC12, PIC16 and PIC18 families ?
2-Does last versions of compiler, are compatible with older?
Thanks by advance |
|
|
temtronic
Joined: 01 Jul 2010 Posts: 9245 Location: Greensville,Ontario
|
|
Posted: Thu Feb 09, 2012 9:29 am |
|
|
1) version of the compiler is at the top of the listing file ( programname.lst)
2) versions are 'backward' compatible
Code can be different size due to 'tweaking' of the compiler to fix bugs. |
|
|
FvM
Joined: 27 Aug 2008 Posts: 2337 Location: Germany
|
|
Posted: Thu Feb 09, 2012 10:30 am |
|
|
Quote: | versions are 'backward' compatible |
They are - in our dreams. |
|
|
ckielstra
Joined: 18 Mar 2004 Posts: 3680 Location: The Netherlands
|
|
Posted: Thu Feb 09, 2012 1:36 pm |
|
|
FvM wrote: | Quote: | versions are 'backward' compatible |
They are - in our dreams. | You are being cynical. Mostly the code is backwards compatible. |
|
|
asmboy
Joined: 20 Nov 2007 Posts: 2128 Location: albany ny
|
|
Posted: Thu Feb 09, 2012 1:40 pm |
|
|
Quote: |
Mostly the code is backwards compatible.
|
yeah - MOSTLY
between 4.085 and 4.127
changes were made to DEVICE file FUSE arguments
that have been a recompile pain in my Butt.
just saying |
|
|
temtronic
Joined: 01 Jul 2010 Posts: 9245 Location: Greensville,Ontario
|
|
Posted: Thu Feb 09, 2012 1:57 pm |
|
|
Yeah, by 'compatible' I mean a program that ran on an older version will run on a newer one.
Unlike getting XP or 7 to run a QB program..... |
|
|
asmboy
Joined: 20 Nov 2007 Posts: 2128 Location: albany ny
|
|
Posted: Thu Feb 09, 2012 2:13 pm |
|
|
to be honest - ( and paraphrase Winston Churchill)
in reality -the CCS compiler is the worst compiler -
EXCEPT for all the rest ......
and THATS why we are all here still i bet
|
|
|
bkamen
Joined: 07 Jan 2004 Posts: 1615 Location: Central Illinois, USA
|
|
Posted: Fri Feb 10, 2012 2:12 am |
|
|
asmboy wrote: | to be honest - ( and paraphrase Winston Churchill)
in reality -the CCS compiler is the worst compiler -
EXCEPT for all the rest ......
and THATS why we are all here still i bet
|
yea... been working in C18 a bunch lately.
What a drag.
So many things in CCS we tend to take for granted... _________________ Dazed and confused? I don't think so. Just "plain lost" will do. :D |
|
|
Arakel
Joined: 06 Aug 2016 Posts: 107 Location: Moscow
|
I can not find the file for the version |
Posted: Sat Jan 14, 2017 6:42 am |
|
|
Good day! I am sorry for openning an old thread but I can not find this file. Is the version in "propertiles" accurate?
[img]https://www.dropbox.com/s/9lwziy5it32pznd/PIC-C-Version.png?dl=0[/img] _________________ Yo! I love learning and technology! I just do not have experience so do not be angry if I ask a stupid question about a detail! From so much to remember sometimes I forget the details in order to remember the big problems! |
|
|
dyeatman
Joined: 06 Sep 2003 Posts: 1934 Location: Norman, OK
|
|
Posted: Sat Jan 14, 2017 7:05 am |
|
|
No.
One place to look is the .LST file
If you have the IDE you can look under Help.
Anther way is the +V switch in command line mode _________________ Google and Forum Search are some of your best tools!!!! |
|
|
Arakel
Joined: 06 Aug 2016 Posts: 107 Location: Moscow
|
|
Posted: Sat Jan 14, 2017 7:26 am |
|
|
Thank you! Which is the best version according to you? _________________ Yo! I love learning and technology! I just do not have experience so do not be angry if I ask a stupid question about a detail! From so much to remember sometimes I forget the details in order to remember the big problems! |
|
|
dyeatman
Joined: 06 Sep 2003 Posts: 1934 Location: Norman, OK
|
|
Posted: Sat Jan 14, 2017 7:30 am |
|
|
I have a subscription and almost always run the latest unless
some bug crops up. Then I step back a version. _________________ Google and Forum Search are some of your best tools!!!! |
|
|
Ttelmah
Joined: 11 Mar 2010 Posts: 19546
|
|
Posted: Sat Jan 14, 2017 9:13 am |
|
|
This is why, when I 'archive' a set of code, I always include the compiler that was used with it.
Generally I run 'reasonably up to date', unless problems appear. Recently on one project I had to stop at 5.058 (looking into 'why' now), because it suddenly developed problems on the next version.
Now generally the compiler is very 'reverse compatible', but not entirely. One thing already mentioned, was fuses. Historically the older compilers applied their own 'default' values to some fuses. Later CCS switched, and leave all fuses at their 'erased' state, unless you specifically set them. This is by far the 'better' route (avoiding things being done without telling you), but can lead to compatibility problems with older code. There are also quite significant changes with the major versions (V5 does quite a few things differently in the background - low level code that talks directly to the hardware may see problems as a result).
So work 'up to date', but keep a record of what compiler you use, and a copy of the compiler as well.
As a comment, the first thing I do after installing a new compiler, is rename ccsdownload.exe. I don't want the compiler version changing 'mid project'. Happy to load a new version and try it separately (just install into named/numbered directories), but I want 100% control of changes. |
|
|
temtronic
Joined: 01 Jul 2010 Posts: 9245 Location: Greensville,Ontario
|
|
Posted: Sat Jan 14, 2017 3:38 pm |
|
|
re: Mr. T's comment about fuses.
Having been 'bit' a couple of times about 'questionable fuses', I now have an 'include file' just for fuses. Each PIC type gets it's own with a known set of working fuses. '46k22base.fuz' is the file that contains EVERY fuse, one per line for the PIC18F46K22. Every line has a comment (old assembler rule), even the obvious lines. The fuz extension I think is unique, at least on my PC. It's not C code, and fuz sounds like fuze to me.
If a project needs fuses configured differently than the 'base' config, the file becomes 46k22_projectname.fuz.
One big benefit of theis 'fuses file' is that the main program is cleaner. You also minimize the risk of a typo creeping in causing no end of confusion at 3AM. Besides my typing is terrible, thanks to an unSkilsaw incident...
Jay |
|
|
|