Go to file
Christopher Haster 47bee2343c littlefs: Fixed issue with lookahead trusting old lookahead blocks
One of the big simplifications in littlefs's implementation is the
complete lack of tracking free blocks, allowing operations to simply
drop blocks that are no longer in use.

However, this means the lookahead buffer can easily contain outdated
blocks that were previously deleted. This is usually fine, as littlefs
will rescan the storage if it can't find a free block in the lookahead
buffer, but after changes that caused littlefs to more conservatively
respect the alloc acks (e611cf5), any scanned blocks after an ack would
be incorrectly trusted.

The fix is to eagerly scan ahead in the lookahead when we allocate so
that alloc acks are better able to discredit old lookahead blocks. Since
usually alloc acks are tightly coupled to allocations of one or two blocks,
this allows littlefs to properly rescan every set of allocations.

This may still be a concern if there is a long series of worn out
blocks, but in the worst case littlefs will conservatively avoid using
blocks it's not sure about.

Found by davidefer
2018-04-11 14:41:01 -05:00
.github PR template: do not use task list 2018-03-21 11:56:38 +00:00
TESTS Added test for MbedCRC.h 2018-03-23 14:54:24 -05:00
cmsis Core(A): Changed macro __DEPRECATED to CMSIS_DEPRECATED. (Issue #287) 2017-12-21 14:09:25 +09:00
drivers Merge pull request #6442 from deepikabhavnani/crc_test 2018-04-06 10:46:52 +02:00
events Merge pull request #6238 from pauluap/break_dispatch_flag 2018-03-15 10:59:36 -05:00
features littlefs: Fixed issue with lookahead trusting old lookahead blocks 2018-04-11 14:41:01 -05:00
hal Merge pull request #6373 from 0xc0170/fix_flash_docs 2018-03-28 15:55:35 +01:00
platform Fix doxygen comments to reflect the deprecated functions 2018-04-03 14:10:39 -05:00
rtos Merge pull request #6257 from SenRamakri/sen_FaultHandlerFixes 2018-03-08 13:04:07 -06:00
targets Merge pull request #6550 from theotherjimmy/remove-m1 2018-04-10 18:08:57 -05:00
tools Merge pull request #6481 from tsailer/exporter-codeblocks 2018-04-09 10:13:43 -05:00
.coveragerc Exclude libraries and tests from coverage numbers 2017-09-25 11:51:31 -05:00
.gitattributes Added .gitattributes for automatic LF line ending conversion 2013-08-08 13:19:34 +03:00
.gitignore add few files to gitignore list 2018-02-09 10:57:31 +00:00
.pylintrc Add pylint configuration file 2016-08-16 11:48:45 -05:00
.travis.yml Fixed Travis rate-limit issue with Github requests 2018-04-07 13:04:47 -05:00
CONTRIBUTING.md Update link in CONTRIBUTING.md 2017-06-09 16:38:38 -05:00
DOXYGEN_FRONTPAGE.md Very minimal text 2016-08-04 14:09:59 +01:00
Jenkinsfile Jenkinsfile: remove client app test temporarily 2017-06-01 12:15:09 +01:00
LICENSE Add Apache v2 LICENSE file 2013-08-06 12:05:04 +01:00
LICENSE-BSD-3-Clause Adding license text and BSD-Clause 3 2018-02-09 11:00:56 -06:00
README.md Simple typo fix in the README.md 2018-01-08 19:50:18 +00:00
doxyfile_options Add missing Doxygen descriptions for Nanostack 2018-03-21 14:15:28 +02:00
doxygen_options.json Add missing Doxygen descriptions for Nanostack 2018-03-21 14:15:28 +02:00
logo.png Readme updates for style and branding 2017-12-04 14:59:16 -06:00
mbed.h Merge pull request #6230 from bulislaw/system_reset 2018-03-01 10:31:07 -06:00
requirements.txt Add JSON Schema library to requirements.txt 2018-02-01 17:18:40 +00:00

README.md

Mbed OS

Build status release Build status master Tools coverage status PR progress

Arm Mbed OS is an open source embedded operating system designed specifically for the "things" in the Internet of Things. It includes all the features you need to develop a connected product based on an Arm Cortex-M microcontroller, including security, connectivity, an RTOS and drivers for sensors and I/O devices.

Mbed OS provides a platform that includes:

  • Security foundations.
  • Cloud management services.
  • Drivers for sensors, I/O devices and connectivity.

Release notes

The release notes detail the current release. You can also find information about previous versions.

Getting started for developers

We have a developer website for asking questions, engaging with others, finding information on boards and components, using an online IDE and compiler, reading the documentation and learning about what's new and what's coming next in Mbed OS.

Getting started for contributors

We also have a contributing and publishing guide that covers licensing, contributor agreements and style guidelines.