Autor Tema: Como escribir los Bytes del Security Code?  (Leído 1943 veces)

0 Usuarios y 2 Visitantes están viendo este tema.

Desconectado marvicdigital

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 311
Como escribir los Bytes del Security Code?
« en: 11 de Noviembre de 2009, 18:00:37 »
Hola a todos.
En la revista Ucontrol 5 creo, explican muy bien como ponerle los Bytes del Security code para proteger nuestro código, muy entendible pero está en lenguaje Assembler, yo quisiera saber como se hace enl enguaje C  por que he hecho varias pruebas pero parece que no funciona, por que nunca me pide el código si voy a leer la Flash del micro y  da lo mismo el código que le ponga siempre termina leyendo la flash...
Agradezco de antemano la guía que me puedan dar.

Saludos

Desconectado marvicdigital

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 311
Re: Como escribir los Bytes del Security Code?
« Respuesta #1 en: 21 de Julio de 2010, 13:50:35 »
Bueno, he decidido hacer lo de la seguridad en los freescale en C pero no me funciona...
Ahora que he vuelto después de dedicarme casi 6 meses a un trabajo, vuelvo a la pregunta que tengo con respecto a este tema, y es como hacerlo pero en C, tengo estas lineas pero en el CW me da error de "Invalid Opcode"....
Este es el código que a mi juicio debería servir...

Código: C
  1. extern void _Startup(void);            /* reset interrupt service routine */
  2. extern void TecladoISR(void);
  3. extern void INT_TIM2Ovrisr(void);
  4. extern void INT_TIM1Ovrisr(void);
  5.  
  6.  
  7. void _IntADC(void){
  8.  
  9.           _asm DC.W $00;                  
  10. }
  11. void _SciTx(void){
  12.           _asm DW $88
  13.        
  14. }
  15. void _SciRx(void){
  16.  
  17.           _asm DW  $99        
  18. }
  19. void _SciErr(void){
  20.           _asm DW  $77        
  21. }
  22.  
  23. void (* const _vect[])() @0xFFDE = {   // Interrupt vector table
  24.         _IntADC,                /* Int.no.  0 INT_ADC (at FFDE)               Unassigned */
  25.         TecladoISR,                /* Int.no.  1 INT_KBI (at FFE0)               Unassigned */
  26.         _SciTx,                /* Int.no.  2 INT_SCITransmit (at FFE2)       Unassigned */
  27.         _SciRx,                /* Int.no.  3 INT_SCIReceive (at FFE4)        Unassigned */
  28.         _SciErr,                /* Int.no.  4 INT_SCIError (at FFE6)          Unassigned */
  29.         UNASSIGNED_ISR,                /* Int.no.  5 Reserved5 (at FFE8)             Unassigned */
  30.         UNASSIGNED_ISR,                /* Int.no.  6 Reserved6 (at FFEA)             Unassigned */
  31.         INT_TIM2Ovrisr,                /* Int.no.  7 INT_TIM2Ovr (at FFEC)           Unassigned */
  32.         UNASSIGNED_ISR,                /* Int.no.  8 INT_TIM2CH1 (at FFEE)           Unassigned */
  33.         UNASSIGNED_ISR,                /* Int.no.  9 INT_TIM2CH0 (at FFF0)           Unassigned */
  34.         INT_TIM1Ovrisr,                /* Int.no. 10 INT_TIM1Ovr (at FFF2)           Unassigned */
  35.         UNASSIGNED_ISR,                /* Int.no. 11 INT_TIM1CH1 (at FFF4)           Unassigned */
  36.         UNASSIGNED_ISR,                /* Int.no. 12 INT_TIM1CH0 (at FFF6)           Unassigned */
  37.         UNASSIGNED_ISR,                /* Int.no. 13 Reserved13 (at FFF8)            Unassigned */
  38.         UNASSIGNED_ISR,                /* Int.no. 14 INT_IRQ1 (at FFFA)              Unassigned */
  39.         UNASSIGNED_ISR,                /* Int.no. 15 INT_SWI (at FFFC)               Unassigned */
  40.         _Startup                       /* Int.no. 16 INT_RESET (at FFFE)             Reset vector */
  41. };
  42.  
  43.  
  44. /* END MCUinit */

Según lo que entendí de tu post y la lectura en al revista Ucontrol No. 5 es que la clave de 8 bytes la puedo escribir en los vectores que no uso, en mi caso la clave sería 00889977..

***  esto es correcto?     :duda :duda

Ahora lo otro es, por que me da error de opcode cuando uso la función DW si en el help del CW está?; también uso la DC.W pero da igual el error...

***  Que hago mal?     :duda  :duda

Agradezco la ayuda que me puedan brindar ...

Saludos