View previous topic :: View next topic |
Author |
Message |
Ttelmah
Joined: 11 Mar 2010 Posts: 19552
|
5.080 PIC24 fuse issues |
Posted: Wed Aug 22, 2018 3:12 am |
|
|
Hi,
Has anyone else had issues with 5.080, and the fuses on PIC24's?.
May be specific to just one chip, or may be more generic...
I have code that compiled with 5.078 loads and runs fine. Compile with 5.080 and it won't work.
PIC24FJ256GA702
They seem to have 'tidied' the fuse handling, with half the number of lines of Intel hex now being generated for the fuses, but a couple not don't seem to be working right.
When you load the file to the programmer, some fuses are setting differently, and a couple don't seem to allow you to set them.
Have had to manually set the fuses in the programmer to get the code to work.
So has anyone else seen fuse issues with the current compiler?. |
|
|
gaugeguy
Joined: 05 Apr 2011 Posts: 303
|
|
Posted: Wed Aug 22, 2018 6:06 am |
|
|
I have code for a 24FJ256GA704 where I moved up from 5.075 to 5.080. With 5.080 I have a new dll from CCS for a const problem I was having.
There are differences in the same code compiled between the two but the config words in the hex file are the same between them.
Code: |
Configuration Fuses:
Word 1L: FFFF NOWRTB NOBSS NOBS NOWRT NOPROTECT NOWPCFG NOPROTECT_CFG NOAIVT
H: 0000
Word 2L: FFFF
H: 0000
Word 3L: FFFF
H: 0000
Word 4L: FFFF
H: 0000
Word 5L: FFFF
H: 0000
Word 6L: 7FFF
H: 0000
Word 7L: FFF9 FRC_PLL NOPLL IESO
H: 0000
Word 8L: FF03 NOPR OSCIO SOSC_DIG PLL_FROM_FRC NOIOL1WAY CKSFSM
H: 0000
Word 9L: FF9F WPOSTS16 WDT128 NOWDT WINDIS WDTWIN_25% WDTCMX WDTCLK_LPRC
H: 0000
Word 10L: FFFC NOBROWNOUT NOLVR DNVP
H: 0000
Word 11L: FFDF ICSP1 NOJTAG NODEBUG
H: 0000
Word 12L: FFFF NOALTCMPI NOTMPRPIN SOSC_HIGH NOALTI2C1
H: 0000
|
|
|
|
Ttelmah
Joined: 11 Mar 2010 Posts: 19552
|
|
Posted: Wed Aug 22, 2018 6:24 am |
|
|
That's the .LST, not the .HEX.
That is what is 'odd'. The .LST is the same between both versions. The .HEX changes. When I read the fuses in with the programmer, there are things not being set. I'm talking to CCS (having huge hassles with something else as well...), but unfortunately Darren is away for a few days.
The .LST doesn't display the values right anyway. If you look your's shows byte 3 and 4 in each word being 0. However byte 3, has to be 0xFF, since this always reads as 0xFF from the chip. If though you look at the .HEX, you have:
:105E0000FFFF00FFFFFF00FFFFFF00FFFFFF00FF9E
Which decodes as
0xFFFF
0x00FF
0xFFFF
0x00FF
0xFFFF
0x00FF
0xFFFF
0x00FF
Only one byte in four as 0x00.
It correctly has the third byte as 0xFF.
So the .LST and the .HEX are not actually agreeing...
The .LST gives:
Code: |
Configuration Fuses:
Word 1L: FFFF NOWRTB NOBSS NOBS NOWRT NOPROTECT NOWPCFG NOPROTECT_CFG NOAIVT
H: 0000
Word 2L: FFFF
H: 0000
Word 3L: FFFF
H: 0000
Word 4L: FFFF
H: 0000
Word 5L: FFFF
H: 0000
Word 6L: 7FFF
H: 0000
Word 7L: FF89 FRC_PLL PLL2 IESO
H: 0000
Word 8L: FF33 NOPR OSCIO SOSC_DIG PLL_FROM_PRIMARY IOL1WAY CKSFSM
H: 0000
Word 9L: FFCF WPOSTS16 WDT32 WDT_SW WINDIS WDTWIN_25% WDTCMX WDTCLK_LPRC
H: 0000
Word 10L: FFFF BROWNOUT NOLVR DNVP
H: 0000
Word 11L: FFDF ICSP1 NOJTAG NODEBUG
H: 0000
Word 12L: FFEF NOALTCMPI NOTMPRPIN SOSC_HIGH ALTI2C1
H: 0000
|
The .HEX with .078 gives:
Code: |
:1057F00000000000000000000000000000000000A9
:105E0000FFFF00FFFFFF00FFFFFF00FFFFFF00FF9E
:105E1000FFFF00FFFFFF00FFFFFF00FFFFFF00FF8E
:105E2000FFFF00FFFFFF00FFFF7F00FFFFFF00FFFE
:105E3000F9FF00FFFFFF00FF33FF00FFFFFF00FF40
:105E4000CFFF00FFFFFF00FFFFFF00FFFFFF00FF8E
:105E5000DFFF00FFFFFF00FFEFFF00FFFFFF00FF7E
:00000001FF
;PIC24FJ256GA702
;CRC=136B CREATED="22-Aug-18 10:16"
|
While with .080 I get:
Code: |
:105DF00000000000000000000000000000000000A3
:105E0000FFFF00FFFFFF00FFFFFF00FFFFFF00FF9E
:105E1000FFFF00FFFF7F00FF89FF00FF33FF00FF50
:105E2000CFFF00FFFFFF00FFDFFF00FFEFFF00FFDE
:00000001FF
;PIC24FJ256GA702
;CRC=0353 CREATED="22-Aug-18 13:33"
|
Load it into the programmer, and it's got the AIVT enabled and lots of other things that stop it working. Turn these off explicitly, and they remain set.... |
|
|
gaugeguy
Joined: 05 Apr 2011 Posts: 303
|
|
Posted: Wed Aug 22, 2018 6:59 am |
|
|
I did compare the hex files, just pasted the listing in to get human readable version to see.
Code: |
5.075
:105E0000FFFF00FFFFFF00FFFFFF00FFFFFF00FF9E
:105E1000FFFF00FFFFFF00FFFFFF00FFFFFF00FF8E
:105E2000FFFF00FFFFFF00FFFF7F00FFFFFF00FFFE
:105E3000F9FF00FFFFFF00FF03FF00FFFFFF00FF70
:105E40009FFF00FFFFFF00FFFCFF00FFFFFF00FFC1
:105E5000DFFF00FFFFFF00FFFFFF00FFFFFF00FF6E
5.080
:105E0000FFFF00FFFFFF00FFFFFF00FFFFFF00FF9E
:105E1000FFFF00FFFFFF00FFFFFF00FFFFFF00FF8E
:105E2000FFFF00FFFFFF00FFFF7F00FFFFFF00FFFE
:105E3000F9FF00FFFFFF00FF03FF00FFFFFF00FF70
:105E40009FFF00FFFFFF00FFFCFF00FFFFFF00FFC1
:105E5000DFFF00FFFFFF00FFFFFF00FFFFFF00FF6E
|
|
|
|
gaugeguy
Joined: 05 Apr 2011 Posts: 303
|
|
Posted: Wed Aug 22, 2018 7:05 am |
|
|
This is the build version of 5.080 I have with the new dll from CCS
Quote: |
CCS PCD C Compiler, Version 5.080, xxxxx 22-Aug-18 07:08
|
|
|
|
Ttelmah
Joined: 11 Mar 2010 Posts: 19552
|
|
Posted: Wed Aug 22, 2018 7:12 am |
|
|
Thanks.
As you say looks the same.
It may well be chip specific. I have another project on a different chip, and this seems OK.
For now I'll run with .078, and wait to see what CCS say. The other issues I'm having are more 'major' in some ways. May suggest something they have changed is 'uncomfortable' with my code... |
|
|
Ttelmah
Joined: 11 Mar 2010 Posts: 19552
|
|
Posted: Mon Oct 01, 2018 7:06 am |
|
|
Just an update to this.
This fault, and another that I had found with large const arrays in PCD, have both been fixed in 5.081. |
|
|
|