TODOPIC

Microcontroladores PIC => Todo en microcontroladores PIC => Mensaje iniciado por: macedo en 01 de Noviembre de 2009, 17:15:19

Título: Proteccion de codigo en Pic12F508
Publicado por: macedo en 01 de Noviembre de 2009, 17:15:19
Hola tengo una incertidumbre con respecto a este pic, 12F508, tiene proteccion contra lectura del programa, ya que se lo habilito para que no lo puedan leer y el programa se ve perfectamente, no se ve los bytes que no se usaron, o sea puedo copiar tranquilamente el codigo y no tendria qu ser asi.
gracias
Título: Re: Proteccion de codigo en Pic12F508
Publicado por: Nocturno en 02 de Noviembre de 2009, 02:31:09
No tendría que ser así, deberías leer todo a 0.
Título: Re: Proteccion de codigo en Pic12F508
Publicado por: MLO__ en 02 de Noviembre de 2009, 11:45:20
Hola.

Debes poner PROTECT en los fusibles de programación. Si quieres verificar que no lee nada, cierra el proyecto en el MPLAB y activa el programador, luego léelo y verifica. Si lees el PIC con el proyecto abierto puede darse el caso que no se sobrescriba y parecería que no esta activo el modo de protección de lectura.

Saludos
Título: Re: Proteccion de codigo en Pic12F508
Publicado por: macedo en 02 de Noviembre de 2009, 20:38:21
Hola el PROTECT que me decis es en el MPLAB?
Gracias
Título: Re: Proteccion de codigo en Pic12F508
Publicado por: MLO__ en 03 de Noviembre de 2009, 00:14:34
Postea el codigo para ver que tienes.

Ese fusible se puede configurar desde el codigo o con el MPLAB.

Saludos
Título: Re: Proteccion de codigo en Pic12F508
Publicado por: macedo en 03 de Noviembre de 2009, 19:23:28
Hola este es un pedazo:
Código: ASM
  1. TITLE      "Pulsador Bar"
  2.           processor  12F508  
  3.           LIST       P=12F508, f=inhx8m, r=dec  ;(INHX8M= Formato de salida .hex, r=sistema decimal)
  4.           #include   "p12f508.inc"              ; Incluye datos de PIC12F508
  5.           __IDLOCS   0x3829                     ; Solo ID de reconocimiento (tipo serial?)
  6.  
  7.           __CONFIG    _IntRC_OSC & _WDT_OFF &  _MCLRE_OFF & _CP_ON
  8.    
  9. ;         ERRORLEVEL -207                       ; found label after column 1
  10.           ERRORLEVEL -302                       ; register in operand not in bank 0
  11.  
  12. ;===============================================================================================
  13. ; CONFIGURACION
  14. ;==============================================================================================
  15. ; El PIC es configurado para usar casi todas las entradas y salidas
  16. ; posibles = 13. Por eso se usa el oscilador con cristal externo,
  17. ; Se define el clock interno a 4 MHz. Se usa el master reset (pata 4).
  18. ;*********************************************************************************************
  19. ; VARIABLES
  20. ;*********************************************************************************************
  21.  
  22. #DEFINE   RAMSTART     0x07       ; Comienzo de la RAM
  23. #DEFINE   PULSADOR_ON  GPIO, 0    ; Un 0 en GP0 comienza la cuenta.
  24. #DEFINE   MOZO         GPIO, 5    ; Un 1 en GP5 enciende el el cartel.
  25. #DEFINE   CONTROL      STATUS,Z  
  26.  
  27. LLAMADA  equ  1
  28.  
  29.       CBLOCK  RAMSTART
  30.               XMILLISEC             ; Usado para el retardo
  31.               YMILLISEC             ; Usado para el retardo
  32.               CUENTA1               ; Usado para los LOOPs Internos
  33.               CUENTA2               ; Usado para los LOOPs Internos
  34.               FLAGS
  35.       ENDC            
  36.  
  37. ;======================================================================================================
  38. ;          VALOR DEL OSCILADOR
  39. ;======================================================================================================
  40. ;OSCCAL calibration value 12F508
  41.         ORG      0x1FF            ; Calibración del Oscilador Interno
  42.         MOVLW    0X1E             ; Valor a cargar.
  43.  
  44.  
  45.         ORG      0x00             ; Reset principal del programa.
  46.         MOVWF    OSCCAL           ; 00h min.freq, 80h stred freq, 0FFh pro max.freq
  47.         GOTO     CONFIGURACION    ; Comienzo del programa.
  48.  
  49. ;*********************************************************************************************
  50. ; Comienzo es Seteo del Pic
  51. ;*********************************************************************************************
  52. CONFIGURACION    
  53.         CLRF    GPIO
  54.         MOVLW   B'00000001'      ; GP5  GP4 GP3 GP2 GP1 GP0
  55.         TRIS    GPIO             ;  S    S   S   S   S   E
  56.         MOVLW   0X10
  57.         MOVWF   CUENTA1           ; Cargo con las cantidades del LOOP
  58.         MOVWF   CUENTA2           ; Cargo con las cantidades del LOOP
  59.  
  60. ;======================================================================================================
  61.      
  62. ;======================================================================================================
  63. ;                      COMIEZO DEL PROGRAMA                                                                =
  64. ;======================================================================================================
  65. MAIN

Gracias por la mano :-/
Título: Re: Proteccion de codigo en Pic12F508
Publicado por: MLO__ en 03 de Noviembre de 2009, 23:07:41
Ok.

En el código si esta configurado el fusible de protección de lectura.

Código: [Seleccionar]
__CONFIG    _IntRC_OSC & _WDT_OFF &  _MCLRE_OFF & _CP_ON
Verifica antes de programar que si esta activado (uno nunca sabe) en Configure/Configuration Bits el label Code Protect. Si esta en ON, es que si esta activado.

Para verificar abre el MPLAB o el entorno con el que estes programando y lee el dispositivo.

Saludos
Título: Re: Proteccion de codigo en Pic12F508
Publicado por: johenrod en 17 de Marzo de 2011, 15:13:28
compañero, apenas acabo de ver tu inquietud, es que soy nuevo por aqui,,
y si aun no has podido saber el porque se ve el programa, asi lo protejas es por lo siguiente...

de fabrica estos pics solo aseguran los datos despues de la linea 40 apx o 40h, y como por lo regular los programas en estos pics son cortos, asi uno lo proteja, se siguen viendo los datos , o mejor , el programa.
asi es, mi estimado amigo que debes escribir el programa, de la posicion 40H en adelante.

ORG 40H


espero te sirva, y me lo haces saber.
Título: Re: Proteccion de codigo en Pic12F508
Publicado por: mtristan en 17 de Marzo de 2011, 15:30:37
.


Me llamó la atención lo que dijo johenrod. Para sacarme la duda consulto el datasheet, y compruebo que es cierto :? :

The first 64 locations and the last location (OSCCAL) can be read, regardless of the code protection bit setting.

Saludos.