10000 Revert "The ConfigStore::Flash is now based on the Software Timer" · vanvught/rpidmx512@5bb5cb4 · GitHub
[go: up one dir, main page]

Skip to content

Commit 5bb5cb4

Browse files
committed
Revert "The ConfigStore::Flash is now based on the Software Timer"
This reverts commit 709dd17.
1 parent 709dd17 commit 5bb5cb4

File tree

83 files changed

+136
-91
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

83 files changed

+136
-91
lines changed

lib-configstore/.settings/language.settings.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<provider copy-of="extension" id="org.eclipse.cdt.ui.UserLanguageSettingsProvider"/>
66
<provider-reference id="org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider" ref="shared-provider"/>
77
<provider class="org.eclipse.cdt.managedbuilder.language.settings.providers.GCCBuildCommandParser" id="org.eclipse.cdt.managedbuilder.core.GCCBuildCommandParser" keep-relative-paths="false" name="CDT GCC Build Output Parser" parameter="([^/\\\\]*)((g?cc)|([gc]\+\+)|(clang))" prefer-non-shared="true"/>
8-
<provider class="org.eclipse.cdt.managedbuilder.language.settings.providers.GCCBuiltinSpecsDetector" console="false" env-hash="1357687505320969934" id="org.eclipse.embedcdt.managedbuild.cross.arm.core.GCCBuiltinSpecsDetector" keep-relative-paths="false" name="CDT Arm Cross GCC Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} ${cross_toolchain_flags} -E -P -v -dD &quot;${INPUTS}&quot;" prefer-non-shared="true">
8+
<provider class="org.eclipse.cdt.managedbuilder.language.settings.providers.GCCBuiltinSpecsDetector" console="false" env-hash="1920548349986097666" id="org.eclipse.embedcdt.managedbuild.cross.arm.core.GCCBuiltinSpecsDetector" keep-relative-paths="false" name="CDT Arm Cross GCC Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} ${cross_toolchain_flags} -E -P -v -dD &quot;${INPUTS}&quot;" prefer-non-shared="true">
99
<language-scope id="org.eclipse.cdt.core.gcc"/>
1010
<language-scope id="org.eclipse.cdt.core.g++"/>
1111
</provider>

lib-configstore/device/file/storedevice.cpp

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
* @file storedevice.cpp
33
*
44
*/
5-
/* Copyright (C) 2022-2025 by Arjan van Vught mailto:info@gd32-dmx.org
5+
/* Copyright (C) 2022-2023 by Arjan van Vught mailto:info@orangepi-dmx.nl
66
*
77
* Permission is hereby granted, free of charge, to any person obtaining a copy
88
* of this software and associated documentation files (the "Software"), to deal
@@ -179,7 +179,7 @@ bool StoreDevice::Erase(uint32_t nOffset, uint32_t nLength, storedevice::result&
179179

180180
bool StoreDevice::Write(uint32_t nOffset, uint32_t nLength, const uint8_t *pBuffer, storedevice::result& nResult) {
181181
DEBUG_ENTRY
182-
DEBUG_PRINTF("s_State=%u, nOffset=%u, nLength=%u [%u]", static_cast<unsigned int>(s_State), nOffset, nLength, s_nIndex);
182+
DEBUG_PRINTF("nOffset=%u, nLength=%u", nOffset, nLength);
183183
assert(s_State != State::ERROR);
184184
assert(pFile != nullptr);
185185

@@ -221,6 +221,7 @@ bool StoreDevice::Write(uint32_t nOffset, uint32_t nLength, const uint8_t *pBuff
221221
perror("fflush");
222222
}
223223

224+
sync();
224225
DEBUG_EXIT
225226
return true;
226227
}

lib-configstore/include/configstore.h

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -111,10 +111,10 @@ class ConfigStore: StoreDevice {
111111
}
112112
}
113113

114+
bool Flash();
115+
114116
void Dump();
115-
bool Commit() {
116-
return Flash();
117-
}
117+
118118
void Delay();
119119

120120
/*
@@ -169,8 +169,7 @@ class ConfigStore: StoreDevice {
169169
}
170170

171171
private:
172-
uint32_t GetStoreOffset(configstore::Store store);
173-
bool Flash();
172+
uint32_t GetStoreOffset(configstore::Store tStore);
174173

175174
private:
176175
struct Env {

lib-configstore/src/configstore.cpp

Lines changed: 8 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -31,38 +31,13 @@
3131
#include "configstore.h"
3232

3333
#include "hardware.h"
34-
#include "softwaretimers.h"
3534

3635
#include "debug.h"
3736

3837
namespace global {
3938
extern int32_t *gp_nUtcOffset;
4039
} // namespace global
4140

42-
void configstore_commit() {
43-
while (ConfigStore::Get()->Commit())
44-
;
45-
}
46-
47-
static TimerHandle_t s_nTimerId = TIMER_ID_NONE;
48-
static void timer_stop();
49-
50-
static void timer([[maybe_unused]] TimerHandle_t nHandle) {
51-
if (!ConfigStore::Get()->Commit()) {
52-
timer_stop();
53-
}
54-
}
55-
56-
static void timer_start() {
57-
assert(s_nTimerId == TIMER_ID_NONE);
58-
s_nTimerId = SoftwareTimerAdd(100, timer);
59-
}
60-
61-
static void timer_stop() {
62-
assert(s_nTimerId != TIMER_ID_NONE);
63-
SoftwareTimerDelete(s_nTimerId);
64-
}
65-
6641
using namespace configstore;
6742

6843
static constexpr uint8_t s_aSignature[] = {'A', 'v', 'V', 0x01};
@@ -113,7 +88,6 @@ ConfigStore::ConfigStore() {
11388
DEBUG_PUTS("No signature");
11489
memset(&s_ConfigStoreData[StoreConfiguration::SIGNATURE_SIZE], 0, StoreConfiguration::SIZE - StoreConfiguration::SIGNATURE_SIZE);
11590
s_State = State::CHANGED;
116-
timer_start();
11791
}
11892

11993
s_nStoresSize = StoreConfiguration::OFFSET_STORES;
@@ -169,7 +143,6 @@ void ConfigStore::ResetSetList(Store store) {
169143
*pbSetList = 0x00;
170144

171145
s_State = State::CHANGED;
172-
timer_start();
173146
}
174147

175148
void ConfigStore::Update(Store store, uint32_t nOffset, const void *pData, uint32_t nDataLength, uint32_t nSetList, uint32_t nOffsetSetList) {
@@ -204,7 +177,6 @@ void ConfigStore::Update(Store store, uint32_t nOffset, const void *pData, uint3
204177

205178
if (bIsChanged) {
206179
s_State = State::CHANGED;
207-
timer_start();
208180
}
209181

210182
debug_dump(&s_ConfigStoreData[GetStoreOffset(store)] + nOffsetSetList, 8);
@@ -251,22 +223,26 @@ void ConfigStore::Delay() {
251223
}
252224

253225
bool ConfigStore::Flash() {
254-
DEBUG_PRINTF("s_State=%u", static_cast<unsigned int>(s_State));
255226
if (__builtin_expect((s_State == State::IDLE), 1)) {
256227
return false;
257228
}
258229

259230
switch (s_State) {
260231
case State::CHANGED:
232+
s_nWaitMillis = Hardware::Get()->Millis();
261233
s_State = State::CHANGED_WAITING;
262234
return true;
263235
case State::CHANGED_WAITING:
236+
if ((Hardware::Get()->Millis() - s_nWaitMillis) < 100) {
237+
return true;
238+
}
264239
s_State = State::ERASING;
265240
return true;
266241
break;
267242
case State::ERASING: {
268243
storedevice::result result;
269244
if (StoreDevice::Erase(s_nStartAddress, StoreConfiguration::SIZE, result)) {
245+
s_nWaitMillis = Hardware::Get()->Millis();
270246
s_State = State::ERASED_WAITING;
271247
}
272248
assert(result == storedevice::result::OK);
@@ -275,6 +251,9 @@ bool ConfigStore::Flash() {
275251
}
276252
break;
277253
case State::ERASED_WAITING:
254+
if ((Hardware::Get()->Millis() - s_nWaitMillis) < 100) {
255+
return true;
256+
}
278257
s_State = State::ERASED;
279258
return true;
280259
break;

lib-hal/.settings/language.settings.xml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<provider copy-of="extension" id="org.eclipse.cdt.ui.UserLanguageSettingsProvider"/>
66
<provider-reference id="org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider" ref="shared-provider"/>
77
<provider copy-of="extension" id="org.eclipse.cdt.managedbuilder.core.GCCBuildCommandParser"/>
8-
<provider class="org.eclipse.cdt.internal.build.crossgcc.CrossGCCBuiltinSpecsDetector" console="false" env-hash="-868850457862413684" id="org.eclipse.cdt.build.crossgcc.CrossGCCBuiltinSpecsDetector" keep-relative-paths="false" name="CDT Cross GCC Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} -E -P -v -dD &quot;${INPUTS}&quot;" prefer-non-shared="true">
8+
<provider class="org.eclipse.cdt.internal.build.crossgcc.CrossGCCBuiltinSpecsDetector" console="false" env-hash="-938461805531633960" id="org.eclipse.cdt.build.crossgcc.CrossGCCBuiltinSpecsDetector" keep-relative-paths="false" name="CDT Cross GCC Built-in Compiler Settings" parameter="${COM 3CB9 MAND} ${FLAGS} -E -P -v -dD &quot;${INPUTS}&quot;" prefer-non-shared="true">
99
<language-scope id="org.eclipse.cdt.core.gcc"/>
1010
<language-scope id="org.eclipse.cdt.core.g++"/>
1111
</provider>
@@ -17,7 +17,7 @@
1717
<provider copy-of="extension" id="org.eclipse.cdt.ui.UserLanguageSettingsProvider"/>
1818
<provider-reference id="org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider" ref="shared-provider"/>
1919
<provider copy-of="extension" id="org.eclipse.cdt.managedbuilder.core.GCCBuildCommandParser"/>
20-
<provider class="org.eclipse.cdt.managedbuilder.language.settings.providers.GCCBuiltinSpecsDetector" console="false" env-hash="-1614615038661961438" id="org.eclipse.cdt.managedbuilder.core.GCCBuiltinSpecsDetector" keep-relative-paths="false" name="CDT GCC Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} -E -P -v -dD &quot;${INPUTS}&quot;" prefer-non-shared="true">
20+
<provider class="org.eclipse.cdt.managedbuilder.language.settings.providers.GCCBuiltinSpecsDetector" console="false" env-hash="1369006412721853526" id="org.eclipse.cdt.managedbuilder.core.GCCBuiltinSpecsDetector" keep-relative-paths="false" name="CDT GCC Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} -E -P -v -dD &quot;${INPUTS}&quot;" prefer-non-shared="true">
2121
<language-scope id="org.eclipse.cdt.core.gcc"/>
2222
<language-scope id="org.eclipse.cdt.core.g++"/>
2323
</provider>
@@ -26,7 +26,7 @@
2626
</configuration>
2727
<configuration id="ilg.gnuarmeclipse.managedbuild.cross.toolchain.base.309283989.303033930.1702909156" name="H3">
2828
<extension point="org.eclipse.cdt.core.LanguageSettingsProvider">
29-
<provider class="org.eclipse.cdt.managedbuilder.language.settings.providers.GCCBuiltinSpecsDetector" console="true" env-hash="1380270388430272290" id="org.eclipse.embedcdt.managedbuild.cross.arm.core.GCCBuiltinSpecsDetector" keep-relative-paths="false" name="CDT Arm Cross GCC Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} ${cross_toolchain_flags} -E -P -v -dD &quot;${INPUTS}&quot;" prefer-non-shared="true">
29+
<provider class="org.eclipse.cdt.managedbuilder.language.settings.providers.GCCBuiltinSpecsDetector" console="true" env-hash="1943131233095400022" id="org.eclipse.embedcdt.managedbuild.cross.arm.core.GCCBuiltinSpecsDetector" keep-relative-paths="false" name="CDT Arm Cross GCC Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} ${cross_toolchain_flags} -E -P -v -dD &quot;${INPUTS}&quot;" prefer-non-shared="true">
3030
<language-scope id="org.eclipse.cdt.core.gcc"/>
3131
<language-scope id="org.eclipse.cdt.core.g++"/>
3232
</provider>

lib-hal/src/h3/hardware.cpp

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -187,15 +187,11 @@ const char *Hardware::GetSocName(uint8_t &nLength) {
187187
return soc::NAME;
188188
}
189189

190-
void configstore_commit();
191-
192190
bool Hardware::Reboot() {
193191
puts("Rebooting ...");
194192

195193
h3_watchdog_disable();
196194

197-
configstore_commit();
198-
199195
#if !defined(DISABLE_RTC)
200196
m_HwClock.SysToHc();
201197
#endif

lib-network/Makefile.Linux

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
DEFINES=NDEBUG
1+
#DEFINES=NDEBUG
22

33
EXTRA_INCLUDES=
44

lib-network/include/net/protocol/dhcp.h

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,6 @@
2828

2929
#include <cstdint>
3030

31-
#include "net/protocol/ip4.h"
32-
3331
namespace net::dhcp {
3432
static constexpr uint32_t OPT_SIZE = 312;
3533
static constexpr uint32_t MAGIC_COOKIE = 0x63825363; ///< You should not modify it number.

lib-remoteconfig/.settings/language.settings.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<provider copy-of="extension" id="org.eclipse.cdt.ui.UserLanguageSettingsProvider"/>
66
<provider-reference id="org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider" ref="shared-provider"/>
77
<provider copy-of="extension" id="org.eclipse.cdt.managedbuilder.core.GCCBuildCommandParser"/>
8-
<provider class="org.eclipse.cdt.internal.build.crossgcc.CrossGCCBuiltinSpecsDetector" console="false" env-hash="-868850457862413684" id="org.eclipse.cdt.build.crossgcc.CrossGCCBuiltinSpecsDetector" keep-relative-paths="false" name="CDT Cross GCC Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} -E -P -v -dD &quot;${INPUTS}&quot;" prefer-non-shared="true">
8+
<provider class="org.eclipse.cdt.internal.build.crossgcc.CrossGCCBuiltinSpecsDetector" console="false" env-hash="-938461805531633960" id="org.eclipse.cdt.build.crossgcc.CrossGCCBuiltinSpecsDetector" keep-relative-paths="false" name="CDT Cross GCC Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} -E -P -v -dD &quot;${INPUTS}&quot;" prefer-non-shared="true">
99
<language-scope id="org.eclipse.cdt.core.gcc"/>
1010
<language-scope id="org.eclipse.cdt.core.g++"/>
1111
</provider>
@@ -14,7 +14,7 @@
1414
</configuration>
1515
<configuration id="ilg.gnuarmeclipse.managedbuild.cross.toolchain.base.309283989.303033930.1102356485.534880544.1965804425" name="H3">
1616
<extension point="org.eclipse.cdt.core.LanguageSettingsProvider">
17-
<provider class="org.eclipse.cdt.managedbuilder.language.settings.providers.GCCBuiltinSpecsDetector" console="true" env-hash="1356732499129984059" id="org.eclipse.embedcdt.managedbuild.cross.arm.core.GCCBuiltinSpecsDetector" keep-relative-paths="false" name="CDT Arm Cross GCC Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} ${cross_toolchain_flags} -E -P -v -dD &quot;${INPUTS}&quot;" prefer-non-shared="true">
17+
<provider class="org.eclipse.cdt.managedbuilder.language.settings.providers.GCCBuiltinSpecsDetector" console="true" env-hash="1919593343795111791" id="org.eclipse.embedcdt.managedbuild.cross.arm.core.GCCBuiltinSpecsDetector" keep-relative-paths="false" name="CDT Arm Cross GCC Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} ${cross_toolchain_flags} -E -P -v -dD &quot;${INPUTS}&quot;" prefer-non-shared="true">
1818
<language-scope id="org.eclipse.cdt.core.gcc"/>
1919
<language-scope id="org.eclipse.cdt.core.g++"/>
2020
</provider>

lib-remoteconfig/src/remoteconfigreboot.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,10 @@ void RemoteConfig::HandleReboot() {
4747
m_bIsReboot = true;
4848

4949
Display::Get()->SetSleep(false);
50+
51+
while (ConfigStore::Get()->Flash())
52+
;
53+
5054
Display::Get()->Cls();
5155
Display::Get()->TextStatus("Rebooting ...");
5256

0 commit comments

Comments
 (0)
0