moved libs to the lib directory

This commit is contained in:
2025-11-13 18:40:06 +03:00
parent 4d1f7fdbe9
commit b80ad585da
634 changed files with 3 additions and 2 deletions

164
lib/e502/e502_cm4_defs.h Normal file
View 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