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