Prusa Slicer 2.6.0
Loading...
Searching...
No Matches
stk500.h File Reference
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Functions

void stk500_initpgm (PROGRAMMER *pgm)
 
int stk500_getsync (PROGRAMMER *pgm)
 
int stk500_drain (PROGRAMMER *pgm, int display)
 

Variables

const char stk500_desc []
 

Function Documentation

◆ stk500_drain()

int stk500_drain ( PROGRAMMER pgm,
int  display 
)
83{
84 return serial_drain(&pgm->fd, display);
85}
#define serial_drain
Definition libavrdude.h:579
static PROGRAMMER * pgm
Definition main.c:192
union filedescriptor fd
Definition libavrdude.h:637

References programmer_t::fd, pgm, and serial_drain.

Referenced by arduino_open(), stk500_getsync(), and stk500_open().

+ Here is the caller graph for this function:

◆ stk500_getsync()

int stk500_getsync ( PROGRAMMER pgm)
89{
90 unsigned char buf[32], resp[32];
91 int attempt;
92
93 /*
94 * get in sync */
95 buf[0] = Cmnd_STK_GET_SYNC;
96 buf[1] = Sync_CRC_EOP;
97
98 /*
99 * First send and drain a few times to get rid of line noise
100 */
101
102 stk500_send(pgm, buf, 2);
103 stk500_drain(pgm, 0);
104 stk500_send(pgm, buf, 2);
105 stk500_drain(pgm, 0);
106
107 for (attempt = 0; attempt < MAX_SYNC_ATTEMPTS; attempt++) {
108 stk500_send(pgm, buf, 2);
109 stk500_recv(pgm, resp, 1);
110 if (resp[0] == Resp_STK_INSYNC){
111 break;
112 }
113 avrdude_message(MSG_INFO, "%s: stk500_getsync() attempt %d of %d: not in sync: resp=0x%02x\n",
114 progname, attempt + 1, MAX_SYNC_ATTEMPTS, resp[0]);
115 }
116 if (attempt == MAX_SYNC_ATTEMPTS) {
117 stk500_drain(pgm, 0);
118 return -1;
119 }
120
121 if (stk500_recv(pgm, resp, 1) < 0)
122 return -1;
123 if (resp[0] != Resp_STK_OK) {
124 avrdude_message(MSG_INFO, "%s: stk500_getsync(): can't communicate with device: "
125 "resp=0x%02x\n",
126 progname, resp[0]);
127 return -1;
128 }
129
130 return 0;
131}
#define MSG_INFO
Definition avrdude.h:51
char * progname
Definition main.c:61
int avrdude_message(const int msglvl, const char *format,...)
Definition main.c:93
static int stk500_send(PROGRAMMER *pgm, unsigned char *buf, size_t len)
Definition stk500.c:62
static int stk500_recv(PROGRAMMER *pgm, unsigned char *buf, size_t len)
Definition stk500.c:68
int stk500_drain(PROGRAMMER *pgm, int display)
Definition stk500.c:82
#define MAX_SYNC_ATTEMPTS
Definition stk500.c:46
#define Cmnd_STK_GET_SYNC
Definition stk500_private.h:36
#define Sync_CRC_EOP
Definition stk500_private.h:32
#define Resp_STK_INSYNC
Definition stk500_private.h:22
#define Resp_STK_OK
Definition stk500_private.h:18

References avrdude_message(), Cmnd_STK_GET_SYNC, MAX_SYNC_ATTEMPTS, MSG_INFO, pgm, progname, Resp_STK_INSYNC, Resp_STK_OK, stk500_drain(), stk500_recv(), stk500_send(), and Sync_CRC_EOP.

Referenced by arduino_open(), mib510_isp(), stk500_disable(), stk500_getparm(), stk500_initialize(), stk500_loadaddr(), stk500_open(), stk500_paged_load(), stk500_paged_write(), stk500_program_enable(), stk500_set_extended_parms(), and stk500_setparm().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ stk500_initpgm()

void stk500_initpgm ( PROGRAMMER pgm)
1322{
1323 strcpy(pgm->type, "STK500");
1324
1325 /*
1326 * mandatory functions
1327 */
1334 pgm->cmd = stk500_cmd;
1335 pgm->open = stk500_open;
1339
1340 /*
1341 * optional functions
1342 */
1352 pgm->page_size = 256;
1353}
int avr_write_byte_default(PROGRAMMER *pgm, AVRPART *p, AVRMEM *mem, unsigned long addr, unsigned char data)
Definition avr.c:530
int avr_read_byte_default(PROGRAMMER *pgm, AVRPART *p, AVRMEM *mem, unsigned long addr, unsigned char *value)
Definition avr.c:183
static int stk500_paged_load(PROGRAMMER *pgm, AVRPART *p, AVRMEM *m, unsigned int page_size, unsigned int addr, unsigned int n_bytes)
Definition stk500.c:882
static int stk500_chip_erase(PROGRAMMER *pgm, AVRPART *p)
Definition stk500.c:180
static int stk500_initialize(PROGRAMMER *pgm, AVRPART *p)
Definition stk500.c:411
static int stk500_set_vtarget(PROGRAMMER *pgm, double v)
Definition stk500.c:982
static int stk500_cmd(PROGRAMMER *pgm, const unsigned char *cmd, unsigned char *res)
Definition stk500.c:138
static void stk500_disable(PROGRAMMER *pgm)
Definition stk500.c:601
static void stk500_display(PROGRAMMER *pgm, const char *p)
Definition stk500.c:1219
static int stk500_set_sck_period(PROGRAMMER *pgm, double v)
Definition stk500.c:1084
static int stk500_set_varef(PROGRAMMER *pgm, unsigned int chan, double v)
Definition stk500.c:1005
static void stk500_print_parms(PROGRAMMER *pgm)
Definition stk500.c:1297
static void stk500_close(PROGRAMMER *pgm)
Definition stk500.c:686
static int stk500_set_fosc(PROGRAMMER *pgm, double v)
Definition stk500.c:1028
static void stk500_setup(PROGRAMMER *pgm)
Definition stk500.c:1302
static int stk500_program_enable(PROGRAMMER *pgm, AVRPART *p)
Definition stk500.c:215
static int stk500_paged_write(PROGRAMMER *pgm, AVRPART *p, AVRMEM *m, unsigned int page_size, unsigned int addr, unsigned int n_bytes)
Definition stk500.c:765
static void stk500_teardown(PROGRAMMER *pgm)
Definition stk500.c:1314
static void stk500_enable(PROGRAMMER *pgm)
Definition stk500.c:650
static int stk500_open(PROGRAMMER *pgm, char *port)
Definition stk500.c:656
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(* 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
int(* set_vtarget)(struct programmer_t *pgm, double v)
Definition libavrdude.h:674
void(* teardown)(struct programmer_t *pgm)
Definition libavrdude.h:685
int(* set_varef)(struct programmer_t *pgm, unsigned int chan, double v)
Definition libavrdude.h:675
int(* cmd)(struct programmer_t *pgm, const unsigned char *cmd, unsigned char *res)
Definition libavrdude.h:651
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
int(* set_fosc)(struct programmer_t *pgm, double v)
Definition libavrdude.h:676
void(* print_parms)(struct programmer_t *pgm)
Definition libavrdude.h:673
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(* set_sck_period)(struct programmer_t *pgm, double v)
Definition libavrdude.h:677
int(* chip_erase)(struct programmer_t *pgm, AVRPART *p)
Definition libavrdude.h:650
void(* disable)(struct programmer_t *pgm)
Definition libavrdude.h:646
int page_size
Definition libavrdude.h:638

References avr_read_byte_default(), avr_write_byte_default(), programmer_t::chip_erase, programmer_t::close, programmer_t::cmd, programmer_t::disable, programmer_t::display, programmer_t::enable, programmer_t::initialize, programmer_t::open, programmer_t::page_size, programmer_t::paged_load, programmer_t::paged_write, pgm, programmer_t::print_parms, programmer_t::program_enable, programmer_t::read_byte, programmer_t::set_fosc, programmer_t::set_sck_period, programmer_t::set_varef, programmer_t::set_vtarget, programmer_t::setup, stk500_chip_erase(), stk500_close(), stk500_cmd(), stk500_disable(), stk500_display(), stk500_enable(), stk500_initialize(), stk500_open(), stk500_paged_load(), stk500_paged_write(), stk500_print_parms(), stk500_program_enable(), stk500_set_fosc(), stk500_set_sck_period(), stk500_set_varef(), stk500_set_vtarget(), stk500_setup(), stk500_teardown(), programmer_t::teardown, programmer_t::type, and programmer_t::write_byte.

Referenced by arduino_initpgm(), and stk500generic_open().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

Variable Documentation

◆ stk500_desc

const char stk500_desc[]
extern