diff --git a/CMakeLists.txt b/CMakeLists.txt index 52b88b00b9d7a740fadcf23a794b230d9d964a49..695de2782e4e94ce13bc2a1e0431abc0c91ace0f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -282,6 +282,12 @@ sbs_target(test-sx1278-serial stm32f429zi_stm32f4discovery) add_executable(test-cc3135 src/tests/drivers/CC3135/test-cc3135.cpp) sbs_target(test-cc3135 stm32f407vg_stm32f4discovery) +add_executable(test-cc3135-gs src/tests/drivers/CC3135/test-cc3135.cpp) +sbs_target(test-cc3135-gs stm32f429zi_skyward_ground_station) + +add_executable(test-cc3135-v3 src/tests/drivers/CC3135/test-cc3135.cpp) +sbs_target(test-cc3135-v3 stm32f429zi_skyward_death_stack_v3) + add_executable(test-mavlinkdriver src/tests/radio/test-mavlinkdriver.cpp) sbs_target(test-mavlinkdriver stm32f407vg_stm32f4discovery) diff --git a/src/tests/drivers/CC3135/test-cc3135.cpp b/src/tests/drivers/CC3135/test-cc3135.cpp index 5f717f801138e9936ffc6b73116dbd2d860bf235..f0d7fa16419e4ddf632bce21ccad2d860ec3c0df 100644 --- a/src/tests/drivers/CC3135/test-cc3135.cpp +++ b/src/tests/drivers/CC3135/test-cc3135.cpp @@ -38,6 +38,25 @@ cc3135:CC_SPI_DOUT -> stm32:pc11 (SPI3_MISO) cc3135:CC_SPI_CLK -> stm32:pc10 (SPI3_SCK) */ +#if defined _BOARD_STM32F429ZI_SKYWARD_GS +#include "interfaces-impl/hwmapping.h" +using sck = interfaces::spi1::sck; +using miso = interfaces::spi1::miso; +using mosi = interfaces::spi1::mosi; +using cs = peripherals::cc3135::cs; +using irq = peripherals::cc3135::intr; + +#define CC3135_SPI SPI1 +#elif defined _BOARD_STM32F429ZI_SKYWARD_DEATHST_V3 +#include "interfaces-impl/hwmapping.h" +using sck = interfaces::spi6::sck; +using miso = interfaces::spi6::miso; +using mosi = interfaces::spi6::mosi; +using cs = sensors::cc3135::cs; +using irq = sensors::cc3135::intr; + +#define CC3135_SPI SPI6 +#else using tx = Gpio<GPIOA_BASE, 2>; using rx = Gpio<GPIOA_BASE, 3>; using irq = Gpio<GPIOA_BASE, 4>; @@ -45,12 +64,19 @@ using hib = Gpio<GPIOA_BASE, 5>; #define CC3135_UART USART2 #define CC3135_HIB +#endif CC3135 *cc3135 = nullptr; volatile size_t IRQ_COUNT = 0; +#if defined _BOARD_STM32F429ZI_SKYWARD_GS +void __attribute__((used)) EXTI5_IRQHandlerImpl() +#elif defined _BOARD_STM32F429ZI_SKYWARD_DEATHST_V3 +void __attribute__((used)) EXTI10_IRQHandlerImpl() +#else void __attribute__((used)) EXTI4_IRQHandlerImpl() +#endif { IRQ_COUNT += 1; if (cc3135) @@ -79,11 +105,11 @@ void initBoard() rx::mode(miosix::Mode::ALTERNATE); rx::alternateFunction(7); } +#endif auto irq_pin = irq::getPin(); enableExternalInterrupt(irq_pin.getPort(), irq_pin.getNumber(), InterruptTrigger::RISING_EDGE); -#endif } int main() @@ -121,6 +147,13 @@ int main() Thread::sleep(2000); #endif +#ifdef CC3135_SPI + SPIBus bus(CC3135_SPI); + GpioPin cs_pin = cs::getPin(); + + std::unique_ptr<ICC3135Iface> iface(new CC3135Spi(bus, cs_pin, {})); +#endif + #ifdef CC3135_UART std::unique_ptr<ICC3135Iface> iface(new CC3135Uart(CC3135_UART)); #endif