Autor Tema: Proteccion de codigo en Pic12F508  (Leído 4226 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado macedo

  • PIC18
  • ****
  • Mensajes: 270
Proteccion de codigo en Pic12F508
« 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

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18310
    • MicroPIC
Re: Proteccion de codigo en Pic12F508
« Respuesta #1 en: 02 de Noviembre de 2009, 02:31:09 »
No tendría que ser así, deberías leer todo a 0.

Desconectado MLO__

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4581
Re: Proteccion de codigo en Pic12F508
« Respuesta #2 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
El papel lo aguanta todo

Desconectado macedo

  • PIC18
  • ****
  • Mensajes: 270
Re: Proteccion de codigo en Pic12F508
« Respuesta #3 en: 02 de Noviembre de 2009, 20:38:21 »
Hola el PROTECT que me decis es en el MPLAB?
Gracias

Desconectado MLO__

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4581
Re: Proteccion de codigo en Pic12F508
« Respuesta #4 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
El papel lo aguanta todo

Desconectado macedo

  • PIC18
  • ****
  • Mensajes: 270
Re: Proteccion de codigo en Pic12F508
« Respuesta #5 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 :-/

Desconectado MLO__

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4581
Re: Proteccion de codigo en Pic12F508
« Respuesta #6 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
El papel lo aguanta todo

Desconectado johenrod

  • PIC18
  • ****
  • Mensajes: 276
Re: Proteccion de codigo en Pic12F508
« Respuesta #7 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.
Si algo parece complicado... es por que esta mal explicado.

Desconectado mtristan

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 395
Re: Proteccion de codigo en Pic12F508
« Respuesta #8 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.

When you see a good move, look for a better one (Emanuel Lasker)


 

anything