TwiceAsNice  2019-02-18
Macros | Enumerations | Functions | Variables
download_fx2.cpp File Reference
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>
#include <fcntl.h>
#include <sys/stat.h>
#include "download_fx2.h"
Include dependency graph for download_fx2.cpp:

Macros

#define FX2_CPUCS_ADDR   (0xE600)
 
#define FX2_INT_RAMSIZE   (0x4000)
 
#define VENDORCMD_TIMEOUT   (5000)
 
#define MAX_LINE_LENGTH   (512)
 
#define MAX_BYTES_PER_LINE   (256)
 
#define EEPROM_WRITE_SIZE   (1024)
 
#define ROUND_UP(n, v)   ((((n) + ((v) - 1)) / (v)) * (v))
 
#define CHAR_TO_HEXVAL(c)   ((((c) >= '0') && ((c) <= '9')) ? ((c) - '0') : ((((c) - 'A') & 0x0F) + 10))
 
#define GET_HEX_BYTE(char_p)   (((CHAR_TO_HEXVAL((char_p)[0])) << 4) | (CHAR_TO_HEXVAL((char_p)[1])))
 
#define GET_HEX_WORD(char_p)
 
#define FX2_VENDAX_SIZE   (sizeof (fx2_vendax) / (256 * sizeof(char)))
 

Enumerations

enum  fx2_fw_tgt_p { FW_TARGET_NONE = 0, FW_TARGET_RAM, FW_TARGET_SM_I2C, FW_TARGET_LR_I2C }
 

Functions

static int fx2_reset (libusb_device_handle *h, int cpu_enable)
 
static int fx2_load_vendax (libusb_device_handle *h)
 
int fx2_ram_download (libusb_device_handle *h, char *filename, unsigned char extended, char *errmsg)
 

Variables

static char fx2_vendax [][256]
 

Macro Definition Documentation

◆ CHAR_TO_HEXVAL

#define CHAR_TO_HEXVAL (   c)    ((((c) >= '0') && ((c) <= '9')) ? ((c) - '0') : ((((c) - 'A') & 0x0F) + 10))

◆ EEPROM_WRITE_SIZE

#define EEPROM_WRITE_SIZE   (1024)

◆ FX2_CPUCS_ADDR

#define FX2_CPUCS_ADDR   (0xE600)

◆ FX2_INT_RAMSIZE

#define FX2_INT_RAMSIZE   (0x4000)

◆ FX2_VENDAX_SIZE

#define FX2_VENDAX_SIZE   (sizeof (fx2_vendax) / (256 * sizeof(char)))

◆ GET_HEX_BYTE

#define GET_HEX_BYTE (   char_p)    (((CHAR_TO_HEXVAL((char_p)[0])) << 4) | (CHAR_TO_HEXVAL((char_p)[1])))

◆ GET_HEX_WORD

#define GET_HEX_WORD (   char_p)
Value:
(((CHAR_TO_HEXVAL((char_p)[0])) << 12) | ((CHAR_TO_HEXVAL((char_p)[1])) << 8) | \
((CHAR_TO_HEXVAL((char_p)[2])) << 4) | (CHAR_TO_HEXVAL((char_p)[3])))
#define CHAR_TO_HEXVAL(c)
Definition: download_fx2.cpp:20

◆ MAX_BYTES_PER_LINE

#define MAX_BYTES_PER_LINE   (256)

◆ MAX_LINE_LENGTH

#define MAX_LINE_LENGTH   (512)

◆ ROUND_UP

#define ROUND_UP (   n,
 
)    ((((n) + ((v) - 1)) / (v)) * (v))

◆ VENDORCMD_TIMEOUT

#define VENDORCMD_TIMEOUT   (5000)

Enumeration Type Documentation

◆ fx2_fw_tgt_p

Enumerator
FW_TARGET_NONE 
FW_TARGET_RAM 
FW_TARGET_SM_I2C 
FW_TARGET_LR_I2C 

Function Documentation

◆ fx2_load_vendax()

static int fx2_load_vendax ( libusb_device_handle h)
static

◆ fx2_ram_download()

int fx2_ram_download ( libusb_device_handle h,
char *  filename,
unsigned char  extended,
char *  errmsg 
)

◆ fx2_reset()

static int fx2_reset ( libusb_device_handle h,
int  cpu_enable 
)
static

Variable Documentation

◆ fx2_vendax

char fx2_vendax[][256]
static