X-Git-Url: http://git.linex4red.de/pub/USBasp.git/blobdiff_plain/ecd82778cf9a53e34f13d9ce6dcd7e1a4cf76b70..21cc9c9e19ce6bd757410cc6da29b5dc2ee8041c:/Projects/AVRISP/Lib/V2Protocol.h?ds=sidebyside diff --git a/Projects/AVRISP/Lib/V2Protocol.h b/Projects/AVRISP/Lib/V2Protocol.h index 2cc7fc432..5c8bd7513 100644 --- a/Projects/AVRISP/Lib/V2Protocol.h +++ b/Projects/AVRISP/Lib/V2Protocol.h @@ -37,59 +37,48 @@ #define _V2_PROTOCOL_ /* Includes: */ - #include - #include + #include + + #include "../Descriptors.h" + #include "V2ProtocolConstants.h" + #include "V2ProtocolParams.h" + #include "V2ProtocolTarget.h" - /* Macros: */ - #define CMD_SIGN_ON 0x01 - #define CMD_SET_PARAMETER 0x02 - #define CMD_GET_PARAMETER 0x03 - #define CMD_OSCCAL 0x05 - #define CMD_LOAD_ADDRESS 0x06 - #define CMD_FIRMWARE_UPGRADE 0x07 - #define CMD_RESET_PROTECTION 0x0A - #define CMD_ENTER_PROGMODE_ISP 0x10 - #define CMD_LEAVE_PROGMODE_ISP 0x11 - #define CMD_CHIP_ERASE_ISP 0x12 - #define CMD_PROGRAM_FLASH_ISP 0x13 - #define CMD_READ_FLASH_ISP 0x14 - #define CMD_PROGRAM_EEPROM_ISP 0x15 - #define CMD_READ_EEPROM_ISP 0x16 - #define CMD_PROGRAM_FUSE_ISP 0x17 - #define CMD_READ_FUSE_ISP 0x18 - #define CMD_PROGRAM_LOCK_ISP 0x19 - #define CMD_READ_LOCK_ISP 0x1A - #define CMD_READ_SIGNATURE_ISP 0x1B - #define CMD_READ_OSCCAL_ISP 0x1C - #define CMD_SPI_MULTI 0x1D - - #define STATUS_CMD_OK 0x00 - #define STATUS_CMD_TOUT 0x80 - #define STATUS_RDY_BSY_TOUT 0x81 - #define STATUS_SET_PARAM_MISSING 0x82 - #define STATUS_CMD_FAILED 0xC0 - #define STATUS_CMD_UNKNOWN 0xC9 - #define STATUS_ISP_READY 0x00 - #define STATUS_CONN_FAIL_MOSI 0x01 - #define STATUS_CONN_FAIL_RST 0x02 - #define STATUS_CONN_FAIL_SCK 0x04 - #define STATUS_TGT_NOT_DETECTED 0x10 - #define STATUS_TGT_REVERSE_INSERTED 0x20 - - #define PARAM_BUILD_NUMBER_LOW 0x80 - #define PARAM_BUILD_NUMBER_HIGH 0x81 - #define PARAM_HW_VER 0x90 - #define PARAM_SW_MAJOR 0x91 - #define PARAM_SW_MINOR 0x92 - #define PARAM_VTARGET 0x94 - #define PARAM_SCK_DURATION 0x98 - #define PARAM_RESET_POLARITY 0x9E - #define PARAM_STATUS_TGT_CONN 0xA1 - #define PARAM_DISCHARGEDELAY 0xA4 + /* Macros: */ + /** Programmer ID string, returned to the host during the CMD_SIGN_ON command processing */ + #define PROGRAMMER_ID "AVRISP_MK2" + + /** Mask for the reading or writing of the high byte in a FLASH word when issuing a low-level programming command */ + #define READ_WRITE_HIGH_BYTE_MASK (1 << 3) + + #define PROG_MODE_PAGED_WRITES_MASK (1 << 0) + #define PROG_MODE_WORD_TIMEDELAY_MASK (1 << 1) + #define PROG_MODE_WORD_VALUE_MASK (1 << 2) + #define PROG_MODE_WORD_READYBUSY_MASK (1 << 3) + #define PROG_MODE_PAGED_TIMEDELAY_MASK (1 << 4) + #define PROG_MODE_PAGED_VALUE_MASK (1 << 5) + #define PROG_MODE_PAGED_READYBUSY_MASK (1 << 6) + #define PROG_MODE_COMMIT_PAGE_MASK (1 << 7) - /* Function Prototypes: */ - void V2Protocol_ProcessCommand(void); + /* Function Prototypes: */ + void V2Protocol_ProcessCommand(void); + + #if defined(INCLUDE_FROM_V2PROTOCOL_C) + static void V2Protocol_Command_Unknown(uint8_t V2Command); + static void V2Protocol_Command_SignOn(void); + static void V2Protocol_Command_GetSetParam(uint8_t V2Command); + static void V2Protocol_Command_LoadAddress(void); + static void V2Protocol_Command_ResetProtection(void); + static void V2Protocol_Command_EnterISPMode(void); + static void V2Protocol_Command_LeaveISPMode(void); + static void V2Protocol_Command_ProgramMemory(uint8_t V2Command); + static void V2Protocol_Command_ReadMemory(uint8_t V2Command); + static void V2Protocol_Command_ChipErase(void); + static void V2Protocol_Command_ReadFuseLockSigOSCCAL(uint8_t V2Command); + static void V2Protocol_Command_WriteFuseLock(uint8_t V2Command); + static void V2Protocol_Command_SPIMulti(void); + #endif #endif