TwiceAsNice  2019-02-18
Classes | Macros | Enumerations | Functions | Variables
ezusb.c File Reference
#include <stdio.h>
#include <errno.h>
#include <stdlib.h>
#include <string.h>
#include <stdint.h>
#include <libusb-1.0/libusb.h>
#include "ezusb.h"
Include dependency graph for ezusb.c:

Classes

struct  ram_poke_context
 

Macros

#define RW_INTERNAL   0xA0 /* hardware implements this one */
 
#define RW_MEMORY   0xA3
 
#define RETRY_LIMIT   5
 

Enumerations

enum  ram_mode {
  _undef = 0, internal_only, skip_internal, skip_external,
  _undef = 0, internal_only, skip_internal, skip_external,
  _undef = 0, internal_only, skip_internal, skip_external
}
 

Functions

static bool fx_is_external (uint32_t addr, size_t len)
 
static bool fx2_is_external (uint32_t addr, size_t len)
 
static bool fx2lp_is_external (uint32_t addr, size_t len)
 
static int ezusb_write (libusb_device_handle *device, const char *label, uint8_t opcode, uint32_t addr, const unsigned char *data, size_t len)
 
static int ezusb_read (libusb_device_handle *device, const char *label, uint8_t opcode, uint32_t addr, const unsigned char *data, size_t len)
 
static bool ezusb_cpucs (libusb_device_handle *device, uint32_t addr, bool doRun)
 
static bool ezusb_fx3_jump (libusb_device_handle *device, uint32_t addr)
 
static int parse_ihex (FILE *image, void *context, bool(*is_external)(uint32_t addr, size_t len), int(*poke)(void *context, uint32_t addr, bool external, const unsigned char *data, size_t len))
 
static int parse_bin (FILE *image, void *context, bool(*is_external)(uint32_t addr, size_t len), int(*poke)(void *context, uint32_t addr, bool external, const unsigned char *data, size_t len))
 
static int parse_iic (FILE *image, void *context, bool(*is_external)(uint32_t addr, size_t len), int(*poke)(void *context, uint32_t addr, bool external, const unsigned char *data, size_t len))
 
static int ram_poke (void *context, uint32_t addr, bool external, const unsigned char *data, size_t len)
 
static int fx3_load_ram (libusb_device_handle *device, const char *path)
 
int ezusb_load_ram (libusb_device_handle *device, const char *path, int fx_type, int img_type, int stage)
 

Variables

int verbose = 1
 
static int(* parse [IMG_TYPE_MAX])(FILE *image, void *context, bool(*is_external)(uint32_t addr, size_t len), int(*poke)(void *context, uint32_t addr, bool external, const unsigned char *data, size_t len)) = { parse_ihex, parse_iic, parse_bin }
 

Macro Definition Documentation

◆ RETRY_LIMIT

#define RETRY_LIMIT   5

◆ RW_INTERNAL

#define RW_INTERNAL   0xA0 /* hardware implements this one */

◆ RW_MEMORY

#define RW_MEMORY   0xA3

Enumeration Type Documentation

◆ ram_mode

enum ram_mode
Enumerator
_undef 
internal_only 
skip_internal 
skip_external 
_undef 
internal_only 
skip_internal 
skip_external 
_undef 
internal_only 
skip_internal 
skip_external 

Function Documentation

◆ ezusb_cpucs()

static bool ezusb_cpucs ( libusb_device_handle device,
uint32_t  addr,
bool  doRun 
)
static

◆ ezusb_fx3_jump()

static bool ezusb_fx3_jump ( libusb_device_handle device,
uint32_t  addr 
)
static

◆ ezusb_load_ram()

int ezusb_load_ram ( libusb_device_handle device,
const char *  path,
int  fx_type,
int  img_type,
int  stage 
)

◆ ezusb_read()

static int ezusb_read ( libusb_device_handle device,
const char *  label,
uint8_t  opcode,
uint32_t  addr,
const unsigned char *  data,
size_t  len 
)
static

◆ ezusb_write()

static int ezusb_write ( libusb_device_handle device,
const char *  label,
uint8_t  opcode,
uint32_t  addr,
const unsigned char *  data,
size_t  len 
)
static

◆ fx2_is_external()

static bool fx2_is_external ( uint32_t  addr,
size_t  len 
)
static

◆ fx2lp_is_external()

static bool fx2lp_is_external ( uint32_t  addr,
size_t  len 
)
static

◆ fx3_load_ram()

static int fx3_load_ram ( libusb_device_handle device,
const char *  path 
)
static

◆ fx_is_external()

static bool fx_is_external ( uint32_t  addr,
size_t  len 
)
static

◆ parse_bin()

static int parse_bin ( FILE *  image,
void *  context,
bool(*)(uint32_t addr, size_t len)  is_external,
int(*)(void *context, uint32_t addr, bool external, const unsigned char *data, size_t len)  poke 
)
static

◆ parse_ihex()

static int parse_ihex ( FILE *  image,
void *  context,
bool(*)(uint32_t addr, size_t len)  is_external,
int(*)(void *context, uint32_t addr, bool external, const unsigned char *data, size_t len)  poke 
)
static

◆ parse_iic()

static int parse_iic ( FILE *  image,
void *  context,
bool(*)(uint32_t addr, size_t len)  is_external,
int(*)(void *context, uint32_t addr, bool external, const unsigned char *data, size_t len)  poke 
)
static

◆ ram_poke()

static int ram_poke ( void *  context,
uint32_t  addr,
bool  external,
const unsigned char *  data,
size_t  len 
)
static

Variable Documentation

◆ parse

int(* parse[IMG_TYPE_MAX])(FILE *image, void *context, bool(*is_external)(uint32_t addr, size_t len), int(*poke)(void *context, uint32_t addr, bool external, const unsigned char *data, size_t len)) = { parse_ihex, parse_iic, parse_bin }
static

◆ verbose

int verbose = 1