moved libs to the lib directory
This commit is contained in:
164
lib/e502/e502_cm4_defs.h
Normal file
164
lib/e502/e502_cm4_defs.h
Normal file
@ -0,0 +1,164 @@
|
||||
#ifndef E502_LPC_CMD_DEFS_H
|
||||
#define E502_LPC_CMD_DEFS_H
|
||||
|
||||
|
||||
#define E502_CM4_SUPPORT_OUT_CYCLE_SETUP_CHECK(ver) (ver >= 0x01000200)
|
||||
|
||||
|
||||
/***************************************************************************//**
|
||||
@addtogroup e502proto_defs Определения протокола обмена с модулем E502
|
||||
@{
|
||||
*******************************************************************************/
|
||||
|
||||
/** Коды ошибок, возвращаемые модулем при завершении управляющей команды */
|
||||
typedef enum {
|
||||
E502_CM4_ERR_OK = 0, /**< Команда выполнена успешно */
|
||||
E502_CM4_ERR_FPGA_NSTATUS_TOUT = -1001, /**< При загрузке ПЛИС не удалось дождаться сигнала перехода в режим загрузки */
|
||||
E502_CM4_ERR_FPGA_CONF_DONE_TOUT = -1002, /**< При загрузке ПЛИС не удалось дождаться сигнала завершения загрузки */
|
||||
E502_CM4_ERR_FPGA_FW_NOT_PRESENT = -1003, /**< Не обнаружена прошивка ПЛИС во flash-памяти модуля */
|
||||
E502_CM4_ERR_FPGA_REG_NACK = -1004, /**< Обращение к регистру ПЛИС вернуло ответ NACK */
|
||||
E502_CM4_ERR_FPGA_REG_ERROR = -1005, /**< Обращение к регистру ПЛИС вернуло ответ ERROR */
|
||||
E502_CM4_ERR_FPGA_REG_WT_TOUT = -1006, /**< Не удалось дожлаться ответ на обращение к регистру ПЛИС */
|
||||
E502_CM4_ERR_TEST_INVALID_NUM = -1007, /**< Неподдерживаемый номер теста */
|
||||
E502_CM4_ERR_HARD_FAULT = -1007, /**< Восстановление после hard fault */
|
||||
E502_CM4_ERR_TEST_VALUE_MISMATH = -1008, /**< Несовпадение ожидаемых значений при проходе теста */
|
||||
E502_CM4_ERR_TEST_NOT_RUNNING = -1009, /**< Тест не запущен */
|
||||
E502_CM4_ERR_TEST_ALREADY_RUNNING = -1010, /**< Tест уже запщен */
|
||||
E502_CM4_ERR_BF_LDR_FILE_SIZE = -1011, /**< Не удалось найти конец файла прошивки BlackFin */
|
||||
E502_CM4_ERR_LDR_FILE_FORMAT = -1012, /**< Неверный формат файла прошивки BlackFin */
|
||||
/** Используются возможность LDR-файла, недоступные при записи прошивки
|
||||
BlackFin по HDMA */
|
||||
E502_CM4_ERR_LDR_FILE_UNSUP_FEATURE = -1013,
|
||||
/** Неверный стартовый адрес программы в прошивке BlackFin */
|
||||
E502_CM4_ERR_LDR_FILE_UNSUP_STARTUP_ADDR = -1014,
|
||||
/** Истек таймаут выполнения запроса на чтения/запись памяти BlackFin */
|
||||
E502_CM4_ERR_BF_REQ_TIMEOUT = -1015,
|
||||
/** Команда для BlackFin все еще находится в процессе обработки */
|
||||
E502_CM4_ERR_BF_CMD_IN_PROGRESS = -1016,
|
||||
/** Истекло время выполнения управляющей команды процессором BlackFin */
|
||||
E502_CM4_ERR_BF_CMD_TIMEOUT = -1017,
|
||||
/** Возвращено недостаточно данных в ответ на команду к BlackFin */
|
||||
E502_CM4_ERR_BF_CMD_RETURN_INSUF_DATA = -1018,
|
||||
/** Истек таймаут ожидания готовности процессора BlackFin к записи прошивки */
|
||||
E502_CM4_ERR_BF_LOAD_RDY_TOUT = -1019,
|
||||
/** Попытка выполнить операцию для которой нужен сигнальный процессор при
|
||||
отсутствии сигнального процессора в модуле */
|
||||
E502_CM4_ERR_BF_NOT_PRESENT = -1020,
|
||||
/** Неверный адрес памяти BlackFin при записи или чтении по HDMA */
|
||||
E502_CM4_ERR_BF_INVALID_ADDR = -1021,
|
||||
/** Неверный размер данных, передаваемых с управляющей командой в BlackFin */
|
||||
E502_CM4_ERR_BF_INVALID_CMD_DATA_SIZE = -1022,
|
||||
E502_CM4_ERR_UNKNOWN_CMD = -1023, /**< Неподдерживаемый код команды */
|
||||
E502_CM4_ERR_INVALID_CMD_PARAMS = -1024, /**< Неверные параметры переданной команды */
|
||||
E502_CM4_ERR_FIRM_BUF_OVERFLOW = -1025, /**< Переполнение буфера для приема прошивки */
|
||||
E502_CM4_ERR_CMD_SIGNATURE = -1026, /**< Неверный признак начала команды */
|
||||
E502_CM4_ERR_INVALID_CMD_DATA_SIZE = -1027, /**< Неверное количество данных в команде */
|
||||
E502_CM4_ERR_FLASH_PROT_CODE = -1028, /**< Неверный код настройки защиты Flash-памяти */
|
||||
E502_CM4_ERR_FLASH_OP = -1029, /**< Ошибка выполнения операции с Flash-памятью */
|
||||
E502_CM4_ERR_FLASH_DATA_COMPARE = -1030, /**< Ошибка сравнения записанных данных во Flash-память */
|
||||
E502_CM4_ERR_INVALID_PASSWORD = -1031, /**< Неверный пароль для изменения сетевых настроек */
|
||||
E502_CM4_ERR_FPGA_NOT_LOADED = -1032, /**< ПЛИС не был загружен */
|
||||
E502_CM4_ERR_FLASH_SET_PROT_BITS = -1033, /**< Не удалось изменить занчения битов защиты Flash-памяти */
|
||||
E502_CM4_ERR_FPGA_FW_INVALID_TEMP_RANGE = -1034, /**< Загруженная прошивка ПЛИС предназначена для другого темп. исполнения */
|
||||
E502_CM4_ERR_M0_STREAM_START_REQ = -1035, /**< Нет ответа на запрос запуска потока от ядра Cortex-M0 */
|
||||
E502_CM4_ERR_M0_STREAM_STOP_REQ = -1036, /**< Нет ответа на запрос останова потока от ядра Cortex-M0 */
|
||||
E502_CM4_ERR_OUT_STREAM_RUNNING = -1037, /**< Уже запущен вывод в потоковом режиме */
|
||||
E502_CM4_ERR_OUT_NO_CYCLE_BUF = -1038, /**< Нет свободного буфера для циклического режима. Не произошла смена страниц */
|
||||
E502_CM4_ERR_OUT_CYCLE_BUF_SIZE = -1039, /**< Задан слишком большой размер циклического буфера */
|
||||
E502_CM4_ERR_OUT_CYCLE_NOT_LOADED = -1040, /**< Не был полностью загружен циклический буфер перед сменой */
|
||||
} t_e502_cm4_errs;
|
||||
|
||||
/** @} */
|
||||
|
||||
|
||||
typedef enum {
|
||||
E502_STREAM_CH_IN = 0,
|
||||
E502_STREAM_CH_OUT = 1
|
||||
} t_e502_stream_ch;
|
||||
|
||||
|
||||
typedef enum {
|
||||
E502_IFACE_USB = 0,
|
||||
E502_IFACE_TCP = 1
|
||||
} t_e502_ifaces;
|
||||
|
||||
/** Коды команды протокола обмена с модулем E502 */
|
||||
typedef enum {
|
||||
E502_CM4_CMD_GET_USB_SPEED = 6,
|
||||
E502_CM4_CMD_GET_MODULE_NAME = 11,
|
||||
|
||||
E502_CM4_CMD_BOOT = 0x0F,
|
||||
E502_CM4_CMD_FPGA_REG_READ = 0x10,
|
||||
E502_CM4_CMD_FPGA_REG_WRITE = 0x11,
|
||||
E502_CM4_CMD_STREAM_START = 0x12,
|
||||
E502_CM4_CMD_STREAM_STOP = 0x13,
|
||||
E502_CM4_CMD_STREAM_SET_STEP = 0x14,
|
||||
E502_CM4_CMD_STREAM_IS_RUNNING = 0x15,
|
||||
E502_CM4_CMD_FIRM_BUF_WRITE = 0x16,
|
||||
E502_CM4_CMD_FLASH_RD = 0x17,
|
||||
E502_CM4_CMD_FLASH_WR = 0x18,
|
||||
E502_CM4_CMD_FLASH_ERASE = 0x19,
|
||||
E502_CM4_CMD_FLASH_SET_PROTECT = 0x1A,
|
||||
E502_CM4_CMD_FLASH_RELOAD_INFO = 0x1B,
|
||||
E502_CM4_CMD_ETH_CFG_SET = 0x1C,
|
||||
E502_CM4_CMD_ETH_CFG_GET = 0x1D,
|
||||
E502_CM4_CMD_BF_MEM_WRITE = 0x20,
|
||||
E502_CM4_CMD_BF_MEM_READ = 0x21,
|
||||
E502_CM4_CMD_BF_FIRM_LOAD = 0x22,
|
||||
|
||||
E502_CM4_CMD_DROP_DATA_CON = 0x23,
|
||||
E502_CM4_CMD_RELOAD_FPGA = 0x24,
|
||||
E502_CM4_CMD_GET_DEVFLAGS = 0x25,
|
||||
|
||||
E502_CM4_CMD_OUT_CYCLE_LOAD = 0x26,
|
||||
E502_CM4_CMD_OUT_CYCLE_SETUP = 0x27,
|
||||
E502_CM4_CMD_OUT_CYCLE_STOP = 0x28,
|
||||
E502_CM4_CMD_OUT_CYCLE_SETUP_CHECK = 0x29,
|
||||
|
||||
|
||||
|
||||
E502_CM4_CMD_TEST_START = 0x40,
|
||||
E502_CM4_CMD_TEST_STOP = 0x41,
|
||||
E502_CM4_CMD_TEST_GET_STATE = 0x42,
|
||||
|
||||
E502_CM4_CMD_GET_MODULE_INFO = 0x80,
|
||||
E502_CM4_CMD_GET_MODULE_MODE = 0x81,
|
||||
|
||||
E502_CM4_CMD_GET_LAST_ERROR = 0x82
|
||||
} t_e502_cm4_cmd_codes;
|
||||
|
||||
|
||||
|
||||
|
||||
/** @internal */
|
||||
typedef enum {
|
||||
E502_CM4_TEST_NONE=0,
|
||||
E502_CM4_TEST_SRAM_BUF_RING,
|
||||
E502_CM4_TEST_SRAM_SDRAM_RING_DMA,
|
||||
E502_CM4_TEST_USB_TX_CNTR,
|
||||
E502_CM4_TEST_USB_RING,
|
||||
E502_CM4_TEST_SPI_SLAVE,
|
||||
E502_CM4_TEST_SDRAM,
|
||||
E502_CM4_TEST_ETH_PHY_LOOPBACK,
|
||||
E502_CM4_TEST_DAC_CNTR,
|
||||
E502_CM4_TEST_GD_SDIO,
|
||||
E502_CM4_TEST_DCI_CNTR,
|
||||
E502_CM4_TEST_FPGA_RING
|
||||
} t_test_number;
|
||||
|
||||
|
||||
/** @internal */
|
||||
/** Параметры теста */
|
||||
typedef struct {
|
||||
uint32_t test; /**< Номер выполняемого теста */
|
||||
uint32_t run; /**< Признак, запущен ли сейчас тест */
|
||||
uint32_t stage; /**< Этап выполнения теста */
|
||||
uint32_t cntr; /**< Счетчик - сколько раз прошел тест */
|
||||
int32_t err; /**< Код ошибки выполнения теста */
|
||||
uint32_t last_addr; /**< Последний используемый адрес */
|
||||
uint32_t last_wr; /**< Последнее записанное значение */
|
||||
uint32_t last_rd; /**< Последнее считанное значение */
|
||||
} t_e502_cm4_test_state;
|
||||
|
||||
|
||||
#endif // E502_LPC_CMD_DEFS_H
|
||||
Reference in New Issue
Block a user