⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 picboot.h

📁 P1618QP bootloader code
💻 H
字号:

/******************************************************************************\
*	PIC16/18 Bootloader Communications Handler (header file)
*	by Ross M. Fosler
*	Microchip Technology Incorporated
\******************************************************************************/



//Packet control characters
#define STX		15
#define ETX		4
#define DLE		5

//Error conditions
#define ERROR_GEN_READWRITE		-1
#define	ERROR_READ_TIMEOUT		-2
#define ERROR_READ_LIMIT		-3
#define	ERROR_BAD_CHKSUM		-4
#define	ERROR_RETRY_LIMIT		-5
#define ERROR_INVALID_COMMAND	-6
#define ERROR_BLOCK_TOO_SMALL	-7
#define ERROR_PACKET_TOO_BIG	-8
#define ERROR_OFF_BOUNDRY		-9
#define ERROR_BPA_TOO_SMALL		-10
#define ERROR_BPA_TOO_BIG		-11	
#define ERROR_VERIFY_FAILED		-12

//Limits
#define MAX_PACKET			256

//Bootloader commands
#define COMMAND_READVER		0
#define COMMAND_READPM		1
#define COMMAND_WRITEPM		2
#define COMMAND_ERASEPM		3
#define COMMAND_READEE		4
#define COMMAND_WRITEEE		5
#define COMMAND_READCFG		6
#define COMMAND_WRITECFG	7


//PIC structure used for some functions
typedef struct _PIC {
	BYTE BootCmd;
	BYTE BootDatLen;		//Number of bytes to read/write
	DWORD BootAddr;			//24 bit memory address (Prog or EE)
	BYTE BytesPerBlock;
	BYTE BytesPerAddr;
	WORD MaxRetrys;			//Number of retries before failure
} PIC;


//Prototypes
HANDLE APIENTRY OpenPIC(LPSTR ComPort, DWORD BitRate, DWORD ReadTimeOut);
INT APIENTRY ClosePIC(HANDLE hComPort);
INT APIENTRY GetPacket(HANDLE hComPort, BYTE PacketData[], WORD ByteLimit);
INT APIENTRY SendPacket(HANDLE hComPort, BYTE PacketData[], WORD NumOfBytes);
INT APIENTRY SendGetPacket(HANDLE hComPort, BYTE PacketData[], WORD SendNumOfBytes, WORD RecvByteLimit, WORD NumOfRetrys);
INT APIENTRY ReadPIC(HANDLE hComPort, PIC *pic, BYTE PacketData[]);
INT APIENTRY WritePIC(HANDLE hComPort, PIC *pic, BYTE PacketData[]);
INT APIENTRY ErasePIC(HANDLE hComPort, DWORD PICAddr, BYTE nBlock, BYTE nRetry);
INT APIENTRY VerifyPIC(HANDLE hComPort, PIC *pic, BYTE PacketData[]);


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -