1
0
Fork 0
mirror of https://github.com/opentx/opentx.git synced 2025-07-25 17:25:13 +03:00

Log file moved to RAM and aligned for proper DMA access. Log functions renamed.

This commit is contained in:
Damjan Adamic 2016-09-11 14:25:01 +02:00
parent 6ddb9e414f
commit e229c8f8e7
13 changed files with 31 additions and 23 deletions

View file

@ -101,7 +101,7 @@ void menuRadioSdManager(event_t _event)
if (warningResult) { if (warningResult) {
warningResult = 0; warningResult = 0;
showMessageBox(STR_FORMATTING); showMessageBox(STR_FORMATTING);
closeLogs(); logsClose();
#if defined(PCBSKY9X) #if defined(PCBSKY9X)
Card_state = SD_ST_DATA; Card_state = SD_ST_DATA;
#endif #endif

View file

@ -348,7 +348,7 @@ void menuModelSensor(event_t event)
case SENSOR_FIELD_LOGS: case SENSOR_FIELD_LOGS:
ON_OFF_MENU_ITEM(sensor->logs, SENSOR_2ND_COLUMN, y, STR_LOGS, attr, event); ON_OFF_MENU_ITEM(sensor->logs, SENSOR_2ND_COLUMN, y, STR_LOGS, attr, event);
if (attr && checkIncDec_Ret) { if (attr && checkIncDec_Ret) {
closeLogs(); logsClose();
} }
break; break;

View file

@ -163,7 +163,7 @@ void menuRadioSdManager(event_t _event)
if (warningResult) { if (warningResult) {
warningResult = 0; warningResult = 0;
showMessageBox(STR_FORMATTING); showMessageBox(STR_FORMATTING);
closeLogs(); logsClose();
audioQueue.stopSD(); audioQueue.stopSD();
if (f_mkfs(0, 1, 0) == FR_OK) { if (f_mkfs(0, 1, 0) == FR_OK) {
f_chdir("/"); f_chdir("/");

View file

@ -358,7 +358,7 @@ bool menuModelSensor(event_t event)
lcdDrawText(MENUS_MARGIN_LEFT, y, STR_LOGS); lcdDrawText(MENUS_MARGIN_LEFT, y, STR_LOGS);
sensor->logs = editCheckBox(sensor->logs, SENSOR_2ND_COLUMN, y, attr, event); sensor->logs = editCheckBox(sensor->logs, SENSOR_2ND_COLUMN, y, attr, event);
if (attr && checkIncDec_Ret) { if (attr && checkIncDec_Ret) {
closeLogs(); logsClose();
} }
break; break;
} }

View file

@ -153,7 +153,7 @@ bool menuRadioSdManager(event_t _event)
if (warningResult) { if (warningResult) {
warningResult = 0; warningResult = 0;
showMessageBox(STR_FORMATTING); showMessageBox(STR_FORMATTING);
closeLogs(); logsClose();
audioQueue.stopSD(); audioQueue.stopSD();
if (f_mkfs(0, 1, 0) == FR_OK) { if (f_mkfs(0, 1, 0) == FR_OK) {
f_chdir("/"); f_chdir("/");

View file

@ -21,10 +21,12 @@
#include "opentx.h" #include "opentx.h"
#include "ff.h" #include "ff.h"
FIL g_oLogFile = {0}; FIL g_oLogFile __DMA;
const pm_char * g_logError = NULL; const pm_char * g_logError = NULL;
uint8_t logDelay; uint8_t logDelay;
void writeHeader();
#if defined(PCBTARANIS) || defined(PCBFLAMENCO) || defined(PCBHORUS) #if defined(PCBTARANIS) || defined(PCBFLAMENCO) || defined(PCBHORUS)
#define GET_2POS_STATE(sw) (switchState(SW_ ## sw ## 0) ? -1 : 1) #define GET_2POS_STATE(sw) (switchState(SW_ ## sw ## 0) ? -1 : 1)
#else #else
@ -33,7 +35,13 @@ uint8_t logDelay;
#define GET_3POS_STATE(sw) (switchState(SW_ ## sw ## 0) ? -1 : (switchState(SW_ ## sw ## 2) ? 1 : 0)) #define GET_3POS_STATE(sw) (switchState(SW_ ## sw ## 0) ? -1 : (switchState(SW_ ## sw ## 2) ? 1 : 0))
const pm_char * openLogs()
void logsInit()
{
memset(&g_oLogFile, 0, sizeof(g_oLogFile));
}
const pm_char * logsOpen()
{ {
// Determine and set log file filename // Determine and set log file filename
FRESULT result; FRESULT result;
@ -111,7 +119,7 @@ const pm_char * openLogs()
tmr10ms_t lastLogTime = 0; tmr10ms_t lastLogTime = 0;
void closeLogs() void logsClose()
{ {
if (f_close(&g_oLogFile) != FR_OK) { if (f_close(&g_oLogFile) != FR_OK) {
// close failed, forget file // close failed, forget file
@ -204,7 +212,7 @@ uint32_t getLogicalSwitchesStates(uint8_t first)
return result; return result;
} }
void writeLogs() void logsWrite()
{ {
static const pm_char * error_displayed = NULL; static const pm_char * error_displayed = NULL;
@ -214,7 +222,7 @@ void writeLogs()
lastLogTime = tmr10ms; lastLogTime = tmr10ms;
if (!g_oLogFile.fs) { if (!g_oLogFile.fs) {
const pm_char * result = openLogs(); const pm_char * result = logsOpen();
if (result != NULL) { if (result != NULL) {
if (result != error_displayed) { if (result != error_displayed) {
error_displayed = result; error_displayed = result;
@ -370,14 +378,14 @@ void writeLogs()
if (result<0 && !error_displayed) { if (result<0 && !error_displayed) {
error_displayed = STR_SDCARD_ERROR; error_displayed = STR_SDCARD_ERROR;
POPUP_WARNING(STR_SDCARD_ERROR); POPUP_WARNING(STR_SDCARD_ERROR);
closeLogs(); logsClose();
} }
} }
} }
else { else {
error_displayed = NULL; error_displayed = NULL;
if (g_oLogFile.fs) { if (g_oLogFile.fs) {
closeLogs(); logsClose();
} }
} }
} }

View file

@ -391,7 +391,7 @@ void perMain()
#endif #endif
checkSpeakerVolume(); checkSpeakerVolume();
checkEeprom(); checkEeprom();
writeLogs(); logsWrite();
handleUsbConnection(); handleUsbConnection();
checkTrainerSettings(); checkTrainerSettings();
periodicTick(); periodicTick();

View file

@ -97,7 +97,7 @@ void perMain()
#if defined(SDCARD) #if defined(SDCARD)
sdMountPoll(); sdMountPoll();
writeLogs(); logsWrite();
#endif #endif
event_t evt = getEvent(); event_t evt = getEvent();

View file

@ -1993,7 +1993,7 @@ void opentxClose(uint8_t shutdown)
} }
#if defined(SDCARD) #if defined(SDCARD)
closeLogs(); logsClose();
#endif #endif
saveTimers(); saveTimers();
@ -2551,6 +2551,7 @@ void opentxInit(OPENTX_INIT_ARGS)
else { else {
#if defined(SDCARD) && !defined(PCBMEGA2560) #if defined(SDCARD) && !defined(PCBMEGA2560)
sdInit(); sdInit();
logsInit();
#endif #endif
} }

View file

@ -80,10 +80,9 @@ extern FATFS g_FATFS_Obj;
extern FIL g_oLogFile; extern FIL g_oLogFile;
extern uint8_t logDelay; extern uint8_t logDelay;
const pm_char *openLogs(); void logsInit();
void writeHeader(); void logsClose();
void closeLogs(); void logsWrite();
void writeLogs();
uint32_t sdGetNoSectors(); uint32_t sdGetNoSectors();
uint32_t sdGetSize(); uint32_t sdGetSize();

View file

@ -484,7 +484,7 @@ const pm_char * eeBackupModel(uint8_t i_fileSrc)
UINT written; UINT written;
// we must close the logs as we reuse the same FIL structure // we must close the logs as we reuse the same FIL structure
closeLogs(); logsClose();
// check and create folder here // check and create folder here
strcpy_P(buf, STR_MODELS_PATH); strcpy_P(buf, STR_MODELS_PATH);
@ -567,7 +567,7 @@ const pm_char * eeRestoreModel(uint8_t i_fileDst, char *model_name)
UINT read; UINT read;
// we must close the logs as we reuse the same FIL structure // we must close the logs as we reuse the same FIL structure
closeLogs(); logsClose();
strcpy_P(buf, STR_MODELS_PATH); strcpy_P(buf, STR_MODELS_PATH);
buf[sizeof(MODELS_PATH)-1] = '/'; buf[sizeof(MODELS_PATH)-1] = '/';

View file

@ -46,7 +46,7 @@ void preModelLoad()
#endif #endif
#if defined(SDCARD) #if defined(SDCARD)
closeLogs(); logsClose();
#endif #endif
if (pulsesStarted()) { if (pulsesStarted()) {

View file

@ -170,7 +170,7 @@ void usbMassStorage()
if (sdMounted()) { if (sdMounted()) {
Card_state = SD_ST_DATA; Card_state = SD_ST_DATA;
audioQueue.stopSD(); audioQueue.stopSD();
closeLogs(); logsClose();
f_mount(NULL, "", 0); // unmount SD f_mount(NULL, "", 0); // unmount SD
} }