Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Allow to redefine nRF's PSTORAGE_NUM_OF_PAGES outside of the mbed-os #3836

Merged
merged 1 commit into from
Mar 6, 2017
Merged

Conversation

crontab
Copy link
Contributor

@crontab crontab commented Feb 24, 2017

Description

By default the number of pstorage pages is set 1 and all addresses are calculated in the pstorage module accordingly. Nordic recommends changing this macro to whatever number is suitable for the app (see this answer from Petter Myhre) which is not quite elegant given that pstorage_platform.h is part of the mbed-os repo. With this modification you can e.g. define PSTORAGE_NUM_OF_PAGES on the command line, however note that you should rebuild mbed-os with this setting as it affects pstorage_platform.c.

This patch modifies the source for both nRF51 and nRF52 families.

…source

By default the number of pstorage pages is set 1 and all addresses are
calculated in the pstorage module accordingly. Nordic recommends
changing this macro to whatever number is suitable for the app (see
https://devzone.nordicsemi.com/question/53066/what-will-be-the-starting-
address-of-pstorage-page-how-we-can-change-it/?answer=53085#post-id-5308
5) which is not quite elegant given that pstorage_platform.h is part of
the mbed-os repo. With this modification you can e.g. define
PSTORAGE_NUM_OF_PAGES on the command line, however note that you should
rebuild mbed-os with this setting as it affects pstorage_platform.c.
@pan-
Copy link
Member

pan- commented Feb 24, 2017

CC @nvlsianpu

@crontab Thanks for your submission, it is a good change but I would like some form of documentation explaining what define have to be provided to override the default number of pages used by the pstorage module.

@crontab
Copy link
Contributor Author

crontab commented Feb 24, 2017

@pan- could you point out which part of the documentation should be amended? Note that the pstorage module comes from Nordic's own SDK, and I honestly don't know how mbed handles such imports of 3rd party code.

@nvlsianpu
Copy link
Contributor

@crontab How you want to inject PSTORAGE_NUM_OF_PAGES into build?

@crontab
Copy link
Contributor Author

crontab commented Feb 24, 2017

@nvlsianpu @pan-

There is no need to inject if you don't want to change the default, which is exactly one page of Flash memory available to the app. However, if you do want to change it, you need to pass -DPSTORAGE_NUM_OF_PAGES=<N> to the compiler. As I understand it mbed CLI doesn't support this directly, so it would be e.g. via the generated Makefile, or the IDE you're using for building your project.

@nvlsianpu
Copy link
Contributor

nvlsianpu commented Feb 24, 2017

mbed-cli supports -D....

This changes looks good for me. It won't changes target behaviour until -DPSTORAGE_NUM_OF_PAGES (or equivalent) will be used. I accept this PR from Nordic side.

@0xc0170
Copy link
Contributor

0xc0170 commented Feb 27, 2017

@crontab would be worth sending this upstream (to their SDK for consideration), as this might get overwritten in the next SDK update. Plus there are lot of config options that could be set, and having this option to change them without touching the source might be worthwhile

@0xc0170
Copy link
Contributor

0xc0170 commented Feb 27, 2017

/morph test

@crontab
Copy link
Contributor Author

crontab commented Feb 27, 2017

@0xc0170 thanks! Sounds reasonable to let Nordic know and prevent future overrides, but I have no idea what the established procedure is.

@mbed-bot
Copy link

Result: SUCCESS

Your command has finished executing! Here's what you wrote!

/morph test

Output

mbed Build Number: 1599

All builds and test passed!

@0xc0170
Copy link
Contributor

0xc0170 commented Mar 6, 2017

@0xc0170 thanks! Sounds reasonable to let Nordic know and prevent future overrides, but I have no idea what the established procedure is.

@nvlsianpu can help you.

@0xc0170 0xc0170 merged commit 1be7418 into ARMmbed:master Mar 6, 2017
aisair pushed a commit to aisair/mbed that referenced this pull request Apr 30, 2024
Ports for Upcoming Targets


Fixes and Changes

3716: fix for issue #3715: correction in startup files for ARM and IAR, alignment of system_stm32f429xx.c files ARMmbed/mbed-os#3716
3741: STM32 remove warning in hal_tick_32b.c file ARMmbed/mbed-os#3741
3780: STM32L4 : Fix GPIO G port compatibility ARMmbed/mbed-os#3780
3831: NCS36510: SPISLAVE enabled (Conflict resolved) ARMmbed/mbed-os#3831
3836: Allow to redefine nRF's PSTORAGE_NUM_OF_PAGES outside of the mbed-os ARMmbed/mbed-os#3836
3840: STM32: gpio SPEED - always set High Speed by default ARMmbed/mbed-os#3840
3844: STM32 GPIO: Typo correction. Update comment (GPIO_IP_WITHOUT_BRR) ARMmbed/mbed-os#3844
3850: STM32: change spi error to debug warning ARMmbed/mbed-os#3850
3860: Define GPIO_IP_WITHOUT_BRR for xDot platform ARMmbed/mbed-os#3860
3880: DISCO_F469NI: allow the use of CAN2 instance when CAN1 is not activated ARMmbed/mbed-os#3880
3795: Fix pwm period calc ARMmbed/mbed-os#3795
3828: STM32 CAN API: correct format and type ARMmbed/mbed-os#3828
3842: TARGET_NRF: corrected spi_init() to properly handle re-initialization ARMmbed/mbed-os#3842
3843: STM32L476xG: set APB2 clock to 80MHz (instead of 40MHz) ARMmbed/mbed-os#3843
3879: NUCLEO_F446ZE: Add missing AnalogIn pins on PF_3, PF_5 and PF_10. ARMmbed/mbed-os#3879
3902: Fix heap and stack size for NUCLEO_F746ZG ARMmbed/mbed-os#3902
3829: can_write(): return error code when no tx mailboxes are available ARMmbed/mbed-os#3829
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants