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

TARGET_NRF: corrected spi_init() to properly handle re-initialization… #3842

Merged
merged 2 commits into from
Mar 9, 2017

Conversation

anangl
Copy link
Contributor

@anangl anangl commented Feb 27, 2017

… on the same pins + minor editorial corrections.

Description

Each spi_init() call resulted in initialization of another SPI peripheral instance, whereas a previously used one should be utilized if initialization was done with the same pin assignments. Otherwise, code like tests-api-spi (with local SPI object created several times) has no chance to run correctly, at least unless SPI destructor calls spi_free().

Status

READY

Migrations

NO

… on the same pins + minor editorial corrections.
@anangl
Copy link
Contributor Author

anangl commented Feb 27, 2017

@nvlsianpu @pan- @0xc0170 Have a look, please.

@nvlsianpu
Copy link
Contributor

LGTM

@pan-
Copy link
Member

pan- commented Feb 27, 2017

The issue is more related to the lack of valid destructor (here). There is an spi_free function in the HAL but according to the documentation it is not correctly implemented (see here).

From this standpoint, the existing code is correct and this patch is a workaround for a defect in mbed.
Could you tag the block as a workaround ?

@nvlsianpu
Copy link
Contributor

@pan- Could you clarify whether we have to putt comment about workaround into code?

nvlsianpu added a commit to nvlsianpu/mbed that referenced this pull request Mar 3, 2017
corrected spi_init() to properly handle re-initialization… ARMmbed#3842
// times, what would be otherwise impossible in the current implementation
// of mbed driver that does not call spi_free() from SPI destructor.
// Once this mbed's imperfection is corrected, this block should be removed.
for (i = 0; i < SPI_COUNT; ++i) {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@pan- +1 for the added comment?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

He confirmed :-)

@0xc0170
Copy link
Contributor

0xc0170 commented Mar 6, 2017

/morph test

@mbed-bot
Copy link

mbed-bot commented Mar 6, 2017

Result: SUCCESS

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

/morph test

Output

mbed Build Number: 1644

All builds and test passed!

@0xc0170 0xc0170 merged commit c3e7b54 into ARMmbed:master Mar 9, 2017
nvlsianpu added a commit to nvlsianpu/mbed that referenced this pull request Mar 22, 2017
corrected spi_init() to properly handle re-initialization… ARMmbed#3842
adbridge pushed a commit that referenced this pull request Mar 24, 2017
adbridge pushed a commit that referenced this pull request Apr 7, 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