mirror of
https://github.com/EttusResearch/uhd.git
synced 2026-10-25 17:36:10 +00:00
b200: Move the B200 radio control core into usrp/b200/
This serves two purposes: - This file no longer goes into the compiled DLL if B200 is disabled - Discourage use of this file for new devices, making it clear that this architecture is no longer used The file itself is left untouched, only the class is renamed from radio_ctrl_core_3000 to b200_radio_ctrl_core. Note: In UHD 3, this file was also used by N230.
This commit is contained in:
parent
48e53f34df
commit
9c94086bbc
@ -21,5 +21,6 @@ if(ENABLE_B200)
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/b200_uart.cpp
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/b200_cores.cpp
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/b200_mb_eeprom.cpp
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/b200_radio_ctrl_core.cpp
|
||||
)
|
||||
endif(ENABLE_B200)
|
||||
|
||||
@ -501,7 +501,7 @@ b200_impl::b200_impl(
|
||||
////////////////////////////////////////////////////////////////////
|
||||
// Local control endpoint
|
||||
////////////////////////////////////////////////////////////////////
|
||||
_local_ctrl = radio_ctrl_core_3000::make(false /*lilE*/,
|
||||
_local_ctrl = b200_radio_ctrl_core::make(false /*lilE*/,
|
||||
_ctrl_transport,
|
||||
zero_copy_if::sptr() /*null*/,
|
||||
B200_LOCAL_CTRL_SID);
|
||||
@ -868,16 +868,16 @@ void b200_impl::setup_radio(const size_t dspno)
|
||||
////////////////////////////////////////////////////////////////////
|
||||
// radio control
|
||||
////////////////////////////////////////////////////////////////////
|
||||
perif.ctrl = radio_ctrl_core_3000::make(
|
||||
perif.ctrl = b200_radio_ctrl_core::make(
|
||||
false /*lilE*/, _ctrl_transport, zero_copy_if::sptr() /*null*/, sid);
|
||||
perif.ctrl->hold_task(_async_task);
|
||||
_async_task_data->radio_ctrl[dspno] = perif.ctrl; // weak
|
||||
_tree->access<time_spec_t>(mb_path / "time" / "cmd")
|
||||
.add_coerced_subscriber(std::bind(
|
||||
&radio_ctrl_core_3000::set_time, perif.ctrl, std::placeholders::_1));
|
||||
&b200_radio_ctrl_core::set_time, perif.ctrl, std::placeholders::_1));
|
||||
_tree->access<double>(mb_path / "tick_rate")
|
||||
.add_coerced_subscriber(std::bind(
|
||||
&radio_ctrl_core_3000::set_tick_rate, perif.ctrl, std::placeholders::_1));
|
||||
&b200_radio_ctrl_core::set_tick_rate, perif.ctrl, std::placeholders::_1));
|
||||
this->register_loopback_self_test(perif.ctrl);
|
||||
|
||||
////////////////////////////////////////////////////////////////////
|
||||
|
||||
@ -10,6 +10,7 @@
|
||||
|
||||
#include "b200_cores.hpp"
|
||||
#include "b200_iface.hpp"
|
||||
#include "b200_radio_ctrl_core.hpp"
|
||||
#include "b200_uart.hpp"
|
||||
#include <uhd/device.hpp>
|
||||
#include <uhd/property_tree.hpp>
|
||||
@ -26,20 +27,19 @@
|
||||
#include <uhdlib/usrp/common/ad9361_ctrl.hpp>
|
||||
#include <uhdlib/usrp/common/ad936x_manager.hpp>
|
||||
#include <uhdlib/usrp/common/adf4001_ctrl.hpp>
|
||||
#include <uhdlib/usrp/common/pwr_cal_mgr.hpp>
|
||||
#include <uhdlib/usrp/common/recv_packet_demuxer_3000.hpp>
|
||||
#include <uhdlib/usrp/cores/gpio_atr_3000.hpp>
|
||||
#include <uhdlib/usrp/cores/radio_ctrl_core_3000.hpp>
|
||||
#include <uhdlib/usrp/cores/rx_dsp_core_3000.hpp>
|
||||
#include <uhdlib/usrp/cores/rx_vita_core_3000.hpp>
|
||||
#include <uhdlib/usrp/cores/time_core_3000.hpp>
|
||||
#include <uhdlib/usrp/cores/tx_dsp_core_3000.hpp>
|
||||
#include <uhdlib/usrp/cores/tx_vita_core_3000.hpp>
|
||||
#include <uhdlib/usrp/cores/user_settings_core_3000.hpp>
|
||||
#include <uhdlib/usrp/common/pwr_cal_mgr.hpp>
|
||||
#include <unordered_map>
|
||||
#include <boost/assign.hpp>
|
||||
#include <memory>
|
||||
#include <mutex>
|
||||
#include <unordered_map>
|
||||
|
||||
static const uint8_t B200_FW_COMPAT_NUM_MAJOR = 8;
|
||||
static const uint8_t B200_FW_COMPAT_NUM_MINOR = 0;
|
||||
@ -143,7 +143,7 @@ private:
|
||||
|
||||
// controllers
|
||||
b200_iface::sptr _iface;
|
||||
radio_ctrl_core_3000::sptr _local_ctrl;
|
||||
b200_radio_ctrl_core::sptr _local_ctrl;
|
||||
uhd::usrp::ad9361_ctrl::sptr _codec_ctrl;
|
||||
uhd::usrp::ad936x_manager::sptr _codec_mgr;
|
||||
b200_local_spi_core::sptr _spi_iface;
|
||||
@ -166,8 +166,8 @@ private:
|
||||
struct AsyncTaskData
|
||||
{
|
||||
std::shared_ptr<async_md_type> async_md;
|
||||
std::weak_ptr<radio_ctrl_core_3000> local_ctrl;
|
||||
std::weak_ptr<radio_ctrl_core_3000> radio_ctrl[2];
|
||||
std::weak_ptr<b200_radio_ctrl_core> local_ctrl;
|
||||
std::weak_ptr<b200_radio_ctrl_core> radio_ctrl[2];
|
||||
b200_uart::sptr gpsdo_uart;
|
||||
};
|
||||
std::shared_ptr<AsyncTaskData> _async_task_data;
|
||||
@ -193,7 +193,7 @@ private:
|
||||
// perifs in the radio core
|
||||
struct radio_perifs_t
|
||||
{
|
||||
radio_ctrl_core_3000::sptr ctrl;
|
||||
b200_radio_ctrl_core::sptr ctrl;
|
||||
uhd::usrp::gpio_atr::gpio_atr_3000::sptr atr;
|
||||
uhd::usrp::gpio_atr::gpio_atr_3000::sptr fp_gpio;
|
||||
time_core_3000::sptr time64;
|
||||
|
||||
@ -327,7 +327,7 @@ boost::optional<uhd::msg_task::msg_type_t> b200_impl::handle_async_task(
|
||||
case B200_RESP0_MSG_SID:
|
||||
case B200_RESP1_MSG_SID:
|
||||
case B200_LOCAL_RESP_SID: {
|
||||
radio_ctrl_core_3000::sptr ctrl;
|
||||
b200_radio_ctrl_core::sptr ctrl;
|
||||
if (sid == B200_RESP0_MSG_SID)
|
||||
ctrl = data->radio_ctrl[0].lock();
|
||||
if (sid == B200_RESP1_MSG_SID)
|
||||
|
||||
@ -5,6 +5,7 @@
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
//
|
||||
|
||||
#include "b200_radio_ctrl_core.hpp"
|
||||
#include <uhd/exception.hpp>
|
||||
#include <uhd/transport/bounded_buffer.hpp>
|
||||
#include <uhd/transport/vrt_if_packet.hpp>
|
||||
@ -12,7 +13,6 @@
|
||||
#include <uhd/utils/log.hpp>
|
||||
#include <uhd/utils/safe_call.hpp>
|
||||
#include <uhdlib/usrp/common/async_packet_handler.hpp>
|
||||
#include <uhdlib/usrp/cores/radio_ctrl_core_3000.hpp>
|
||||
#include <boost/format.hpp>
|
||||
#include <boost/thread/mutex.hpp>
|
||||
#include <boost/thread/thread.hpp>
|
||||
@ -25,17 +25,17 @@ using namespace uhd::transport;
|
||||
|
||||
static const double ACK_TIMEOUT = 2.0; // supposed to be worst case practical timeout
|
||||
static const double MASSIVE_TIMEOUT = 10.0; // for when we wait on a timed command
|
||||
static const size_t SR_READBACK = 32;
|
||||
static const size_t SR_READBACK = 32;
|
||||
|
||||
radio_ctrl_core_3000::~radio_ctrl_core_3000(void)
|
||||
b200_radio_ctrl_core::~b200_radio_ctrl_core(void)
|
||||
{
|
||||
/* NOP */
|
||||
}
|
||||
|
||||
class radio_ctrl_core_3000_impl : public radio_ctrl_core_3000
|
||||
class b200_radio_ctrl_core_impl : public b200_radio_ctrl_core
|
||||
{
|
||||
public:
|
||||
radio_ctrl_core_3000_impl(const bool big_endian,
|
||||
b200_radio_ctrl_core_impl(const bool big_endian,
|
||||
uhd::transport::zero_copy_if::sptr ctrl_xport,
|
||||
uhd::transport::zero_copy_if::sptr resp_xport,
|
||||
const uint32_t sid,
|
||||
@ -60,7 +60,7 @@ public:
|
||||
this->set_tick_rate(1.0); // something possible but bogus
|
||||
}
|
||||
|
||||
~radio_ctrl_core_3000_impl(void) override
|
||||
~b200_radio_ctrl_core_impl(void) override
|
||||
{
|
||||
_timeout = ACK_TIMEOUT; // reset timeout to something small
|
||||
UHD_SAFE_CALL(
|
||||
@ -338,12 +338,12 @@ private:
|
||||
const size_t _resp_queue_size;
|
||||
};
|
||||
|
||||
radio_ctrl_core_3000::sptr radio_ctrl_core_3000::make(const bool big_endian,
|
||||
b200_radio_ctrl_core::sptr b200_radio_ctrl_core::make(const bool big_endian,
|
||||
zero_copy_if::sptr ctrl_xport,
|
||||
zero_copy_if::sptr resp_xport,
|
||||
const uint32_t sid,
|
||||
const std::string& name)
|
||||
{
|
||||
return sptr(
|
||||
new radio_ctrl_core_3000_impl(big_endian, ctrl_xport, resp_xport, sid, name));
|
||||
new b200_radio_ctrl_core_impl(big_endian, ctrl_xport, resp_xport, sid, name));
|
||||
}
|
||||
@ -11,19 +11,18 @@
|
||||
#include <uhd/types/time_spec.hpp>
|
||||
#include <uhd/types/wb_iface.hpp>
|
||||
#include <uhd/utils/msg_task.hpp>
|
||||
#include <boost/utility.hpp>
|
||||
#include <memory>
|
||||
#include <string>
|
||||
|
||||
/*!
|
||||
* Provide access to peek, poke for the radio ctrl module
|
||||
*/
|
||||
class radio_ctrl_core_3000 : public uhd::timed_wb_iface
|
||||
class b200_radio_ctrl_core : public uhd::timed_wb_iface
|
||||
{
|
||||
public:
|
||||
typedef std::shared_ptr<radio_ctrl_core_3000> sptr;
|
||||
typedef std::shared_ptr<b200_radio_ctrl_core> sptr;
|
||||
|
||||
~radio_ctrl_core_3000(void) override = 0;
|
||||
~b200_radio_ctrl_core(void) override = 0;
|
||||
|
||||
//! Make a new control object
|
||||
static sptr make(const bool big_endian,
|
||||
@ -25,7 +25,6 @@ LIBUHD_APPEND_SOURCES(
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/dsp_core_utils.cpp
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/gpio_atr_3000.cpp
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/i2c_core_100_wb32.cpp
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/radio_ctrl_core_3000.cpp
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/rx_dsp_core_3000.cpp
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/rx_frontend_core_200.cpp
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/rx_frontend_core_3000.cpp
|
||||
|
||||
Loading…
Reference in New Issue
Block a user