  | 
	  | 
		 
	 
	
		| View previous topic :: View next topic   | 
	 
	
	
		| Author | 
		Message | 
	 
	
		
			T0ni0
 
 
  Joined: 21 Jan 2005 Posts: 11
  
			
			 
			 
			
			
			
			
			 
			
			
  
		  | 
		
			
				| Code Protect Block | 
			 
			
				 Posted: Fri Jul 08, 2005 6:06 am     | 
				     | 
			 
			
				
  | 
			 
			
				Hi,
 
 
I need protect code of my aplication, but i use half flash memory for data.
 
 
How i can Protect Block Boot, Data EEprom & Blocks 0,1,2,3 the rest block i need not protect (4,5,6,7)
 
 
In config Word i need write
 
 _CONFIG5L B'11110000'
 
 _CONFIG5H B'00000000'
 
 
How i can make this with CCS? | 
			 
		  | 
	 
	
		  | 
	 
	
		
			PCM programmer
 
 
  Joined: 06 Sep 2003 Posts: 21708
  
			
			 
			 
			
			
			
			
			
			
			
  
		  | 
		
			
				 | 
			 
			
				 Posted: Fri Jul 08, 2005 10:40 am     | 
				     | 
			 
			
				
  | 
			 
			
				| It may be possible, but you need to tell us what PIC you're using. | 
			 
		  | 
	 
	
		  | 
	 
	
		
			T0ni0
 
 
  Joined: 21 Jan 2005 Posts: 11
  
			
			 
			 
			
			
			
			
			 
			
			
  
		  | 
		
			
				 | 
			 
			
				 Posted: Mon Jul 11, 2005 12:28 am     | 
				     | 
			 
			
				
  | 
			 
			
				| I use PIC 18F6720 and i can portect Boot Block And others Block, but i dont know how i can protect any Blocks with CCS. | 
			 
		  | 
	 
	
		  | 
	 
	
		
			PCM programmer
 
 
  Joined: 06 Sep 2003 Posts: 21708
  
			
			 
			 
			
			
			
			
			
			
			
  
		  | 
		
			
				 | 
			 
			
				 Posted: Mon Jul 11, 2005 1:23 am     | 
				     | 
			 
			
				
  | 
			 
			
				I don't have the latest version of PCH.   I have 3.188.
 
 
In my version, if look near the start of the 18F6720.H file, it lists
 
fuse settings that can protect the Boot Block and the Data EEprom.
 
These are:
 
 
CPB = protect Boot Block
 
 
CPD = protect Data EEprom
 
 
However, for Code Protection, it only lists the PROTECT setting,
 
which protects all the ROM.  It doesn't have settings for CP0 to CP7, as 
 
shown in the data sheet, which allow protection of smaller parts of ROM.
 
 
What version of PCH do you have ?   If you have a newer version
 
than mine, does the 18F6720.H file show any settings such as CP0,
 
or PROTECT_0, or PROTECT_12%, etc. ?  Or does it only have PROTECT ?
 
 
If someone else has the latest version of PCH, maybe they can look at
 
the 18F6720.H file and see if CCS has added those settings.
 
 
If your version doesn't have fuse settings for blocks CP0-CP7, and
 
if you have the PCWH compiler, then you could use the Device Editor
 
to add those fuse settings. | 
			 
		  | 
	 
	
		  | 
	 
	
		
			Mark
 
 
  Joined: 07 Sep 2003 Posts: 2838 Location: Atlanta, GA 
			
			 
			 
			 
			
			
			
			
			
			
  
		  | 
		
			
				 | 
			 
			
				 Posted: Mon Jul 11, 2005 10:13 am     | 
				     | 
			 
			
				
  | 
			 
			
				 	  | Code: | 	 		  //////// Standard Header file for the PIC18F6720 device ////////////////
 
#device PIC18F6720
 
#nolist
 
//////// Program memory: 0x16  Data RAM: 3840  Stack: 31
 
//////// I/O: 39   Analog Pins: 12
 
//////// Data EEPROM: 1024
 
//////// C Scratch area: 00   ID Location: 2000
 
//////// Fuses: LP,XT,HS,RC,EC,EC_IO,H4,RC_IO,PROTECT,NOPROTECT,OSCSEN
 
//////// Fuses: NOOSCSEN,NOBROWNOUT,BROWNOUT,WDT1,WDT2,WDT4,WDT8,WDT16,WDT32
 
//////// Fuses: WDT64,WDT128,WDT,NOWDT,BORV25,BORV27,BORV42,BORV45,PUT,NOPUT
 
//////// Fuses: CPD,NOCPD,NOSTVREN,STVREN,NODEBUG,DEBUG,NOLVP,LVP,WRT,NOWRT
 
//////// Fuses: CPB,NOCPB,EBTRB,NOEBTRB,EBTR,NOEBTR,CCP2E7,CCP2C1,WRTD
 
//////// Fuses: NOWRTD,WRTC,NOWRTC,WRTB,NOWRTB
 
//////// 
 
////////////////////////////////////////////////////////////////// I/O
 
// Discrete I/O Functions: SET_TRIS_x(), OUTPUT_x(), INPUT_x(),
 
//                         PORT_B_PULLUPS(), INPUT(),
 
//                         OUTPUT_LOW(), OUTPUT_HIGH(),
 
//                         OUTPUT_FLOAT(), OUTPUT_BIT()
 
// Constants used to identify pins in the above are: | 	 
  | 
			 
		  | 
	 
	
		  | 
	 
	
		
			T0ni0
 
 
  Joined: 21 Jan 2005 Posts: 11
  
			
			 
			 
			
			
			
			
			 
			
			
  
		  | 
		
			
				 | 
			 
			
				 Posted: Wed Jul 13, 2005 3:27 am     | 
				     | 
			 
			
				
  | 
			 
			
				 	  | PCM programmer wrote: | 	 		  
 
 
What version of PCH do you have ?   If you have a newer version
 
than mine, does the 18F6720.H file show any settings such as CP0,
 
or PROTECT_0, or PROTECT_12%, etc. ?  Or does it only have PROTECT ?
 
 
If someone else has the latest version of PCH, maybe they can look at
 
the 18F6720.H file and see if CCS has added those settings.
 
 
If your version doesn't have fuse settings for blocks CP0-CP7, and
 
if you have the PCWH compiler, then you could use the Device Editor
 
to add those fuse settings. | 	  
 
 
Device Editor?  
 
 
PCH 3.227
 
 
//////// Standard Header file for the PIC18F6720 device ////////////////
 
#device PIC18F6720
 
#nolist
 
//////// Program memory: 0x16  Data RAM: 3840  Stack: 31
 
//////// I/O: 39   Analog Pins: 12
 
//////// Data EEPROM: 1024
 
//////// C Scratch area: 00   ID Location: 2000
 
//////// Fuses: LP,XT,HS,RC,EC,EC_IO,H4,RC_IO,PROTECT,NOPROTECT,OSCSEN
 
//////// Fuses: NOOSCSEN,NOBROWNOUT,BROWNOUT,WDT1,WDT2,WDT4,WDT8,WDT16,WDT32
 
//////// Fuses: WDT64,WDT128,WDT,NOWDT,BORV25,BORV27,BORV42,BORV45,PUT,NOPUT
 
//////// Fuses: CPD,NOCPD,NOSTVREN,STVREN,NODEBUG,DEBUG,NOLVP,LVP,WRT,NOWRT
 
//////// Fuses: CPB,NOCPB,EBTRB,NOEBTRB,EBTR,NOEBTR,CCP2E7,CCP2C1,WRTD
 
//////// Fuses: NOWRTD,WRTC,NOWRTC,WRTB,NOWRTB
 
//////// 
 
////////////////////////////////////////////////////////////////// I/O
 
// Discrete I/O Functions: SET_TRIS_x(), OUTPUT_x(), INPUT_x(),
 
//                         PORT_B_PULLUPS(), INPUT(),
 
//                         OUTPUT_LOW(), OUTPUT_HIGH(),
 
//                         OUTPUT_FLOAT(), OUTPUT_BIT()
 
// Constants used to identify pins in the above are: | 
			 
		  | 
	 
	
		  | 
	 
	
		
			T0ni0
 
 
  Joined: 21 Jan 2005 Posts: 11
  
			
			 
			 
			
			
			
			
			 
			
			
  
		  | 
		
			
				 | 
			 
			
				 Posted: Wed Jul 13, 2005 8:31 am     | 
				     | 
			 
			
				
  | 
			 
			
				I use MPLAB, can i write any config word value with CCS ?
 
 
I like make config word in code, not in a IDE    | 
			 
		  | 
	 
	
		  | 
	 
	
		
			PCM programmer
 
 
  Joined: 06 Sep 2003 Posts: 21708
  
			
			 
			 
			
			
			
			
			
			
			
  
		  | 
		
			
				 | 
			 
			
				 Posted: Wed Jul 13, 2005 11:33 am     | 
				     | 
			 
			
				
  | 
			 
			
				 	  | Quote: | 	 		  I use MPLAB, can i write any config word value with CCS ? 
 
I like make config word in code, not in a IDE   | 	   
 
 
I suggest that you email CCS and ask them to add support for
 
the Config bits in the Config 5L register, which are CP0-CP7.
 
Tell them that currently, they only support PROTECT and NOPROTECT,
 
and you would like support for the CP0-CP7 bits in the 18F6720.
 
 
Give them a link to this thread.
 
 
The email address for CCS tech support is on this page:
 
http://www.ccsinfo.com/techsupport.shtml | 
			 
		  | 
	 
	
		  | 
	 
	
		
			soundscu
 
 
  Joined: 29 Jun 2007 Posts: 62 Location: Raleigh, NC 
			
			 
			 
			
			 
			
			
			
			
			
  
		  | 
		
			
				| 5 years later - still no support? | 
			 
			
				 Posted: Thu Apr 24, 2008 2:12 pm     | 
				     | 
			 
			
				
  | 
			 
			
				I'm amazed that 5 years after this thread was last active, there still does not appear to be support for individual protect fuses in PIC18 parts.  I'm using the PIC18F4431, and need CP0 without CP1/2/3.
 
 
I've sent a request to CCS.
 
 
Now I'll look at adding fuses myself... a time-waster I would have preferred to avoid.  :(
 
 
Jim | 
			 
		  | 
	 
	
		  | 
	 
	
		
			soundscu
 
 
  Joined: 29 Jun 2007 Posts: 62 Location: Raleigh, NC 
			
			 
			 
			
			 
			
			
			
			
			
  
		  | 
		
			
				| Ok... 3 years.  But still!!! | 
			 
			
				 Posted: Thu Apr 24, 2008 2:13 pm     | 
				     | 
			 
			
				
  | 
			 
			
				| Ok... 3 years.  But still!!! | 
			 
		  | 
	 
	
		  | 
	 
	
		
			PCM programmer
 
 
  Joined: 06 Sep 2003 Posts: 21708
  
			
			 
			 
			
			
			
			
			
			
			
  
		  | 
		
			
				 | 
			 
			
				 Posted: Thu Apr 24, 2008 2:19 pm     | 
				     | 
			 
			
				
  | 
			 
			
				This is in the current CCS manual, in the #fuses section:
 
 	  | Quote: | 	 		  
 
Some processors allow different levels for certain fuses. To access
 
these levels, assign a value to the fuse. For example, on the 18F452, the 
 
fuse PROTECT=6 would place the value 6 into CONFIG5L, protecting code 
 
blocks 0 and 3. | 	 
  | 
			 
		  | 
	 
	
		  | 
	 
	
		
			soundscu
 
 
  Joined: 29 Jun 2007 Posts: 62 Location: Raleigh, NC 
			
			 
			 
			
			 
			
			
			
			
			
  
		  | 
		
			
				| Thanks! | 
			 
			
				 Posted: Thu Apr 24, 2008 2:44 pm     | 
				     | 
			 
			
				
  | 
			 
			
				Thanks!
 
 
Now I will suggest to CCS that they add a FUSES section to the Functional Overviews in the manual.  Much has changed and been added over the years, and today's implementation is (for me, anyway) not quite intuitive.
 
 
BTW... thinking I needed to add fuse definitions, I tried using the Device Editor.  Didn't go well... my changes did not save reliably, sometimes coming back with the settings there but no name.  Saving to a different filename (i.e. device name) made no different -- my impression is the editor is flaky.
 
 
Jim | 
			 
		  | 
	 
	
		  | 
	 
	
		 | 
	 
 
  
	 
	    
	   | 
	
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
  | 
   
 
  
Powered by phpBB © 2001, 2005 phpBB Group
  
		 |