From: Vishnu N. <zer...@gm...> - 2010-03-24 04:10:16
|
Hi guys, Im new here. I really like the sdcc project, and have been using it for a long time. I used to use a PIC kit with a bootloader. All I had to do was type "sdcc -mpic14 -p16f877 main.c" and my hex was generated and I could send it through the bootloader. Of course, I modified the lkr file. However, I burned my kit last week, so I bought the new shiny USB kit. I use pk2cmd to burn the firmware. However, now my program doesnt seem to run anymore. I have returned the lkr file to normal, btw. I have no idea why its not working. The only difference I can see is my hex file generated by sdcc is too small (1.6Kb), compared to sample hex files for the device (2.4Kb). Im guessing the sdcc generated hex file doesnt cover the configuration data (which is at 0x2007). Can anyone help me? Im sure its a silly problem. Regards, Vishnu Nambiar. |
From: Vaclav P. <vac...@se...> - 2010-03-24 07:51:20
|
> ---------------------------------------- > for the device (2.4Kb). Im guessing the sdcc generated hex file doesnt cover > the configuration data (which is at 0x2007). > Hi Vishnu, do you have defined some config ? Look at following line: unsigned int __at( 0x2007) __CONFIG = _CP_OFF & _WDT_OFF & _BODEN_OFF & \ _PWRTE_ON & _MCLRE_OFF & _INTRC_OSC_NOCLKOUT & _CPD_OFF; This one is for PIC16F630 so you need to define config line by yourself. But it should have a look like the line above. Vaclav |
From: Vishnu N. <zer...@gm...> - 2010-03-24 18:23:33
|
> Hi Vishnu, > > do you have defined some config ? Look at following line: > unsigned int __at( 0x2007) __CONFIG = _CP_OFF & _WDT_OFF & _BODEN_OFF & \ > _PWRTE_ON & _MCLRE_OFF & _INTRC_OSC_NOCLKOUT & _CPD_OFF; > > This one is for PIC16F630 so you need to define config line by yourself. But it should have a look like the line above. > > Vaclav Hey that worked! Thanks Vaclav! I knew it was something silly! Why is this piece of crucial information no where in the documentation? Regards, Vishnu Nambiar. |
From: Vaclav P. <vac...@se...> - 2010-03-24 19:44:47
|
> ---------------------------------------- > > Hi Vishnu, > > > > do you have defined some config ? Look at following line: > > unsigned int __at( 0x2007) __CONFIG = _CP_OFF & _WDT_OFF & _BODEN_OFF & \ > > _PWRTE_ON & _MCLRE_OFF & _INTRC_OSC_NOCLKOUT & _CPD_OFF; > > > > This one is for PIC16F630 so you need to define config line by yourself. But > it should have a look like the line above. > > > > Vaclav > > Hey that worked! Thanks Vaclav! I knew it was something silly! > > Why is this piece of crucial information no where in the documentation? > > Regards, > Vishnu Nambiar. Hi, to configure the PIC14 oscillator, memory accesses etc. is quite obvious thing. You have to do that in assembler and you have to do that in C as well, in case you don't use the processor which already has correct config word/s programmed (i.e. bootloader application). You would have to do that in any other language as well and for a lot of processors as well. Anyway, other processors can use different way how to define configs. For me PIC way is better because you can see everything in single file - the code, the configuration. AFAIK, AVRs have "fuses" as well but they are defined out of code on some other places. The truth about your question is that in SDCC, there is only one example in PIC16 chapter. Maybe some note in PIC14 chapter would help beginners... Regards, Vaclav |
From: Vishnu N. <zer...@gm...> - 2010-03-25 03:22:10
|
> Hi, to configure the PIC14 oscillator, memory accesses etc. is quite obvious thing. You have to do that in assembler and you have to do that in C as well, in case you don't use the processor which already has correct config word/s programmed (i.e. bootloader application). > > You would have to do that in any other language as well and for a lot of processors as well. Anyway, other processors can use different way how to define configs. For me PIC way is better because you can see everything in single file - the code, the configuration. AFAIK, AVRs have "fuses" as well but they are defined out of code on some other places. > > The truth about your question is that in SDCC, there is only one example in PIC16 chapter. Maybe some note in PIC14 chapter would help beginners... Hi, yeah i can see it now in the PIC16 section. You are right, the bootloader sets the config for me, so I never bothered about it. Thanks, Vishnu. |