📄 bootldr.h
字号:
#ifndef _BOOTLDR_H_
#define _BOOTLDR_H_
/* must be <= 9 */
#define BOOT_TIMEOUT 5
#define FILL_BYTE 0xFF
#ifndef PROG_START
#ifdef VERBOSE
#define PROG_START 0x300
#else
#define PROG_START 0x200
#endif
#endif
/* definition ROMSIZE found in chip specific header file */
#if !defined(MPLAB_ICD)
#define MEM_TOP (unsigned int)(ROMSIZE&0xFFFF)
#if ROMSIZE >= 65536
#define UPPER_ADDRESS_BYTE (unsigned char)((ROMSIZE>>16)&0xFF)
#endif
#else
#if defined(_18F2220) || defined(_18F4220)
#define MEM_TOP 0x0DC0
#elif defined(_18F1220)
#define MEM_TOP 0x0E80
#elif defined(_18F2439) || defined(_18F4439)
#define MEM_TOP 0x15C0
#elif defined(_18F2320) || defined(_18F4320)
#define MEM_TOP 0x1DC0
#elif defined(_18F1320)
#define MEM_TOP 0x1E80
#elif defined(_18F2539) || defined(_18F4539)
#define MEM_TOP 0x2DC0
#elif defined(_18F242) || defined(_18F442) || defined(_18F248) || defined(_18F448)
#define MEM_TOP 0x3DC0
#elif defined(_18F6520) || defined(_18F8520)
#define MEM_TOP 0x6DC0
#elif defined(_18F252) || defined(_18F452) || defined(_18F258) || defined(_18F458)
#define MEM_TOP 0x7DC0
#elif defined(_18F6525) || defined(_18F6585) || defined(_18F8525) || defined(_18F8585)
#define MEM_TOP 0xBDC0
#elif defined(_18F6620) || defined(_18F8620) || defined(_18F6621) || defined(_18F8621) || \
defined(_18F6680) || defined(_18F8680)
#define MEM_TOP 0xFDC0
#elif defined(_18F6720) || defined(_18F8720)
#define UPPER_ADDRESS_BYTE 0x01
#define MEM_TOP 0xFDC0
#endif
#endif
#if !defined(MEM_TOP)
#warning Uncertain program memory size
#define MEM_TOP 0x8000
#endif
#define BAUD 9600
#define FOSC 4000000L
#define NINE 0 /* Use 9bit communication? FALSE=8bit */
#define OUTPUT 0
#define INPUT 1
#define DIVIDER ((int)(FOSC/(16UL * BAUD) -1))
#define HIGH_SPEED 1
#if NINE == 1
#define NINE_BITS 0x40
#else
#define NINE_BITS 0
#endif
#if HIGH_SPEED == 1
#define SPEED 0x4
#else
#define SPEED 0
#endif
/* Serial initialization */
#define init_comms() \
{ \
SPBRG = DIVIDER; \
TXSTA = (SPEED|NINE_BITS|0x20); \
RCSTA = (NINE_BITS|0x90); \
TRISC=0x80; \
}
#ifndef NOP()
#define NOP() asm("nop")
#endif
#ifndef RESET()
#define RESET() asm("reset")
#endif
/* test conditions */
#define FLASH EEPGD==1
#define EEPROM EEPGD==0
#define CONFIG CFGS==1
/* hex record types */
#define DATA 0
#define END 1
#define EXTEND_ADDRESS 4
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -