Commit Graph

27762 Commits (6df5eea841c115bec6f81db59080ff4e8869858a)

Author SHA1 Message Date
Seppo Takalo ce7b196b26 TDBStore: Don't copy more data than what we can hold 2019-12-03 15:20:10 +02:00
Seppo Takalo fe3c3550f9 TDBStore: Move Assert to init(), so Block parameter are initialised correctly 2019-12-03 15:20:10 +02:00
Seppo Takalo adf409f7f7 Do not require Flash device for TDBStore
TDBStore used to rely on Flash devices erase value.
This logic has been removed, and TDBStore can do the entire erase
logic itself, in case the given BlockDevice does not offer erase().
This relies on BlockDevice to properly return -1 in BlockDevice::get_erase_value().
2019-12-03 15:20:10 +02:00
Seppo Takalo 3dc6c4879f TDBStore: erase one program unit more, when cleaning an area 2019-12-03 15:20:10 +02:00
Seppo Takalo 93d7422f75 TDBStore: Do no garbage_collect() on init()
Previous logic caused garbage collection to kick in, if the init() was
called on empty storage. This has effect of erasing areas twice, if both
areas were empty.

Re-write logic so that we erase areas only on garbage_collect() or reset().
The init() logic already chooses the active area, so no need to touch,
until keys are modified.

Removed also the is_erase_unit_erased() as this is working only on
FLASH devices, and TDBStore should be refactored to work on all storages.
2019-12-03 15:20:10 +02:00
Seppo Takalo 36523282fa TDBStore: Keep copy of reserved data on both areas.
Change the "reserved data" logic so that every time we erase and area,
the content of reserved data is then immediately copied to newly erased
area. This keeps two copies of the data.
When data is requested, return only if checksum is matching.
When data is written, only allow if BOTH checksums are incorrect, meaning
that areas are either corrupted or erased.
Only exception is TDBStore::reset() which erases all keys and reserved data.

Removed all logic that tried to detect, if reserved are was erased or
corrupted. Rely entirely on checksum.

Add moduletest for reserved data.
2019-12-03 15:20:10 +02:00
Seppo Takalo 0fe159f6c4 Greentea: Fix slice-calculation from kvstore test phase 2 2019-12-03 14:51:37 +02:00
Seppo Takalo 2ddd4069b6 Remove flaky error_inject_test 2019-12-03 14:38:40 +02:00
Seppo Takalo d74fa93549 Add unittests for BufferedBlockDevice 2019-12-03 14:38:40 +02:00
Seppo Takalo b9eaac4da0 Fix Greentea handler typecasting. 2019-12-03 14:38:40 +02:00
Seppo Takalo 3eb8d6eb1d BufferedBlockDevice: Sync all the buffers on deinit()
Make sure that all data has been written on the underlying
storage when we do deinit().
2019-12-03 14:38:40 +02:00
Seppo Takalo 8ab3984d33 Don't allow over-read on BufferedBlockDevice 2019-12-03 14:38:40 +02:00
Seppo Takalo 191d3444bb HeapBlockDevice: Don't assert on const functions 2019-12-03 14:38:40 +02:00
Seppo Takalo 6105634bb0 Remove unceressary NULL check from BufferedBlockDevice::size() 2019-12-03 14:38:40 +02:00
Seppo Takalo bcaf37dcfa SlicingBlockDevice should assert, if size does not look valid 2019-12-03 14:38:40 +02:00
Seppo Takalo 92a60c3d80 Extend SlicingBlockDevice test coverage 2019-12-03 14:38:40 +02:00
Seppo Takalo 12dea71f40 Greenteatests: Validate KVStore content when WRITE_ONCE flag is set. 2019-12-03 14:38:40 +02:00
Hugues Kamba d5aef28145 minimal-printf: Enable using a target configuration parameter 2019-12-03 12:31:51 +00:00
jeromecoutant 69eb099ac0 USB device HID test: remove duplicated define 2019-12-03 13:31:03 +01:00
Martin Kojtal ad3647c191
Merge pull request #11957 from kjbracey-arm/crc-redo
MbedCRC and CRC HAL revisions (6.0 redo)
2019-12-03 13:21:36 +01:00
Martin Kojtal c098bdff18
Merge pull request #12006 from jamesbeyond/fc_fix
FIX: fix a bug introduced by static pinmap
2019-12-03 13:20:14 +01:00
Ari Parkkila c22dd77f42 Cellular: Fix ATHandler string handling 2019-12-03 03:21:13 -08:00
Martin Kojtal a8ee2d8c7d
Merge pull request #11594 from OpenNuvoton/nuvoton_m2351_partition-memory-pelion
M2351: Pre-build secure image/lib to favor pelion application
2019-12-03 09:05:49 +01:00
Martin Kojtal 25ca5d2a72
Merge pull request #11880 from kjbracey-arm/callback_variadic
Remove deprecated Callback methods
2019-12-03 09:04:55 +01:00
Martin Kojtal 40cf725c11
Merge pull request #11991 from jamesbeyond/integ_fix
TESTS: Fix integration tests
2019-12-03 09:04:16 +01:00
Martin Kojtal fc488f6f36
Merge pull request #11995 from VeijoPesonen/mcu_nrf52840_fixes
MCU_NRF52840 target configuration fixes
2019-12-03 09:03:43 +01:00
Qinghao Shi 9545a46c23 FIX: fix a bug introduced by static pinmap 2019-12-02 19:32:32 +00:00
Michal Paszta 75472d0554 Adjust mbed_assert_stub file extension to .cpp 2019-12-02 20:48:16 +02:00
Michal Paszta caf01479ea Improve doxygen and unittest coverage for API
Mainly focusing on hardening the tests for return values.
2019-12-02 20:48:10 +02:00
Michal Paszta 546fdd2596 Move OnboardNetworkStackMock to a separate file
The mock was only used by EthernetInterface tests, but we can reuse it for other tests as well.
2019-12-02 20:47:43 +02:00
Michal Paszta 33096c2e54 Fix PPPInterface::disconnect to return NO_CONNECTION in case of failure 2019-12-02 20:47:43 +02:00
Martin Kojtal da5a8b2b65
Merge pull request #11952 from pferland-multitech/master
Fix for Dragonfly nano and registration for LTE-M plans
2019-12-02 16:55:14 +01:00
Martin Kojtal 111d1ca15e
Merge pull request #11962 from evva-sfw/feature/Bug_in_mbed_alloc_wrappers.cpp
Bug in mbed_alloc_wrappers.cpp
2019-12-02 16:16:16 +01:00
hamza-ubx 506e2ef8c7 Fixed Alignment 2019-12-02 19:44:16 +05:00
Martin Kojtal 0edce8a33e
Merge pull request #11927 from SeppoTakalo/speed_up_unittests
Speed up unittests by not limitting Make to spawn more processes
2019-12-02 14:57:47 +01:00
Kevin Bracey 0b28553ac2 Remove deprecated Callback methods 2019-12-02 15:27:10 +02:00
Kevin Bracey cf13cd48bc LittleFS test: silence sign mismatch warning 2019-12-02 14:45:37 +02:00
Kevin Bracey 7a219260c1 LittleFS: correct CRC calculation
When using MbedCRC, init value must be non-reversed, regardless of
`reflect_data` or `reflect_out` settings. This means we need to reflect
the intermediate output before passing using it as the next init value.

(In GCC this ends up putting in two `RBIT` instructions back-to-back,
because it's implemented as assembler, so it doesn't know how to
optimise. In ARMC6, `__RBIT` is implemented as an intrinsic, so adding
this reflection cancels the existing reflection and makes the code
smaller).
2019-12-02 14:45:37 +02:00
Kevin Bracey c67816b5ff Adjust code for MbedCRC changes
* Make mbed_error use bitwise MbedCRC call rather than local
  implementation.
* Remove use of POLY_32BIT_REV_ANSI from LittleFS.
* Move some MbedCRC instances closer to use - construction cost is
  trivial, and visibility aids compiler optimisation.
2019-12-02 14:45:37 +02:00
Kevin Bracey a995c162ac Revise MbedCRC template
* Use compile-time detection of hardware CRC capability, so unneeded
  code and tables do not go into the image.
* Add global JSON config option to allow choice between no tables,
  16-entry tables or 256-entry tables for software CRC. Default set
  to 16-entry, reducing ROM size from previous 256-entry.
* Allow manual override in template parameter to force software or
  bitwise CRC for a particular instance.
* Micro-optimisations, particularly use of `RBIT` instruction and
  optimising bitwise computation using inline assembler.

Incompatible changes:

* Remove special-case "POLY_32BIT_REV_ANSI" - users can use standard
  POLY_32BIT_ANSI, which now uses the same 16-entry tables by default,
  or can use hardware acceleration, which was disabled for
  POLY_32BIT_REV_ANSI. MbedCRC<POLY_32BIT_ANSI, 32, CrcMode::TABLE> can
  be used to force software like POLY_32BIT_REV_ANSI.
* The precomputed table for POLY_16BIT_IBM had errors - this has been
  corrected, but software CRC results will be different from the previous
  software calculation.
* < 8-bit CRC results are no longer are shifted up in the output value,
  but placed in the lowest bits, like other sizes. This means that code
  performing the SD command CRC will now need to use `(crc << 1) | 1`,
  rather than `crc | 1`.
2019-12-02 14:45:37 +02:00
Kevin Bracey fe22bc023e Update HAL CRC API
* Change "is supported" check to be a macro, so it can be done at
  compile-time.
* Eliminate weird shift on 7-bit CRCs.
* Add support for 32-bit CRCs and reversals to TMPM3HQ.
2019-12-02 14:45:37 +02:00
Veijo Pesonen 5d3e859d1c NRF52840_DK: Fixes target id code 2019-12-02 13:00:19 +02:00
Veijo Pesonen 28a2327f7e MCU_NRF52840: Removes redundant component and errata definitions 2019-12-02 12:59:56 +02:00
Veijo Pesonen c479dab901 MCU_NRF52840: Removes redundant OS version and CMSIS Packs data 2019-12-02 12:59:39 +02:00
Martin Kojtal 48f544f9e4
Merge pull request #11980 from jeromecoutant/PR_L4R9I
DISCO_L4R9I: update clock configuration for all clock sources
2019-12-02 11:23:51 +01:00
Qinghao Shi 01d35911a6 TESTS: move include trace to test headers 2019-11-29 15:28:46 +00:00
Qinghao Shi 0971254ced TESTS: remove include missing header 2019-11-29 15:26:37 +00:00
Martin Kojtal 24c6c4cab5
Merge pull request #11935 from AriParkkila/cell-depr-device
Cellular: Mark to be deprecated in CellularDevice
2019-11-29 15:45:35 +01:00
Ari Parkkila 088140e04b Cellular: Mark CellularDevice::stop deprecated 2019-11-29 04:24:56 -08:00
Martin Kojtal f2d211b7c2
Merge pull request #11978 from hugueskamba/hk-fix-lpc55s69_ns-baremetal-compilation
LPC55S69_NS: Fix baremetal compilation error
2019-11-29 13:05:13 +01:00