Update CCS12 peripheral firmware and documentation
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user