diff options
author | Christopher Haster <chaster@utexas.edu> | 2020-12-15 08:19:13 +0300 |
---|---|---|
committer | Christopher Haster <chaster@utexas.edu> | 2020-12-15 08:50:39 +0300 |
commit | 5f885f0af11b95f9a2afa6989248bd80dc1d29a2 (patch) | |
tree | b3bd907067ae0aad84985b38a65200ff1f4074ce /bd | |
parent | fe42d102a51a5069adbb2ab2ccebfa3485c85808 (diff) |
Adopted per-member static configurationsconfig-improvements
Instead of 1. defining LFS_STATICCFG and 2. defining all LFS_READ_SIZE,
LFS_PROG_SIZE, etc. Configuration can now be made static by defining
LFS_READ_SIZE, LFS_PROG_SIZE, etc. Thanks to a really large ifdef, if
all configurations are provided, LFS_STATICCFG will be defined and the
RAM cost fully removed.
Additionally, we can remove the ROM cost of each struct cfg member,
allowing code savings when config is only partially defined, which is
perhaps more common.
This moves all of the configuration logic in lfs.h, which has the nice
side effect of keeping all of the decision making in the same location.
The only catch is that we need to differentiate between the cfg->*_max
and *_MAX limits. To do this I've renamed the configuration *_max to
*_limit. Note that these two are slightly different, with *_max
indicating the maximum supported by the current driver, and *_limit
the maximum supported by the specific instance of littlefs. However if
you do define a *_LIMIT, I've added an override for the relevant *_MAX,
since I can't think of a time where you _wouldn't_ want to do that.
---
This also required some tweaks in scripts/test.py in order to populate
the lfs_cfg struct correctly. This happens since the test defines
overlap littlefs's configuration defines. This does change what is being
tested a bit, but hopefully that's not a real issue.
Suggested by tim-nordell-nimbelink
Diffstat (limited to 'bd')
0 files changed, 0 insertions, 0 deletions