Autor Tema: 18f4550, bootloader en c + codigo en ccs c (ayuda)  (Leído 8870 veces)

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

Desconectado zoom

  • PIC10
  • *
  • Mensajes: 12
18f4550, bootloader en c + codigo en ccs c (ayuda)
« en: 22 de Abril de 2008, 15:47:37 »
Hola, estoy con una picdem FS de microchip con un 18f4550

El pic viene programado de fabrica con un bootloader desde la direccion 000h hasta la 07ffh tengo que tener el vector de reset en la 0800h interrupcion alta prioridad en 0808h y baja en 0818h el codigo mio desde la 08019h

programo el pic con ccsc y quiero encender dos leds, no funciona, aqui va el codigo a ver si sabeis donde la estoy liando


#include <18F4550.h>
//~~~ 20MHZ OSCILLATOR CONFIGS ~~~//
//// FULL SPEED
#fuses WRTB, HSPLL,NOWDT,NOPROTECT,NOLVP,NODEBUG,USBDIV,PLL5,CPUDIV1,VREGEN,MCLR,STVREN
#use delay(clock=48000000)


#build (reset=0x800,interrupt=0x808)
#build (nosleep)
void main() {

   SET_TRIS_D(0x00);
   setup_adc_ports(NO_ANALOGS);  // all pins digital
   while(1){

        output_bit(PIN_D2,1);
        output_bit(PIN_D3,1);

   }

si necesitais mas informacion para detectar el problema pedidme-lo

un saludo

Desconectado zoom

  • PIC10
  • *
  • Mensajes: 12
Re: 18f4550, bootloader en c + codigo en ccs c (ayuda)
« Respuesta #1 en: 23 de Abril de 2008, 05:00:45 »
al final he conseguido resolverlo, hay que poner
#build (reset=0x800:0x800,interrupt=0x808:0x808)
#org 0x000, 0x07FF{}

al principio para reservar la memoria para el bootloader

y
#org 0x0819, 0x0919 al principio del main para indicar que empieza aqui

ahora estoy probando con transmision usb per me da errores. si coloco estas lineas no vuelve a compilar:

#DEFINE USB_HID_DEVICE  FALSE
#define USB_EP1_TX_ENABLE  USB_ENABLE_BULK   // turn on EP1(EndPoint1) for IN bulk/interrupt transfers
#define USB_EP1_RX_ENABLE  USB_ENABLE_BULK   // turn on EP1(EndPoint1) for OUT bulk/interrupt transfers
#define USB_EP1_TX_SIZE    32                // size to allocate for the tx endpoint 1 buffer
#define USB_EP1_RX_SIZE    32                // size to allocate for the rx endpoint 1 buffer


#if __USB_PIC_PERIF__ && defined(__PCH__)
 #define USB_CON_SENSE_PIN PIN_B2
#endif

#if __USB_PIC_PERIF__
#include <pic18_usb.h>   //Microchip PIC18Fxx5x hardware layer for usb.c
#else
#include <usbn960x.c>   //National 960x hardware layer for usb.c
#endif
#include "C:\Documents and Settings\David\Escritorio\firmaware\descriptorsusb.h"    //USB Configuration and Device descriptors for this UBS device
#include <usb.c>        //handles usb setup tokens and get descriptor reports


me dice invalid org range

alguien sabe porque?

Desconectado zoom

  • PIC10
  • *
  • Mensajes: 12
Re: 18f4550, bootloader en c + codigo en ccs c (ayuda)
« Respuesta #2 en: 23 de Abril de 2008, 10:19:50 »
Ya esta solucionado, hay que poner el codigo de usuario mas abajo en memoria, los endpoinds declarados en ccsc estaban casualmente donde intetntava poner el codigo de usuario

Al final me he tenido que contestar yo mismo als dos veces  :mrgreen:

Desconectado adrianjpc

  • PIC10
  • *
  • Mensajes: 10
    • uElectronika
Re: 18f4550, bootloader en c + codigo en ccs c (ayuda)
« Respuesta #3 en: 24 de Febrero de 2009, 07:27:29 »
HOLAA!!

OYE EL ERROR QUE OBTUBISTE  INVALID ORG RANGE
TAMBIEN LO TENGO
COMO LO CORREGISTEE.

ENSEÑAME EL CODIGOO COMO LO CORREGISTE

DE ANTEMANO GRACIAS

Desconectado adrianjpc

  • PIC10
  • *
  • Mensajes: 10
    • uElectronika
Re: 18f4550, bootloader en c + codigo en ccs c (ayuda)
« Respuesta #4 en: 01 de Julio de 2009, 14:09:22 »
Eh logrado grabar todos mis programa con dos lineas de codigo , sin estas lineas de codigo el modo bootloader no puede funcionar correctamente marcando errores de grabacion.

Estas dos lineas de codigo tienes que ponerlo antes del main()

#build (reset=0x800:0x800,interrupt=0x808:0x808)
#org 0x000, 0x07FF{}

obviamente este codigo es para el pic18f4550

saludos a todos espero que les sirva

Desconectado Marck_21

  • PIC10
  • *
  • Mensajes: 3
Re: 18f4550, bootloader en c + codigo en ccs c (ayuda)
« Respuesta #5 en: 24 de Julio de 2011, 22:37:29 »
Eh logrado grabar todos mis programa con dos lineas de codigo , sin estas lineas de codigo el modo bootloader no puede funcionar correctamente marcando errores de grabacion.

Estas dos lineas de codigo tienes que ponerlo antes del main()

#build (reset=0x800:0x800,interrupt=0x808:0x808)
#org 0x000, 0x07FF{}

obviamente este codigo es para el pic18f4550

saludos a todos espero que les sirva

Hola adrianjpc!, no se si puedas hecharme una mano con eso del HID Bootloader, aun no capto muy bien como debe ser la estructura del programa hacerca de la configración y qué depencias necesitas para correrlo, por decir algo si es un HID se requiere de cierto protocolo en la comunicación dependiedo el tipo de HID que descriptores necesitaste para que funcione?, si pudieras poner tu código para darle un vistazo xD! Saludos..!