View previous topic :: View next topic |
Author |
Message |
cerr
Joined: 10 Feb 2011 Posts: 241 Location: Vancouver, BC
|
bootloader question |
Posted: Fri Feb 25, 2011 11:22 am |
|
|
Hi There,
I would like to utilize the sample bootloader and include it into my project. I added ex_bootload.c ex_bootloader.c and loader.c to my MPLAB project and added #include <bootloader.h> to my main file.
IOn compilation i am told *** Error 128 "loader.c" Line 42(1,4): A #DEVICE required before this line so I added #include <18F87K22.h> on top of loader.c which brought up a whole bunch of other errors like Undefined identifier -- putchar & getch... :( How do I correctly add this bootloader to my project? Hints and suggedtions are appreciated, thank you! |
|
![](templates/subSilver/images/spacer.gif) |
PCM programmer
Joined: 06 Sep 2003 Posts: 21708
|
|
Posted: Fri Feb 25, 2011 1:14 pm |
|
|
Don't "add" multiple files to an MPLAB project. Only add the main file.
All other files will be #include files. Don't add those to the project.
Make a new MPLAB project with the Ex_bootloader.c file, in the Examples
directory. Only add that file to the project. Then compile the project.
It should compile OK. |
|
![](templates/subSilver/images/spacer.gif) |
cerr
Joined: 10 Feb 2011 Posts: 241 Location: Vancouver, BC
|
|
Posted: Fri Feb 25, 2011 4:34 pm |
|
|
PCM programmer wrote: | Don't "add" multiple files to an MPLAB project. Only add the main file.
All other files will be #include files. Don't add those to the project.
Make a new MPLAB project with the Ex_bootloader.c file, in the Examples
directory. Only add that file to the project. Then compile the project.
It should compile OK. |
That actually gives me following errors:
Code: | *** Error 12 "C:\Program Files\PICC\drivers\loader.c" Line 69(32,33): Undefined identifier -- getch
*** Error 12 "C:\Program Files\PICC\drivers\loader.c" Line 72(16,17): Undefined identifier -- putchar
*** Error 12 "C:\Program Files\PICC\drivers\loader.c" Line 131(19,20): Undefined identifier -- putchar
*** Error 12 "C:\Program Files\PICC\drivers\loader.c" Line 133(15,16): Undefined identifier -- putchar
*** Error 12 "C:\Program Files\PICC\drivers\loader.c" Line 136(13,14): Undefined identifier -- putchar
*** Error 12 "C:\Program Files\PICC\drivers\loader.c" Line 137(12,13): Undefined identifier -- putchar |
|
|
![](templates/subSilver/images/spacer.gif) |
PCM programmer
Joined: 06 Sep 2003 Posts: 21708
|
|
Posted: Fri Feb 25, 2011 5:13 pm |
|
|
What's your compiler version ?
And what PIC did you compile Ex_bootloader.c for ? |
|
![](templates/subSilver/images/spacer.gif) |
cerr
Joined: 10 Feb 2011 Posts: 241 Location: Vancouver, BC
|
|
Posted: Fri Feb 25, 2011 5:18 pm |
|
|
18F87K22 and 4.119 |
|
![](templates/subSilver/images/spacer.gif) |
PCM programmer
Joined: 06 Sep 2003 Posts: 21708
|
|
Posted: Fri Feb 25, 2011 5:24 pm |
|
|
That's not what I get. I just did a fresh install of vs. 4.119.
I edited the following section of code in Ex_bootloader.c. The portions
shown in bold are the parts that I changed.
Quote: |
#if defined(__PCM__)
#include <16F877.h>
#fuses HS,NOWDT,NOPROTECT,NOLVP
#use delay(clock=20000000)
#use rs232(baud=9600, xmit=PIN_C6, rcv=PIN_C7) // Jumpers: 8 to 11, 7 to 12
#elif defined(__PCH__)
#include <18F87K22.h>
#fuses HSH,NOWDT,NOPROTECT //,NOLVP
#use delay(clock=20000000)
#use rs232(baud=9600, xmit=PIN_C6, rcv=PIN_C7) // Jumpers: 8 to 11, 7 to 12
#endif |
Then I compiled it and the build was successful. I got a couple warnings
but it succeeded.
Quote: |
Executing: "C:\Program Files\PICC\Ccsc.exe" +FH "ex_bootloader.c" +DF +LY -T -A +M -Z +Y=9 +EA #__18F452=TRUE
>>> Warning 224 "C:\Program Files\PICC\drivers\bootloader.h" Line 28(12,23): #warning 128
>>> Warning 202 "C:\Program Files\PICC\drivers\loader.c" Line 60(13,22): Variable never used: next_addr
Memory usage: ROM=1% RAM=2% - 3%
0 Errors, 2 Warnings.
Loaded C:\Program Files\PICC\Examples\ex_bootloader.cof.
BUILD SUCCEEDED: Fri Feb 25 15:21:58 2011 |
|
|
![](templates/subSilver/images/spacer.gif) |
cerr
Joined: 10 Feb 2011 Posts: 241 Location: Vancouver, BC
|
|
Posted: Fri Feb 25, 2011 5:29 pm |
|
|
Uh, okay, I got it compiled and downloaded it. I connected the pin B5 to GND and reset the pic. Am trying to "download software" with SIOW.exe but am failing, it keeps timing out... What else am I doing wrong? Tried Open File and got something transferred. After transfer finished, I removed P5-GND and reset the mcu but my software wasn't there :( ![Question](images/smiles/icon_question.gif) |
|
![](templates/subSilver/images/spacer.gif) |
PCM programmer
Joined: 06 Sep 2003 Posts: 21708
|
|
![](templates/subSilver/images/spacer.gif) |
cerr
Joined: 10 Feb 2011 Posts: 241 Location: Vancouver, BC
|
|
Posted: Fri Feb 25, 2011 5:53 pm |
|
|
Okay, now I don't have the timeout problem anymore, I hook pin B5 up to GND, reset the mcu, go "Open File", select my hex file, and it seems to be getting transferred down to the pic, once the little transfer box disappears i remove my pin B5 GND bridge and hit reset the pic but there's no application present. And also, I seem to be able to download the file even if pin B5 isn't connected to GND, I also tried to connect B5 to +5V in order to get into "normal" operation mode but it's not happening, my program seems to have vanished.... What am I doing wrong here? :o
Thanks! |
|
![](templates/subSilver/images/spacer.gif) |
PCM programmer
Joined: 06 Sep 2003 Posts: 21708
|
|
Posted: Fri Feb 25, 2011 6:32 pm |
|
|
I can't work on this anymore today. Maybe on Sunday. |
|
![](templates/subSilver/images/spacer.gif) |
cerr
Joined: 10 Feb 2011 Posts: 241 Location: Vancouver, BC
|
|
Posted: Fri Feb 25, 2011 6:44 pm |
|
|
PCM programmer wrote: | I can't work on this anymore today. Maybe on Sunday. |
Yep, I understand, it's Friday afternoon/evening. Have a good weekend and I hope to advance within the next days...
Thanks for your help! |
|
![](templates/subSilver/images/spacer.gif) |
cerr
Joined: 10 Feb 2011 Posts: 241 Location: Vancouver, BC
|
|
Posted: Mon Feb 28, 2011 11:12 am |
|
|
Okay, hooked it up again this morning, Pin B5 to +5V and started it witrh a debugger. Added a breakpoint to if(!input(PIN_B5)) and check if it behaved correctly and in fact, it goes directly to application();
Did this again with B5 hooked up top GND and it went to load_program(); from where it went to open loader.c and it got stuck seeminlgy endlessly at buffer[buffidx] = getc(); as I put another breakpoint at the next line after the loop at putchar (XOFF); but the program never got there... :o How come, what's going wrong here? :o
Thanks for help!
Ron |
|
![](templates/subSilver/images/spacer.gif) |
PCM programmer
Joined: 06 Sep 2003 Posts: 21708
|
|
![](templates/subSilver/images/spacer.gif) |
cerr
Joined: 10 Feb 2011 Posts: 241 Location: Vancouver, BC
|
|
Posted: Tue Mar 01, 2011 1:05 pm |
|
|
I did that and followed the instructions about how to install and configure (flow control) Tera Term but it's not happening for me. I did compile ex_bootloader.c & ex_bootload.c and downloaded bootloader into the pic with MPLAB and tried to load bootload.hex with teraterm but nothing...
I don't know what i'm doing wrong... :( |
|
![](templates/subSilver/images/spacer.gif) |
|