Update CCS12 peripheral firmware and documentation

This commit is contained in:
2026-09-04 19:34:10 +03:00
parent 55bee25b4f
commit 8cd81736cf
56 changed files with 3808 additions and 504 deletions

View File

@@ -1,17 +1,26 @@
/**
* @file log_to_mem.c
* @brief Кольцевой журнал событий во внешней области памяти.
*
* Резервирует секцию .logg, хранит границы и текущий адрес журнала и очищает
* всю отведённую область по запросу. LOG_PAGE_START/LOG_PAGE_LEN должны
* соответствовать linker command file; clear_mem() выполняет длительную
* блокирующую запись и не предназначена для вызова из обработчика прерывания.
*/
/****************************************************************/
/* TMS320C32 */
/* ====== BIOS, КЛАИН, КЛВСП ====== */
/* ЦНИИ СЭТ (с) 1998-2001г. */
/* ====== BIOS, КЛАИН, КЛВСП ====== */
/* ЦНИИ СЭТ (с) 1998-2001г. */
/****************************************************************/
/* log_to_mem.c
****************************************************************
* Запись логов в памyть *
* Запись логов в памyть *
****************************************************************/
#include "log_to_mem.h"
int no_write = 0,
never_write = 0; // Флаги, чтобы не писать (если что)
never_write = 0; // Флаги, чтобы не писать (если что)
#pragma DATA_SECTION(logs_block,".logg");
unsigned int logs_block[0xFA00];
@@ -19,7 +28,13 @@ unsigned int logs_block[0xFA00];
LOG Log;
unsigned int flog=0;
// Очищение памати, где логи лежат
// Очищение памати, где логи лежат
/**
* @brief Сбрасывает метаданные и физически очищает всю область журнала.
* @post Log.Adres установлен в LOG_PAGE_START, Log.Circl сброшен, а каждое
* слово выделенной области равно нулю.
* @warning Функция блокируется на LOG_PAGE_LEN операций внешней памяти.
*/
void clear_mem()
{
unsigned long i;
@@ -29,6 +44,7 @@ void clear_mem()
Log.Adres = Log.Start;
Log.Circl = 0;
/* Полуинтервал [Start, Finis) исключает запись за последним словом секции. */
for (i=Log.Start; i<Log.Finis; i++)
*(volatile int *)i = 0;
}