Qurt platform custom icm42688p IMU driver (#20753)

- first version of IMU driver for the VOXL 2 platform (Qurt)
 - this is a customized version of the Invensense ICM42688P driver, it is currently in the VOXL 2 board directory
This commit is contained in:
Eric Katzfey
2022-12-12 19:02:23 -08:00
committed by GitHub
parent 33e39d68f7
commit e17ddcc0e5
24 changed files with 2040 additions and 23 deletions
@@ -37,9 +37,14 @@
#include <string>
#include <drivers/drv_hrt.h>
#include <drivers/device/spi.h>
#include <pthread.h>
#include <px4_platform_common/tasks.h>
#include <px4_platform_common/log.h>
#include <lib/parameters/param.h>
#include <px4_platform_common/px4_work_queue/WorkQueueManager.hpp>
#include "hrt_work.h"
// Definition of test to run when in muorb test mode
static MUORBTestType test_to_run;
@@ -230,6 +235,18 @@ int px4muorb_orb_initialize(fc_func_ptrs *func_ptrs, int32_t clock_offset_us)
uORB::Manager::get_instance()->set_uorb_communicator(
uORB::ProtobufChannel::GetInstance());
param_init();
px4::WorkQueueManagerStart();
// Configure the SPI driver function pointers
device::SPI::configure_callbacks(muorb_func_ptrs._config_spi_bus_func_t, muorb_func_ptrs._spi_transfer_func_t);
// Initialize the interrupt callback registration
register_interrupt_callback_initalizer(muorb_func_ptrs.register_interrupt_callback);
hrt_work_queue_init();
const char *argv[3] = { "slpi", "start" };
int argc = 2;