Autor Tema: grabar archivos .hex en el pic16f876 con MSE-F87X y Realpic 1  (Leído 2155 veces)

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

Desconectado spike

  • PIC10
  • *
  • Mensajes: 9
grabar archivos .hex en el pic16f876 con MSE-F87X y Realpic 1
« en: 18 de Abril de 2006, 12:04:02 »
mi objetivo es poder escribir programas en C y que funcionen el el pic16f876.

Hasta ahora con el programa RealPic-1.0 ensamblaba el codigo en ensamblador i lo escribia sin problemas en el pic.

Ahora con el programa SDCC creo el fichero .hex ( de un programa escrito en C ) y al intentar pasarlo al pic con el programa RealPic-1.0 me da los siguientes errores:

> error de Overflow Inferior de la memoria de usuario del pic
>
> Error en la carga del fichero .hex


alguien sabe como solucionar esto?
alguien puede aconsejarme algo para poder escribir en C y pasarlo al pic?

saludos i gracias

Desconectado afp

  • PIC10
  • *
  • Mensajes: 4
Re: grabar archivos .hex en el pic16f876 con MSE-F87X y Realpic 1
« Respuesta #1 en: 14 de Septiembre de 2006, 11:57:31 »
Yo tengo el mismo problema, usando el compilador HI-TEC con el entorno MPLAB.
Cuando voy a grabar el archivo  con el realpic , me dice que hay un error de overflow...

Alguien sabe como solucionar esto para el entrenador  piclaboratory?

Gracias anticipadas, un saludo

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
Re: grabar archivos .hex en el pic16f876 con MSE-F87X y Realpic 1
« Respuesta #2 en: 14 de Septiembre de 2006, 13:23:18 »
¿En el RealPic está bien seleccionado el pic?

Me huele a que hay elegido un pic de menos de 8K de memoria de programa, y que al quererle cargar el .HEX no le "entra" y por eso salta el overflow.


- La soberbia de un Einstein es entendible.. la de un salame es intolerable (A.Dolina)
- En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
- Lee, Lee, Lee y luego pregunta.(maunix)
- Las que conducen y arrastran al mundo no son las máquinas, sino las ideas (V. Hugo)
- Todos los hombres se parecen por sus palabras; solamente las obras evidencian que no son iguales.(Moliere)
- Todo debería ser hecho tan simple como sea posible pero no mas simple que eso.(A.Einstein)

Desconectado afp

  • PIC10
  • *
  • Mensajes: 4
Re: grabar archivos .hex en el pic16f876 con MSE-F87X y Realpic 1
« Respuesta #3 en: 14 de Septiembre de 2006, 14:51:31 »
Hola Maunix :

Si que está bien seleccionado tanto en el grabador como en el compilador. Yo uso de compilador el HI-TEC en entorno mplab , y aquí también está seleccionado. 

El tema está en que cuando programo en ensamblador, el vector de inicio del programa tiene que ser el 0x05 ,
 debido a que el entrenador tiene grabado un bootloader y se tiene que saltar a la dirección 0x05.

En ensamblador hago lo siguiente:

              
      List   p=16F876A      ;Tipo de procesador
      include   "P16F876A.INC"   ;Definiciones de registros internos
                                radix         hex

      org   0x04
                                goto          Interrupcion
                                org            0x05
      goto   Inicio      ;Vector de reset QUE NO PUEDE SER EL 0   

Inicio   clrf    PORTB      ;Borra los latch de salida
      bsf      STATUS,RP0   ;Selecciona banco 1
                                **************************
                                ******************ETC******


El problema es que en C no tengo claro como definir el vector de inicio, porque he probado en poner
                                 #asm
                                 org 0x05
                                 #endasm 
al principio, dentro de la función principal, pero tampoco me funciona.     


Si alguien está usando la piclaboratory  programando en C y puede dar idea de como solucionar esto
nos haría un favor.

Gracias por todo , saludos!

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
Re: grabar archivos .hex en el pic16f876 con MSE-F87X y Realpic 1
« Respuesta #4 en: 14 de Septiembre de 2006, 16:32:29 »
Je, peligroso el bootloader ese... si tu 'interrupción' ocurre estando en la página 1, y tu rutina de atención de interrupción está en la página 0... no funcionará .

En fín, no me quiero meter en esos detalles, pero no entiendo como pasamos del error al levantar el HEX a como declarar una sección de código en una sección determinada :shock:

Respecto a la pregunta de ubicar un código en un lugar en específico con Hi-Tech, fíjate este link Positioning code, constant or variable at a specifc address in ROM or RAM.

La parte de "asm" que has querido codificar no te funciona porque es una sentencia sin sentido.

Saludos
- La soberbia de un Einstein es entendible.. la de un salame es intolerable (A.Dolina)
- En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
- Lee, Lee, Lee y luego pregunta.(maunix)
- Las que conducen y arrastran al mundo no son las máquinas, sino las ideas (V. Hugo)
- Todos los hombres se parecen por sus palabras; solamente las obras evidencian que no son iguales.(Moliere)
- Todo debería ser hecho tan simple como sea posible pero no mas simple que eso.(A.Einstein)