From 530138ded4ebbec8b761303742a6e6db3a42714e Mon Sep 17 00:00:00 2001 From: Andrew Tridgell Date: Fri, 12 Oct 2018 10:35:04 +1100 Subject: [PATCH] AP_RAMTRON: use WITH_SEMAPHORE() and removed usage of hal.util->new_semaphore() --- libraries/AP_RAMTRON/AP_RAMTRON.cpp | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) diff --git a/libraries/AP_RAMTRON/AP_RAMTRON.cpp b/libraries/AP_RAMTRON/AP_RAMTRON.cpp index 838b6de74c..c46b4f6dc6 100644 --- a/libraries/AP_RAMTRON/AP_RAMTRON.cpp +++ b/libraries/AP_RAMTRON/AP_RAMTRON.cpp @@ -5,6 +5,7 @@ */ #include "AP_RAMTRON.h" +#include extern const AP_HAL::HAL &hal; @@ -38,9 +39,10 @@ const AP_RAMTRON::ramtron_id AP_RAMTRON::ramtron_ids[] = { bool AP_RAMTRON::init(void) { dev = hal.spi->get_device("ramtron"); - if (!dev || !dev->get_semaphore()->take(0)) { + if (!dev) { return false; } + WITH_SEMAPHORE(dev->get_semaphore()); struct rdid { uint8_t manufacturer[6]; @@ -49,10 +51,8 @@ bool AP_RAMTRON::init(void) uint8_t id2; } rdid; if (!dev->read_registers(RAMTRON_RDID, (uint8_t *)&rdid, sizeof(rdid))) { - dev->get_semaphore()->give(); return false; } - dev->get_semaphore()->give(); for (uint8_t i=0; iget_semaphore()->take(0)) { - return false; - } + WITH_SEMAPHORE(dev->get_semaphore()); + dev->set_chip_select(true); send_offset(RAMTRON_READ, offset); @@ -104,7 +103,6 @@ bool AP_RAMTRON::read(uint32_t offset, uint8_t *buf, uint32_t size) dev->transfer(nullptr, 0, buf, size); dev->set_chip_select(false); - dev->get_semaphore()->give(); return true; } @@ -112,9 +110,8 @@ bool AP_RAMTRON::read(uint32_t offset, uint8_t *buf, uint32_t size) // write to device bool AP_RAMTRON::write(uint32_t offset, const uint8_t *buf, uint32_t size) { - if (!dev->get_semaphore()->take(0)) { - return false; - } + WITH_SEMAPHORE(dev->get_semaphore()); + // write enable uint8_t r = RAMTRON_WREN; dev->transfer(&r, 1, nullptr, 0); @@ -127,6 +124,5 @@ bool AP_RAMTRON::write(uint32_t offset, const uint8_t *buf, uint32_t size) dev->set_chip_select(false); - dev->get_semaphore()->give(); return true; }