SPIM3 buffer must be in first 64kB of RAM #3281
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fixes #3247 and fixes #3250 (@DavePutz, please test, thanks)
Fixes #3147
Fixes #2946
#3250: I believe this error is caused by #3147, which notes that the SPIM3 buffer is misplaced. To put it in its own 8kB region, the SoftDevice RAM area had to shrink from 64kB to 56kB. This was done by shrinking
BLEIO_HVN_TX_QUEUE_SIZE
from 9 to 5. The number of connections did not need to be reduced from its present 5.For nRF52833, the special SPIM3 buffer is not necessary, because the SPIM3 peripheral does not suffer from the same hardware bug as on the nRF52840. So the SPIM3 buffer is disabled by default on nRF52833 builds.
I also cleaned up the
mpconfigboard.mk
files for nRF52833 and some nRF52840 boards. The nRF52833 boards no longer need to special-case removing the SPIM3 buffer. All nRF boards now have two I2C peripherals available, since SPIM3 can be used, so some needless definitions were removed.The
.ld
template file was cleaned up for nRF: new RAM region start addreses and sizes are now defined and used. Sanity checking now takes places inmpconfigport.h
to make sure the region sizes and locations make sense.@xobs: I do not have nRF52833 boards to test, so could you test the reorganization of the settings? I moved some definitions around in
mpconfigport.h
which should have removed the need to doCFLAGS
defines in the nRF52833mpconfigboard.mk
files. In particular the 32kB SD RAM size should still work. Thanks.