Files
Balsam_167/Source/Internal/Include/bios_dsp.h
T
Andrey f741741cf8 Сохранить русские комментарии и настройки проекта в UTF-8
Добавить пояснения к исходникам, заголовкам TI, настройкам CCS и существующим проверкам. Зафиксировать правила кодировки, обзор модулей и аудит комментариев.
2026-10-12 12:24:48 +03:00

154 lines
8.5 KiB
C

/* Коды и объявления команд последовательного загрузчика. Русские пояснения сохранены в UTF-8. */
/* Начинает условие: _BIOS_DSP ещё не определён; защищает повторное включение или задаёт значение сборки. */
#ifndef _BIOS_DSP
/* Определяет защитный символ или переключатель _BIOS_DSP для последующей компиляции. */
#define _BIOS_DSP
/* Включает следующий блок только при определённом символе __cplusplus. */
#ifdef __cplusplus
/* Задаёт C-соглашение о связывании имён при включении заголовка из C++. */
extern "C" {
/* Закрывает условный блок препроцессора; дальнейшие строки относятся к внешнему уровню. */
#endif
/* Задаёт BM_PACKED = 1; данные BM_PACKED. */
#define BM_PACKED 1
/* Задаёт BM_CHAR32 = 0; данные BM_CHAR32. */
#define BM_CHAR32 0
/* Задаёт CHIEF = 1; данные CHIEF. */
#define CHIEF 1
/* Задаёт SLAVE = 0; данные SLAVE. */
#define SLAVE 0
/* Задаёт ADR_FOR_SPECIAL = 0x100; данные ADR_FOR_SPECIAL. */
#define ADR_FOR_SPECIAL 0x100
/* Задаёт CMD_MODBUS_3 = 3; данные CMD_MODBUS_3. */
#define CMD_MODBUS_3 3
/* Задаёт ANS_MODBUS_4 = 4; данные ANS_MODBUS_4. */
#define ANS_MODBUS_4 4
/* Задаёт CMD_MODBUS_15 = 5; данные CMD_MODBUS_15. */
#define CMD_MODBUS_15 5
/* Задаёт CMD_MODBUS_6 = 6; данные CMD_MODBUS_6. */
#define CMD_MODBUS_6 6
/* Задаёт ANS_MODBUS_6 = 7; данные ANS_MODBUS_6. */
#define ANS_MODBUS_6 7
/* Задаёт CMD_MODBUS_16 = 16; данные CMD_MODBUS_16. */
#define CMD_MODBUS_16 16
/*
CMD_MODBUS_3 = 3,
ANS_MODBUS_3 = 4,
CMD_MODBUS_15 = 5,
CMD_MODBUS_6 = 6,
ANS_MODBUS_6 = 7,
CMD_MODBUS_16 = 16,
*/
/* Продолжает список аргументов, полей или выражение enum {; порядок элементов сохраняется. */
enum {
/* Записывает CMD_LOAD значением 51, CMD_UPLOAD, CMD_RUN, CMD_XFLASH, CMD_TFLASH,; данные CMD_LOAD. */
CMD_LOAD=51, CMD_UPLOAD, CMD_RUN, CMD_XFLASH, CMD_TFLASH,
/* Продолжает список аргументов, полей или выражение CMD_PEEK, CMD_POKE, CMD_INITLOAD, CMD_INIT,CMD_EXTEND,; порядок элементов сохраняется. */
CMD_PEEK, CMD_POKE, CMD_INITLOAD, CMD_INIT,CMD_EXTEND,
/* Записывает CMD_VECTOR значением 61,; данные CMD_VECTOR. */
CMD_VECTOR=61,
/* Продолжает список аргументов, полей или выражение CMD_IMPULSE,; порядок элементов сохраняется. */
CMD_IMPULSE,
/* стандартные команды */
/* Записывает CMD_STD значением 65, CMD_STD_ANS; данные CMD_STD. */
CMD_STD=65, CMD_STD_ANS
/* Закрывает текущий блок или список полей; следующие операторы относятся к внешнему уровню. */
};
/* Записывает false значением 0, true}; данные false. */
enum {false=0, true};
/** Возвращает номер комманды, если есть или -1 если транзакций не было */
/* Объявляет интерфейс функции get_command; реализация вызывается через этот прототип. */
int get_command(RS_DATA *rs_arr);
/** Стандартный ответ, без параметров */
/* Объявляет интерфейс функции Answer; реализация вызывается через этот прототип. */
void Answer(RS_DATA *rs_arr,int n);
/* начальные установки (не работает)*/
/* Объявляет интерфейс функции init; реализация вызывается через этот прототип. */
void init(RS_DATA *rs_arr);
/**@name Комманды
* Комманды, вызываемые через последовательный канал*/
//@{
/** Инициировать загрузку блока.
Настраивает прием блока данных */
/* Объявляет интерфейс функции initload; реализация вызывается через этот прототип. */
void initload(RS_DATA *rs_arr);
/** Загрузка блока.
Вызываетса после загрузки блока через RS */
/* Объявляет интерфейс функции load; реализация вызывается через этот прототип. */
void load(RS_DATA *rs_arr);
/** Выполнить программу в формате Serial Boot.
@precondition Должна быть произведена загрузка блока
Адрес программы беретса из заголовка и
сравниваетса с переменной RecvPtr, заполнаемой в ф-ции load
@see load */
/* Объявляет интерфейс функции run; реализация вызывается через этот прототип. */
void run (RS_DATA *rs_arr);
/** Прочитать ачейку памати */
/* Объявляет интерфейс функции peek; реализация вызывается через этот прототип. */
void peek(RS_DATA *rs_arr);
/** Записать в ачейку памати */
/* Объявляет интерфейс функции poke; реализация вызывается через этот прототип. */
void poke(RS_DATA *rs_arr);
/** Передать блок памати */
/* Объявляет интерфейс функции upload; реализация вызывается через этот прототип. */
void upload(RS_DATA *rs_arr);
/** Прошить XILINX.
@precondition Должна быть произведена загрузка блока
Адрес и длина прошивки беретса из заголовка и
сравниваетса с переменными RecvPtr и Length, заполнаемыми в ф-ции load,
так же смотрит магическое слово в начале прошивки
@see load */
/* Объявляет интерфейс функции xflash; реализация вызывается через этот прототип. */
void xflash(RS_DATA *rs_arr);
/** Прошить TMS.
@precondition Должна быть произведена загрузка блока
Адрес и длина прошивки беретса из заголовка и
сравниваетса с переменными RecvPtr и Length, заполнаемыми в ф-ции load
@see load */
/* Объявляет интерфейс функции tflash; реализация вызывается через этот прототип. */
void tflash(RS_DATA *rs_arr);
/* расширенные команды дла биоса */
/* Объявляет интерфейс функции extendbios; реализация вызывается через этот прототип. */
void extendbios(RS_DATA *rs_arr);
/* Объявляет интерфейс функции write_memory; реализация вызывается через этот прототип. */
void write_memory(unsigned long addr, unsigned int data);
/* Объявляет интерфейс функции read_memory; реализация вызывается через этот прототип. */
unsigned int read_memory(unsigned long addr);
//@}
/* Включает следующий блок только при определённом символе __cplusplus. */
#ifdef __cplusplus
/* Закрывает текущий блок или список полей; следующие операторы относятся к внешнему уровню. */
}
/* Закрывает условный блок препроцессора; дальнейшие строки относятся к внешнему уровню. */
#endif
#endif/* _BIOS_DSP */ /* Закрывает условный блок препроцессора; дальнейшие строки относятся к внешнему уровню. */