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:
parent
6ddb9e414f
commit
e229c8f8e7
13 changed files with 31 additions and 23 deletions
|
@ -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
|
||||||
|
|
|
@ -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;
|
||||||
|
|
||||||
|
|
|
@ -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("/");
|
||||||
|
|
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
|
@ -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("/");
|
||||||
|
|
|
@ -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();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -391,7 +391,7 @@ void perMain()
|
||||||
#endif
|
#endif
|
||||||
checkSpeakerVolume();
|
checkSpeakerVolume();
|
||||||
checkEeprom();
|
checkEeprom();
|
||||||
writeLogs();
|
logsWrite();
|
||||||
handleUsbConnection();
|
handleUsbConnection();
|
||||||
checkTrainerSettings();
|
checkTrainerSettings();
|
||||||
periodicTick();
|
periodicTick();
|
||||||
|
|
|
@ -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();
|
||||||
|
|
|
@ -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
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -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();
|
||||||
|
|
|
@ -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] = '/';
|
||||||
|
|
|
@ -46,7 +46,7 @@ void preModelLoad()
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(SDCARD)
|
#if defined(SDCARD)
|
||||||
closeLogs();
|
logsClose();
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (pulsesStarted()) {
|
if (pulsesStarted()) {
|
||||||
|
|
|
@ -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
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue