/Designs/MRAKOMER4/SW/bootloader/bloader.PJT
1,23 → 1,36
[Directories]
Include=C:\Program Files\PICC\Devices;C:\Program Files\PICC\Drivers;
Library=
LinkerScript=
[defines]
enabled=0
D1=
V1=
[fileformats]
forcecoff=0
debug=4
error=2
object=0
list=0
scratch=0
sta=1
tre=1
allerrors=1
allwarnings=1
stayupne=3
stayupoe=0
[PROJECT]
Target=main.HEX
Target=bloader.hex
Development_Mode=
Processor=0x688F
Processor_Text=PIC16F88
ToolSuite=CCS
Processor_Text=PIC16F88
 
[Directories]
Include=C:\Program Files\PICC\devices\;C:\Program Files\PICC\dr
Library=
LinkerScript=
 
[Target Data]
FileList=C:\Dokumenty\MLAB\Designs\MRAKOMER4\SW\bootloader\bloader.c
BuildTool=C-COMPILER
OptionString=+FM
AdditionalOptionString=
BuildRequired=1
 
[main.c]
[bloader.c]
Type=4
Path=
FileList=
24,22 → 37,19
BuildTool=
OptionString=
AdditionalOptionString=
 
[mru-list]
1=main.c
 
1=bloader.c
[Windows]
0=0000 main.c 0 0 796 451 3 0
 
0=0000 %S 0 0 796 451 3 0
[Units]
Link=0
Count=1
1=bloader.c
[Opened Files]
1=C:\Dokumenty\MLAB\Designs\MRAKOMER4\SW\bootloader\bloader.c
2=C:\Dokumenty\MLAB\Designs\MRAKOMER4\SW\bootloader\bloader.h
3=C:\Program Files\PICC\devices\16F88.h
4=C:\Dokumenty\MLAB\Designs\MRAKOMER4\SW\bootloader\bloader.lst
5=
6=
1=bloader.c
2=bloader.h
3=..\..\..\..\..\..\..\..\Program Files\PICC\Devices\16F88.h
4=..\..\..\..\..\..\..\..\Program Files\PICC\Drivers\string.h
5=..\..\..\..\..\..\..\..\Program Files\PICC\Drivers\stddef.h
6=..\..\..\..\..\..\..\..\Program Files\PICC\Drivers\ctype.h
7=
8=
[Units]
Count=1
1=C:\Dokumenty\MLAB\Designs\MRAKOMER4\SW\bootloader\bloader.c (main)
/Designs/MRAKOMER4/SW/bootloader/bloader.c
1,9 → 1,18
/**** BootLoader ****/
#define VERSION "1.0"
#define VERSION "1.1"
#define ID "$Id$"
 
#CASE // Case sensitive compiler
 
#define FLASH_BLOCK_SIZE 32
#define BLOADER_MAIN_LENGTH 139 // Rezervovane misto pro main BootLoaderu
#define RESERVED_BLOCKS 24 // Pocet rezervovanych bloku Flash pro BootLoader
#define LOADER_RESERVED getenv("PROGRAM_MEMORY")-RESERVED_BLOCKS*FLASH_BLOCK_SIZE
#define BUFFER_LEN_LOD 46
#if FLASH_BLOCK_SIZE != getenv("FLASH_ERASE_SIZE")/2
#error Wrong length of the Flash Block Size. getenv("FLASH_ERASE_SIZE")/getenv("FLASH_WRITE_SIZE")
#endif
 
#include "bloader.h"
#include <string.h>
 
14,7 → 23,7
 
 
#INT_RDA
rs232_handler()
void rs232_handler()
{
putchar(getc());
}
25,8 → 34,8
char VER[4]=VERSION; // Buffer for concatenate of a version string
 
if (REV[strlen(REV)-1]=='$') REV[strlen(REV)-1]=0;
printf("\n\r\n\r# BLoader %s (C) 2007 KAKL\n\r",VER); // Welcome message
printf("#%s\n\r",&REV[4]);
printf("\r\n\r\n# BLoader %s (C) 2007 KAKL\r\n",VER); // Welcome message
printf("#%s\r\n",&REV[4]);
}
 
 
38,7 → 47,9
 
welcome();
 
printf("# Boot Loader Test >>>\n\r# ");
printf("# Reserved: %Lu\r\n", RESERVED_BLOCKS*FLASH_BLOCK_SIZE);
printf("# Boot Loader Test >>>\r\n# ");
enable_interrupts(INT_RDA);
enable_interrupts(GLOBAL);
while(TRUE)
50,14 → 61,7
 
 
/*------------------- BOOT LOADER --------------------------------------------*/
#define FLASH_BLOCK_SIZE 32
#define LOADER_RESERVED getenv("PROGRAM_MEMORY")-26*FLASH_BLOCK_SIZE
#define BUFFER_LEN_LOD 46
#if FLASH_BLOCK_SIZE != getenv("FLASH_ERASE_SIZE")/2
#error Wrong length of the Flash Block Size. getenv("FLASH_ERASE_SIZE")/getenv("FLASH_WRITE_SIZE")
#endif
 
 
#BUILD(INTERRUPT=FLASH_BLOCK_SIZE) // Redirect Interrupt routine above first flash block
#ORG 4,5
void JumpToTheInterrupt() // Jump to the Interrupt Handler
72,7 → 76,7
real_main();
}
 
#ORG LOADER_RESERVED+FLASH_BLOCK_SIZE,getenv("PROGRAM_MEMORY")-130 auto=0 default
#ORG LOADER_RESERVED+FLASH_BLOCK_SIZE,getenv("PROGRAM_MEMORY")-BLOADER_MAIN_LENGTH auto=0 default
 
unsigned int atoi_b16(char *s) // Convert two hex characters to an int8
{
107,7 → 111,7
}
 
#SEPARATE
boot_loader()
void boot_loader()
{
int buffidx;
char buffer[BUFFER_LEN_LOD];
117,7 → 121,7
int16 addr;
int32 next_addr;
 
int8 dataidx, i, count;
int8 dataidx, i;
union program_data {
int8 i8[16];
int16 i16[8];
217,7 → 221,7
 
#ORG default
 
#ORG getenv("PROGRAM_MEMORY")-129,getenv("PROGRAM_MEMORY")-1 auto=0
#ORG getenv("PROGRAM_MEMORY")-BLOADER_MAIN_LENGTH+1,getenv("PROGRAM_MEMORY")-1 auto=0
void main()
{
int8 timeout;