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

154 lines
8.5 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/* Коды и объявления команд последовательного загрузчика. Русские пояснения сохранены в 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 */ /* Закрывает условный блок препроцессора; дальнейшие строки относятся к внешнему уровню. */