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) {
warningResult = 0;
showMessageBox(STR_FORMATTING);
closeLogs();
logsClose();
#if defined(PCBSKY9X)
Card_state = SD_ST_DATA;
#endif

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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