Skip to content

Commit

Permalink
Merge pull request #1807 from sg-/update-critical
Browse files Browse the repository at this point in the history
Remove __enable and __disable irq calls from mbed hal common code
  • Loading branch information
0xc0170 committed May 29, 2016
2 parents d2fd820 + b2f2075 commit fdd11ef
Show file tree
Hide file tree
Showing 3 changed files with 8 additions and 5 deletions.
5 changes: 3 additions & 2 deletions hal/common/SPI.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
* limitations under the License.
*/
#include "SPI.h"
#include "critical.h"

#if DEVICE_SPI

Expand Down Expand Up @@ -124,12 +125,12 @@ int SPI::queue_transfer(const void *tx_buffer, int tx_length, void *rx_buffer, i
if (_transaction_buffer.full()) {
return -1; // the buffer is full
} else {
__disable_irq();
core_util_critical_section_enter();
_transaction_buffer.push(transaction);
if (!spi_active(&_spi)) {
dequeue_transaction();
}
__enable_irq();
core_util_critical_section_exit();
return 0;
}
#else
Expand Down
3 changes: 2 additions & 1 deletion hal/common/board.c
Original file line number Diff line number Diff line change
Expand Up @@ -17,10 +17,11 @@
#include "wait_api.h"
#include "toolchain.h"
#include "mbed_interface.h"
#include "critical.h"

WEAK void mbed_die(void) {
#if !defined (NRF51_H) && !defined(TARGET_EFM32)
__disable_irq(); // dont allow interrupts to disturb the flash pattern
core_util_critical_section_enter();
#endif
#if (DEVICE_ERROR_RED == 1)
gpio_t led_red; gpio_init_out(&led_red, LED_RED);
Expand Down
5 changes: 3 additions & 2 deletions libraries/tests/libs/SerialHalfDuplex/SerialHalfDuplex.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
* Copyright (c) 2010-2011 ARM Limited. All rights reserved.
*/
#include "SerialHalfDuplex.h"
#include "critical.h"

#if DEVICE_SERIAL

Expand Down Expand Up @@ -29,7 +30,7 @@ int SerialHalfDuplex::_putc(int c) {
int retc;

// TODO: We should not disable all interrupts
__disable_irq();
core_util_critical_section_enter();

serial_pinout_tx(gpio.pin);

Expand All @@ -38,7 +39,7 @@ int SerialHalfDuplex::_putc(int c) {

pin_function(gpio.pin, 0);

__enable_irq();
core_util_critical_section_exit();

return retc;
}
Expand Down

0 comments on commit fdd11ef

Please sign in to comment.