CCS C Software and Maintenance Offers
FAQFAQ   FAQForum Help   FAQOfficial CCS Support   SearchSearch  RegisterRegister 

ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

CCS does not monitor this forum on a regular basis.

Please do not post bug reports on this forum. Send them to support@ccsinfo.com

Bootloader example don't compile

 
Post new topic   Reply to topic    CCS Forum Index -> General CCS C Discussion
View previous topic :: View next topic  
Author Message
rikotech8



Joined: 10 Dec 2011
Posts: 376
Location: Sofiq,Bulgariq

View user's profile Send private message

Bootloader example don't compile
PostPosted: Sun Mar 10, 2013 11:56 am     Reply with quote

Hello!
I'm trying to create bootloader by modifying the example provided by CCS but I get an error at one of the loader.c lines.
Here is the code I made:
Code:

#include <16F873A.h>
#fuses HS,NOWDT,NOPROTECT,NOLVP
#use delay(clock=16000000)
#use rs232(baud=9600, xmit=PIN_C2, rcv=PIN_C3,ERRORS)

#include <bootloader.h>
#include <loader.c>

#org LOADER_END+1,LOADER_END+10
void application(void) {
  while(TRUE);
}

#org 0x20,0x3F
void main(void) {
   if(!input(PIN_B5))
   {
      load_program();
   }

   application();
}

#ORG default

#int_global
void isr(void) {
   jump_to_isr(LOADER_END+5*(getenv("BITS_PER_INSTRUCTION")/8));
}

The line of the error is
Code:
#ORG LOADER_ADDR+10, LOADER_END auto=0 default

(this line is in loader.c the driver I have inserted)
The error I get is : Invalid ORG range
Where I'm wrong?
_________________
A person who never made a mistake never tried anything new.
temtronic



Joined: 01 Jul 2010
Posts: 9167
Location: Greensville,Ontario

View user's profile Send private message

PostPosted: Sun Mar 10, 2013 6:45 pm     Reply with quote

Have you actually got the examples supplied by CCS to compiler and execute correctly?
jeremiah



Joined: 20 Jul 2010
Posts: 1327

View user's profile Send private message

PostPosted: Sun Mar 10, 2013 7:50 pm     Reply with quote

You have 2 #org statements that have overlapping addresses. You can see that by comparing the #org in your code with the one in the error line. You should probably take a step back and really make sure you know where things go. From my own experience, a large % of bootloader problems come from stuff not placed in the right address locations.
rikotech8



Joined: 10 Dec 2011
Posts: 376
Location: Sofiq,Bulgariq

View user's profile Send private message

PostPosted: Mon Mar 11, 2013 2:32 am     Reply with quote

Thank you guys!
I saw my mistake was not using complete example bootloader.c
Now the code compiles fine!
New bootloader code is:
Code:

#include <16F873A.h>
#fuses HS,NOWDT,NOPROTECT,NOLVP
#use delay(clock=16M)
#use rs232(baud=9600, xmit=PIN_C2, rcv=PIN_C3,ERRORS)
#define _bootloader

#include <bootloader.h>
#include <loader.c>

#org LOADER_END+1,LOADER_END+10
void application(void) {
  while(TRUE);
}

#org 0x20,0x3F
void main(void) {
   if(!input(PIN_B5))
   {
      printf("Ready...");
      load_program();
   }

   application();
}

#ORG default
#int_global
void isr(void) {
   jump_to_isr(LOADER_END+5*(getenv("BITS_PER_INSTRUCTION")/8));
}


The code to send:
Code:

#include <16F873A.h>
#fuses HS,NOWDT,NOPROTECT,NOLVP
#use delay(clock=16M)
#use rs232(baud=9600, xmit=PIN_C2, rcv=PIN_C3,ERRORS)
#include <bootloader.h>

void main(void)
{
   char c;
   delay_ms(100);
   while (true)
   {
      c = getc();
      putc(c);
   }
}


How to send my second code. I guess I need special software for my PC.
I tried to use this one http://www.etc.ugal.ro/cchiculita/software/picbootloader.htm
but it can't establish communication with my PIC. Apparently I need another software.
I have heard that I can use hyperterminal, or Serial Input/Output Monitor(siow provided by CCS), but I don't know how to load the hex file to be send.

Thank you in advance!
_________________
A person who never made a mistake never tried anything new.
Display posts from previous:   
Post new topic   Reply to topic    CCS Forum Index -> General CCS C Discussion All times are GMT - 6 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group