Prusa Slicer 2.6.0
Loading...
Searching...
No Matches
flip1.c File Reference
#include "ac_cfg.h"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>
#include <limits.h>
#include <unistd.h>
#include "avrdude.h"
#include "libavrdude.h"
#include "flip1.h"
#include "dfu.h"
#include "usbdevs.h"
+ Include dependency graph for flip1.c:

Go to the source code of this file.

Classes

struct  flip1
 
struct  flip1_cmd
 
struct  flip1_cmd_header
 

Macros

#define FLIP1(pgm)   ((struct flip1 *)(pgm->cookie))
 
#define FLIP1_CMD_PROG_START   0x01
 
#define FLIP1_CMD_DISPLAY_DATA   0x03
 
#define FLIP1_CMD_WRITE_COMMAND   0x04
 
#define FLIP1_CMD_READ_COMMAND   0x05
 
#define FLIP1_CMD_CHANGE_BASE_ADDRESS   0x06
 
#define FLIP1_READ_BOOTLOADER_VERSION   { 0x00, 0x00 }
 
#define FLIP1_READ_DEVICE_BOOT_ID1   { 0x00, 0x01 }
 
#define FLIP1_READ_DEVICE_BOOT_ID2   { 0x00, 0x02 }
 
#define FLIP1_READ_MANUFACTURER_CODE   { 0x01, 0x30 }
 
#define FLIP1_READ_FAMILY_CODE   { 0x01, 0x31 }
 
#define FLIP1_READ_PRODUCT_NAME   { 0x01, 0x60 }
 
#define FLIP1_READ_PRODUCT_REVISION   { 0x01, 0x61 }
 
#define STATE_dfuERROR   10 /* bState; requires a DFU_CLRSTATUS */
 
#define LONG_DFU_TIMEOUT   10000 /* 10 s for program and erase */
 

Enumerations

enum  flip1_mem_unit { FLIP1_MEM_UNIT_FLASH = 0x00 , FLIP1_MEM_UNIT_EEPROM = 0x01 , FLIP1_MEM_UNIT_UNKNOWN = -1 }
 

Functions

static int flip1_open (PROGRAMMER *pgm, char *port_spec)
 
static int flip1_initialize (PROGRAMMER *pgm, AVRPART *part)
 
static void flip1_close (PROGRAMMER *pgm)
 
static void flip1_enable (PROGRAMMER *pgm)
 
static void flip1_disable (PROGRAMMER *pgm)
 
static void flip1_display (PROGRAMMER *pgm, const char *prefix)
 
static int flip1_program_enable (PROGRAMMER *pgm, AVRPART *part)
 
static int flip1_chip_erase (PROGRAMMER *pgm, AVRPART *part)
 
static int flip1_read_byte (PROGRAMMER *pgm, AVRPART *part, AVRMEM *mem, unsigned long addr, unsigned char *value)
 
static int flip1_write_byte (PROGRAMMER *pgm, AVRPART *part, AVRMEM *mem, unsigned long addr, unsigned char value)
 
static int flip1_paged_load (PROGRAMMER *pgm, AVRPART *part, AVRMEM *mem, unsigned int page_size, unsigned int addr, unsigned int n_bytes)
 
static int flip1_paged_write (PROGRAMMER *pgm, AVRPART *part, AVRMEM *mem, unsigned int page_size, unsigned int addr, unsigned int n_bytes)
 
static int flip1_read_sig_bytes (PROGRAMMER *pgm, AVRPART *part, AVRMEM *mem)
 
static void flip1_setup (PROGRAMMER *pgm)
 
static void flip1_teardown (PROGRAMMER *pgm)
 
void flip1_initpgm (PROGRAMMER *pgm)
 

Variables

const char flip1_desc [] = "FLIP USB DFU protocol version 1 (doc7618)"
 

Class Documentation

◆ flip1

struct flip1
+ Collaboration diagram for flip1:
Class Members
unsigned char boot_ver
struct dfu_dev * dfu
unsigned char part_rev
unsigned char part_sig[3]
unsigned char security_mode_flag

◆ flip1_cmd

struct flip1_cmd
Class Members
unsigned char args[5]
unsigned char cmd

◆ flip1_cmd_header

struct flip1_cmd_header
Class Members
unsigned char cmd
unsigned char end_addr[2]
unsigned char memtype
unsigned char padding[26]
unsigned char start_addr[2]

◆ flip1_prog_footer

struct flip1_prog_footer
Class Members
unsigned char bcdversion[2]
unsigned char crc[4]
unsigned char device[2]
unsigned char ftr_length
unsigned char product[2]
unsigned char signature[3]
unsigned char vendor[2]

Macro Definition Documentation

◆ FLIP1

#define FLIP1 (   pgm)    ((struct flip1 *)(pgm->cookie))

◆ FLIP1_CMD_CHANGE_BASE_ADDRESS

#define FLIP1_CMD_CHANGE_BASE_ADDRESS   0x06

◆ FLIP1_CMD_DISPLAY_DATA

#define FLIP1_CMD_DISPLAY_DATA   0x03

◆ FLIP1_CMD_PROG_START

#define FLIP1_CMD_PROG_START   0x01

◆ FLIP1_CMD_READ_COMMAND

#define FLIP1_CMD_READ_COMMAND   0x05

◆ FLIP1_CMD_WRITE_COMMAND

#define FLIP1_CMD_WRITE_COMMAND   0x04

◆ FLIP1_READ_BOOTLOADER_VERSION

#define FLIP1_READ_BOOTLOADER_VERSION   { 0x00, 0x00 }

◆ FLIP1_READ_DEVICE_BOOT_ID1

#define FLIP1_READ_DEVICE_BOOT_ID1   { 0x00, 0x01 }

◆ FLIP1_READ_DEVICE_BOOT_ID2

#define FLIP1_READ_DEVICE_BOOT_ID2   { 0x00, 0x02 }

◆ FLIP1_READ_FAMILY_CODE

#define FLIP1_READ_FAMILY_CODE   { 0x01, 0x31 }

◆ FLIP1_READ_MANUFACTURER_CODE

#define FLIP1_READ_MANUFACTURER_CODE   { 0x01, 0x30 }

◆ FLIP1_READ_PRODUCT_NAME

#define FLIP1_READ_PRODUCT_NAME   { 0x01, 0x60 }

◆ FLIP1_READ_PRODUCT_REVISION

#define FLIP1_READ_PRODUCT_REVISION   { 0x01, 0x61 }

◆ LONG_DFU_TIMEOUT

#define LONG_DFU_TIMEOUT   10000 /* 10 s for program and erase */

◆ STATE_dfuERROR

#define STATE_dfuERROR   10 /* bState; requires a DFU_CLRSTATUS */

Enumeration Type Documentation

◆ flip1_mem_unit

Enumerator
FLIP1_MEM_UNIT_FLASH 
FLIP1_MEM_UNIT_EEPROM 
FLIP1_MEM_UNIT_UNKNOWN 
133 {
137};
@ FLIP1_MEM_UNIT_FLASH
Definition flip1.c:134
@ FLIP1_MEM_UNIT_UNKNOWN
Definition flip1.c:136
@ FLIP1_MEM_UNIT_EEPROM
Definition flip1.c:135

Function Documentation

◆ flip1_chip_erase()

int flip1_chip_erase ( PROGRAMMER pgm,
AVRPART part 
)
static
907{
908 return -1;
909}

Referenced by flip1_initpgm().

+ Here is the caller graph for this function:

◆ flip1_close()

void flip1_close ( PROGRAMMER pgm)
static
886{
887}

Referenced by flip1_initpgm().

+ Here is the caller graph for this function:

◆ flip1_disable()

void flip1_disable ( PROGRAMMER pgm)
static
894{
895}

Referenced by flip1_initpgm().

+ Here is the caller graph for this function:

◆ flip1_display()

void flip1_display ( PROGRAMMER pgm,
const char *  prefix 
)
static
898{
899}

Referenced by flip1_initpgm().

+ Here is the caller graph for this function:

◆ flip1_enable()

void flip1_enable ( PROGRAMMER pgm)
static
890{
891}

Referenced by flip1_initpgm().

+ Here is the caller graph for this function:

◆ flip1_initialize()

int flip1_initialize ( PROGRAMMER pgm,
AVRPART part 
)
static
881{
882 return -1;
883}

Referenced by flip1_initpgm().

+ Here is the caller graph for this function:

◆ flip1_initpgm()

void flip1_initpgm ( PROGRAMMER pgm)
186{
187 strcpy(pgm->type, "flip1");
188
189 /* Mandatory Functions */
205}
static int flip1_initialize(PROGRAMMER *pgm, AVRPART *part)
Definition flip1.c:880
static int flip1_paged_load(PROGRAMMER *pgm, AVRPART *part, AVRMEM *mem, unsigned int page_size, unsigned int addr, unsigned int n_bytes)
Definition flip1.c:923
static void flip1_disable(PROGRAMMER *pgm)
Definition flip1.c:893
static int flip1_paged_write(PROGRAMMER *pgm, AVRPART *part, AVRMEM *mem, unsigned int page_size, unsigned int addr, unsigned int n_bytes)
Definition flip1.c:929
static int flip1_chip_erase(PROGRAMMER *pgm, AVRPART *part)
Definition flip1.c:906
static void flip1_display(PROGRAMMER *pgm, const char *prefix)
Definition flip1.c:897
static int flip1_read_byte(PROGRAMMER *pgm, AVRPART *part, AVRMEM *mem, unsigned long addr, unsigned char *value)
Definition flip1.c:911
static void flip1_enable(PROGRAMMER *pgm)
Definition flip1.c:889
static void flip1_teardown(PROGRAMMER *pgm)
Definition flip1.c:944
static int flip1_read_sig_bytes(PROGRAMMER *pgm, AVRPART *part, AVRMEM *mem)
Definition flip1.c:935
static void flip1_setup(PROGRAMMER *pgm)
Definition flip1.c:940
static int flip1_open(PROGRAMMER *pgm, char *port_spec)
Definition flip1.c:873
static void flip1_close(PROGRAMMER *pgm)
Definition flip1.c:885
static int flip1_program_enable(PROGRAMMER *pgm, AVRPART *part)
Definition flip1.c:901
static int flip1_write_byte(PROGRAMMER *pgm, AVRPART *part, AVRMEM *mem, unsigned long addr, unsigned char value)
Definition flip1.c:917
static PROGRAMMER * pgm
Definition main.c:192
void(* display)(struct programmer_t *pgm, const char *p)
Definition libavrdude.h:644
int(* paged_write)(struct programmer_t *pgm, AVRPART *p, AVRMEM *m, unsigned int page_size, unsigned int baseaddr, unsigned int n_bytes)
Definition libavrdude.h:659
int(* read_sig_bytes)(struct programmer_t *pgm, AVRPART *p, AVRMEM *m)
Definition libavrdude.h:672
int(* open)(struct programmer_t *pgm, char *port)
Definition libavrdude.h:657
int(* read_byte)(struct programmer_t *pgm, AVRPART *p, AVRMEM *m, unsigned long addr, unsigned char *value)
Definition libavrdude.h:670
int(* paged_load)(struct programmer_t *pgm, AVRPART *p, AVRMEM *m, unsigned int page_size, unsigned int baseaddr, unsigned int n_bytes)
Definition libavrdude.h:662
void(* teardown)(struct programmer_t *pgm)
Definition libavrdude.h:685
void(* enable)(struct programmer_t *pgm)
Definition libavrdude.h:645
int(* program_enable)(struct programmer_t *pgm, AVRPART *p)
Definition libavrdude.h:649
int(* write_byte)(struct programmer_t *pgm, AVRPART *p, AVRMEM *m, unsigned long addr, unsigned char value)
Definition libavrdude.h:668
void(* setup)(struct programmer_t *pgm)
Definition libavrdude.h:684
char type[PGM_TYPELEN]
Definition libavrdude.h:619
int(* initialize)(struct programmer_t *pgm, AVRPART *p)
Definition libavrdude.h:643
void(* close)(struct programmer_t *pgm)
Definition libavrdude.h:658
int(* chip_erase)(struct programmer_t *pgm, AVRPART *p)
Definition libavrdude.h:650
void(* disable)(struct programmer_t *pgm)
Definition libavrdude.h:646

References programmer_t::chip_erase, programmer_t::close, programmer_t::disable, programmer_t::display, programmer_t::enable, flip1_chip_erase(), flip1_close(), flip1_disable(), flip1_display(), flip1_enable(), flip1_initialize(), flip1_open(), flip1_paged_load(), flip1_paged_write(), flip1_program_enable(), flip1_read_byte(), flip1_read_sig_bytes(), flip1_setup(), flip1_teardown(), flip1_write_byte(), programmer_t::initialize, programmer_t::open, programmer_t::paged_load, programmer_t::paged_write, pgm, programmer_t::program_enable, programmer_t::read_byte, programmer_t::read_sig_bytes, programmer_t::setup, programmer_t::teardown, programmer_t::type, and programmer_t::write_byte.

+ Here is the call graph for this function:

◆ flip1_open()

int flip1_open ( PROGRAMMER pgm,
char *  port_spec 
)
static
874{
875 fprintf(stderr, "%s: Error: No USB support in this compile of avrdude\n",
876 progname);
877 return -1;
878}
char * progname
Definition main.c:61

References progname.

Referenced by flip1_initpgm().

+ Here is the caller graph for this function:

◆ flip1_paged_load()

int flip1_paged_load ( PROGRAMMER pgm,
AVRPART part,
AVRMEM mem,
unsigned int  page_size,
unsigned int  addr,
unsigned int  n_bytes 
)
static
925{
926 return -1;
927}

Referenced by flip1_initpgm().

+ Here is the caller graph for this function:

◆ flip1_paged_write()

int flip1_paged_write ( PROGRAMMER pgm,
AVRPART part,
AVRMEM mem,
unsigned int  page_size,
unsigned int  addr,
unsigned int  n_bytes 
)
static
931{
932 return -1;
933}

Referenced by flip1_initpgm().

+ Here is the caller graph for this function:

◆ flip1_program_enable()

int flip1_program_enable ( PROGRAMMER pgm,
AVRPART part 
)
static
902{
903 return -1;
904}

Referenced by flip1_initpgm().

+ Here is the caller graph for this function:

◆ flip1_read_byte()

int flip1_read_byte ( PROGRAMMER pgm,
AVRPART part,
AVRMEM mem,
unsigned long  addr,
unsigned char *  value 
)
static
913{
914 return -1;
915}

Referenced by flip1_initpgm().

+ Here is the caller graph for this function:

◆ flip1_read_sig_bytes()

int flip1_read_sig_bytes ( PROGRAMMER pgm,
AVRPART part,
AVRMEM mem 
)
static
936{
937 return -1;
938}

Referenced by flip1_initpgm().

+ Here is the caller graph for this function:

◆ flip1_setup()

void flip1_setup ( PROGRAMMER pgm)
static
941{
942}

Referenced by flip1_initpgm().

+ Here is the caller graph for this function:

◆ flip1_teardown()

void flip1_teardown ( PROGRAMMER pgm)
static
945{
946}

Referenced by flip1_initpgm().

+ Here is the caller graph for this function:

◆ flip1_write_byte()

int flip1_write_byte ( PROGRAMMER pgm,
AVRPART part,
AVRMEM mem,
unsigned long  addr,
unsigned char  value 
)
static
919{
920 return -1;
921}

Referenced by flip1_initpgm().

+ Here is the caller graph for this function:

Variable Documentation

◆ flip1_desc

const char flip1_desc[] = "FLIP USB DFU protocol version 1 (doc7618)"