/Designs/Measuring_instruments/AWS01A/SW/PIC16F887/bltest/bltest.c
0,0 → 1,19
/**** BootLoader Test****/
 
#CASE // Case sensitive compiler
 
#include "bltest.h"
 
void main() // Main of loaded program
{
int8 i=0;
 
while(TRUE)
{
printf("# Boot Loader Test >>> %u\r\n",i++);
delay_ms(100);
// restart_wdt();
}
}
 
#include "dbloader.h"
/Designs/Measuring_instruments/AWS01A/SW/PIC16F887/bltest/bltest.h
0,0 → 1,21
#include <16F887.h>
#device adc=10
 
#FUSES WDT //No Watch Dog Timer
#FUSES INTRC //Internal RC Osc
#FUSES NOPUT //No Power Up Timer
#FUSES MCLR //Master Clear pin enabled
#FUSES NOPROTECT //Code not protected from reading
#FUSES NOCPD //No EE protection
#FUSES NOBROWNOUT //No brownout reset
#FUSES IESO //Internal External Switch Over mode enabled
#FUSES FCMEN //Fail-safe clock monitor enabled
#FUSES NOLVP //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O
#FUSES NODEBUG //No Debug mode for ICD
#FUSES NOWRT //Program memory not write protected
#FUSES BORV40 //Brownout reset at 4.0V
 
#use delay(clock=8000000)
//#use rs232(baud=9600,parity=N,xmit=PIN_B7,rcv=PIN_B6,bits=8,ERRORS)
#use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7,bits=8,ERRORS)
 
/Designs/Measuring_instruments/AWS01A/SW/PIC16F887/bltest/bltest.hex
0,0 → 1,40
:0C00000000308A00D628000010280800FC
:100020002310C2376F3A2026EF30E4327210D432F8
:10003000733A201F3E1FA012F5060A00831603170D
:100040008C170C140000000003184E2883120C08B3
:100050007F390313A40003170D080313A50003172A
:100060000F080313A60024080C1E34289900250845
:1000700003178D000313260803178F0083168C17B0
:100080000C140000000083120313A30B48284B2814
:10009000831603174E286E288316031783120C0D40
:1000A0000E0D7F390313A40003170D080313A500D9
:1000B00003170F080313A60024080C1E5D289900DF
:1000C000250803178D000313260803178F008D0AD8
:1000D00003198F0A03100313A30B1E288A110A1297
:1000E00007292608F8012502031879282508F700B2
:1000F0008528F7010830A700A50DF70D260877021F
:100100000318F700F80DA70B7C28080078082308CF
:10011000A5006430A60071207708A300780830306D
:10012000031D9928A41CA128A419A128241A203051
:100130009C28A41124122414F80778080C1E9E2869
:1001400099002308A5000A30A60071207708A300B3
:1001500078083030031DB228A419B728241CB7280A
:10016000241A2030F80778080C1EB4289900303083
:10017000A30723080C1EBA2899008A110A120C2919
:1001800022308400831300080319D3280230F800BA
:10019000F701F70BC928F80BC8289730F700F70BC1
:1001A000CF28800BC6288A110A12172984018313CD
:1001B0001F308305713083168F000F0803178711D6
:1001C0000C3003139900A2309800903083129800ED
:1001D000831603170908C039890003131F129F12E1
:1001E00000300317880083128701880189010313F7
:1001F000A001A1012108A10AA200103003178D005F
:1002000000308F00031017300313A3001E282208AC
:10021000A3001B30A40086280D300C1E0D29990068
:100220000A300C1E112999006430A200C028FA2857
:02023000630069
:063960008A0100280800A6
:04400E00FD2CFF3F47
:00000001FF
;PIC16F887
;CRC=B9BE CREATED="09-3-13 23:48"
/Designs/Measuring_instruments/AWS01A/SW/PIC16F887/bltest/dbloader.h
0,0 → 1,17
/*------------------- DUMMY BOOT LOADER --------------------------------------------*/
#define FLASH_BLOCK_SIZE getenv("FLASH_ERASE_SIZE")/2 // Minimal length of Flash Block Size
#define RESERVED_BLOCKS 53 // Number of reserved flash blocks for BootLoader
#define LOADER_RESERVED (getenv("PROGRAM_MEMORY")-(RESERVED_BLOCKS*FLASH_BLOCK_SIZE)) // begining of BootLoader
 
#BUILD(INTERRUPT=FLASH_BLOCK_SIZE) // Redirect Interrupt routine above first flash block
#ORG 4,5
void JumpToTheInterrupt() // Jump to the Interrupt Handler
{ #asm GOTO FLASH_BLOCK_SIZE #endasm }
#ORG 6,FLASH_BLOCK_SIZE-1 {} // First Flash block is reserved
 
#ORG LOADER_RESERVED,getenv("PROGRAM_MEMORY")-1 auto=0
#SEPARATE
void dummy_main() // Main on the fix position
{
reset_cpu();
}