kumarr123
Junior Member level 1
Hi,
I had tried to compile the bootloader code from the mikroE example code for pic18f67k40 microcontroller in mikroC pro for pic. The below code I have tried-
After compiling this code I am receiving this error-
any suggestions for this will be appreciated
Regards,
Kumar
I had tried to compile the bootloader code from the mikroE example code for pic18f67k40 microcontroller in mikroC pro for pic. The below code I have tried-
Code:
#include <built_in.h>
#pragma orgall 0x1C000
#define BOOTLOADER_START_ADDR 0x1C000
#define START_PROGRAM_ADDR 0x01FFFF
static char block[64];
void Start_Program() org START_PROGRAM_ADDR{}
unsigned short UART_Write_Loop(char send, char receive){
unsigned int rslt = 0;
while(1){
Delay_5ms();
UART1_Write(send);
Delay_5ms();
rslt++;
if (rslt == 0x0200)
return 0;
if (UART1_Read() == receive)
return 1;
}
}
void Write_Begin(){
FLASH_Write(START_PROGRAM_ADDR, block);
//--- goto main
block[0] = 0x60; //0xF03EEF60
block[1] = 0xEF;
block[2] = 0x3E;
block[3] = 0xF0;
}
void Start_Bootload(){
char i = 0, xx, yy;
long j = 0;
while (1) {
if (i == 64) {
//--- If 32 words (64 bytes) recieved then write to flash
if (!j)
Write_Begin();
if (j<BOOTLOADER_START_ADDR){
FLASH_Write(j, block);
}
i = 0;
j += 0x40;
}
//--- Ask for yy
UART1_Write('y');
while (!UART1_Data_Ready()) ;
//--- Read yy
yy = UART1_Read();
//--- Ask for xx
UART1_Write('x');
while (!UART1_Data_Ready()) ;
//--- Read xx
xx = UART1_Read();
//--- Save xxyy in block[i]
block[i++] = yy;
block[i++] = xx;
}
}
void main() {
/*LATC = 0;
LATB = 0;
PORTC = 0;
TRISC = 0;
PORTB = 0;
TRISB = 0;*/
UART1_Init(9600);
if (UART_Write_Loop('g','r')) {
Start_Bootload();
}
else {
Start_Program();
}
}
After compiling this code I am receiving this error-
any suggestions for this will be appreciated
Regards,
Kumar