From d46ebad3e850c4ed4e2896107355d1930c8b52d0 Mon Sep 17 00:00:00 2001 From: Alberto Nidasio <alberto.nidasio@skywarder.eu> Date: Mon, 8 Aug 2022 10:25:22 +0200 Subject: [PATCH] [CIUTI] Updated hardware mappings --- .../interfaces-impl/bsp.cpp | 134 +++++++++--------- .../interfaces-impl/bsp_impl.h | 16 +-- .../interfaces-impl/delays.cpp | 63 ++++---- .../interfaces-impl/hwmapping.h | 11 +- 4 files changed, 114 insertions(+), 110 deletions(-) diff --git a/miosix/arch/cortexM3_stm32f2/stm32f205rc_skyward_ciuti/interfaces-impl/bsp.cpp b/miosix/arch/cortexM3_stm32f2/stm32f205rc_skyward_ciuti/interfaces-impl/bsp.cpp index 56e3e6f2..fccaa166 100644 --- a/miosix/arch/cortexM3_stm32f2/stm32f205rc_skyward_ciuti/interfaces-impl/bsp.cpp +++ b/miosix/arch/cortexM3_stm32f2/stm32f205rc_skyward_ciuti/interfaces-impl/bsp.cpp @@ -72,71 +72,75 @@ void IRQbspInit() GPIOC->OSPEEDR = 0xaaaaaaaa; GPIOD->OSPEEDR = 0xaaaaaaaa; - interfaces::spi1::cs::mode(Mode::OUTPUT); - interfaces::spi1::cs::high(); - interfaces::spi1::sck::mode(Mode::ALTERNATE); - interfaces::spi1::sck::alternateFunction(5); - interfaces::spi1::miso::mode(Mode::ALTERNATE); - interfaces::spi1::miso::alternateFunction(5); - interfaces::spi1::mosi::mode(Mode::ALTERNATE); - interfaces::spi1::mosi::alternateFunction(5); - - interfaces::spi2::sck::mode(Mode::ALTERNATE); - interfaces::spi2::sck::alternateFunction(5); - interfaces::spi2::miso::mode(Mode::ALTERNATE); - interfaces::spi2::miso::alternateFunction(5); - interfaces::spi2::mosi::mode(Mode::ALTERNATE); - interfaces::spi2::mosi::alternateFunction(5); - - interfaces::usart1::rx::mode(Mode::ALTERNATE); - interfaces::usart1::rx::alternateFunction(7); - interfaces::usart1::tx::mode(Mode::ALTERNATE); - interfaces::usart1::tx::alternateFunction(7); - - interfaces::usart2::rx::mode(Mode::ALTERNATE); - interfaces::usart2::rx::alternateFunction(7); - interfaces::usart2::tx::mode(Mode::ALTERNATE); - interfaces::usart2::tx::alternateFunction(7); - - interfaces::usart3::rx::mode(Mode::ALTERNATE); - interfaces::usart3::rx::alternateFunction(7); - interfaces::usart3::tx::mode(Mode::ALTERNATE); - interfaces::usart3::tx::alternateFunction(7); - - interfaces::can1::rx::mode(Mode::ALTERNATE); - interfaces::can1::rx::alternateFunction(9); - interfaces::can1::tx::mode(Mode::ALTERNATE); - interfaces::can1::tx::alternateFunction(9); - - sensors::lis331hh::cs::mode(Mode::OUTPUT); - sensors::lis331hh::cs::high(); - - sensors::ad8403::cs::mode(Mode::OUTPUT); - sensors::ad8403::cs::high(); - - sensors::ina188::vsense1::mode(Mode::INPUT_ANALOG); - sensors::ina188::vsense2::mode(Mode::INPUT_ANALOG); - sensors::ina188::mosfet1::mode(Mode::OUTPUT); - sensors::ina188::mosfet1::high(); - sensors::ina188::mosfet2::mode(Mode::OUTPUT); - sensors::ina188::mosfet2::high(); - - sensors::vbat::mode(Mode::INPUT_ANALOG); - - actuators::buttons::bypass::mode(Mode::INPUT); - actuators::buttons::record::mode(Mode::INPUT); - - actuators::buzzer::drive::mode(Mode::ALTERNATE); - actuators::buzzer::drive::alternateFunction(3); - - actuators::leds::led1::mode(Mode::OUTPUT); - actuators::leds::led1::low(); - actuators::leds::led2::mode(Mode::OUTPUT); - actuators::leds::led2::low(); - actuators::leds::led3::mode(Mode::OUTPUT); - actuators::leds::led3::low(); - actuators::leds::led4::mode(Mode::OUTPUT); - actuators::leds::led4::low(); + using namespace interfaces; + + spi1::cs::mode(Mode::OUTPUT); + spi1::cs::high(); + spi1::sck::mode(Mode::ALTERNATE); + spi1::sck::alternateFunction(5); + spi1::miso::mode(Mode::ALTERNATE); + spi1::miso::alternateFunction(5); + spi1::mosi::mode(Mode::ALTERNATE); + spi1::mosi::alternateFunction(5); + + spi2::sck::mode(Mode::ALTERNATE); + spi2::sck::alternateFunction(5); + spi2::miso::mode(Mode::ALTERNATE); + spi2::miso::alternateFunction(5); + spi2::mosi::mode(Mode::ALTERNATE); + spi2::mosi::alternateFunction(5); + + usart1::rx::mode(Mode::ALTERNATE); + usart1::rx::alternateFunction(7); + usart1::tx::mode(Mode::ALTERNATE); + usart1::tx::alternateFunction(7); + + usart2::rx::mode(Mode::ALTERNATE); + usart2::rx::alternateFunction(7); + usart2::tx::mode(Mode::ALTERNATE); + usart2::tx::alternateFunction(7); + + usart3::rx::mode(Mode::ALTERNATE); + usart3::rx::alternateFunction(7); + usart3::tx::mode(Mode::ALTERNATE); + usart3::tx::alternateFunction(7); + + can1::rx::mode(Mode::ALTERNATE); + can1::rx::alternateFunction(9); + can1::tx::mode(Mode::ALTERNATE); + can1::tx::alternateFunction(9); + + using namespace devices; + + lis331hh::cs::mode(Mode::OUTPUT); + lis331hh::cs::high(); + + ad5204::cs::mode(Mode::OUTPUT); + ad5204::cs::high(); + + ina188::vsense1::mode(Mode::INPUT_ANALOG); + ina188::vsense2::mode(Mode::INPUT_ANALOG); + ina188::mosfet1::mode(Mode::OUTPUT); + ina188::mosfet1::high(); + ina188::mosfet2::mode(Mode::OUTPUT); + ina188::mosfet2::high(); + + vbat::mode(Mode::INPUT_ANALOG); + + buttons::bypass::mode(Mode::INPUT); + buttons::record::mode(Mode::INPUT); + + buzzer::drive::mode(Mode::ALTERNATE); + buzzer::drive::alternateFunction(3); + + leds::led1::mode(Mode::OUTPUT); + leds::led1::low(); + leds::led2::mode(Mode::OUTPUT); + leds::led2::low(); + leds::led3::mode(Mode::OUTPUT); + leds::led3::low(); + leds::led4::mode(Mode::OUTPUT); + leds::led4::low(); DefaultConsole::instance().IRQset(intrusive_ref_ptr<Device>( new STM32Serial(defaultSerial, defaultSerialSpeed, diff --git a/miosix/arch/cortexM3_stm32f2/stm32f205rc_skyward_ciuti/interfaces-impl/bsp_impl.h b/miosix/arch/cortexM3_stm32f2/stm32f205rc_skyward_ciuti/interfaces-impl/bsp_impl.h index 5eed3ac7..4d7d920e 100644 --- a/miosix/arch/cortexM3_stm32f2/stm32f205rc_skyward_ciuti/interfaces-impl/bsp_impl.h +++ b/miosix/arch/cortexM3_stm32f2/stm32f205rc_skyward_ciuti/interfaces-impl/bsp_impl.h @@ -49,18 +49,18 @@ namespace miosix inline void ledOn() { - actuators::leds::led1::high(); - actuators::leds::led2::high(); - actuators::leds::led3::high(); - actuators::leds::led4::high(); + devices::leds::led1::high(); + devices::leds::led2::high(); + devices::leds::led3::high(); + devices::leds::led4::high(); } inline void ledOff() { - actuators::leds::led1::low(); - actuators::leds::led2::low(); - actuators::leds::led3::low(); - actuators::leds::led4::low(); + devices::leds::led1::low(); + devices::leds::led2::low(); + devices::leds::led3::low(); + devices::leds::led4::low(); } /** diff --git a/miosix/arch/cortexM3_stm32f2/stm32f205rc_skyward_ciuti/interfaces-impl/delays.cpp b/miosix/arch/cortexM3_stm32f2/stm32f205rc_skyward_ciuti/interfaces-impl/delays.cpp index 24672dfe..0c9f78ac 100644 --- a/miosix/arch/cortexM3_stm32f2/stm32f205rc_skyward_ciuti/interfaces-impl/delays.cpp +++ b/miosix/arch/cortexM3_stm32f2/stm32f205rc_skyward_ciuti/interfaces-impl/delays.cpp @@ -27,51 +27,56 @@ #include "interfaces/delays.h" -namespace miosix { +namespace miosix +{ void delayMs(unsigned int mseconds) { - #ifndef __CODE_IN_XRAM +#ifndef __CODE_IN_XRAM + +#ifdef SYSCLK_FREQ_120MHz + register const unsigned int count = 29999; +#else +#warning "Delays are uncalibrated for this clock frequency" +#endif - #ifdef SYSCLK_FREQ_120MHz - register const unsigned int count=29999; - #else - #warning "Delays are uncalibrated for this clock frequency" - #endif - - for(unsigned int i=0;i<mseconds;i++) + for (unsigned int i = 0; i < mseconds; i++) { // This delay has been calibrated to take 1 millisecond // It is written in assembler to be independent on compiler optimization - asm volatile(" mov r1, #0 \n" - "___loop_m: cmp r1, %0 \n" - " itt lo \n" - " addlo r1, r1, #1 \n" - " blo ___loop_m \n"::"r"(count):"r1"); + asm volatile( + " mov r1, #0 \n" + "___loop_m: cmp r1, %0 \n" + " itt lo \n" + " addlo r1, r1, #1 \n" + " blo ___loop_m \n" ::"r"(count) + : "r1"); } - #else //__CODE_IN_XRAM - #error "No delays" - #endif //__CODE_IN_XRAM +#else //__CODE_IN_XRAM +#error "No delays" +#endif //__CODE_IN_XRAM } void delayUs(unsigned int useconds) { - #ifndef __CODE_IN_XRAM +#ifndef __CODE_IN_XRAM // This delay has been calibrated to take x microseconds // It is written in assembler to be independent on compiler optimization - asm volatile(" mov r1, #30 \n" - " mul r2, %0, r1 \n" - " mov r1, #0 \n" - "___loop_u: cmp r1, r2 \n" - " itt lo \n" - " addlo r1, r1, #1 \n" - " blo ___loop_u \n"::"r"(useconds):"r1","r2"); + asm volatile( + " mov r1, #30 \n" + " mul r2, %0, r1 \n" + " mov r1, #0 \n" + "___loop_u: cmp r1, r2 \n" + " itt lo \n" + " addlo r1, r1, #1 \n" + " blo ___loop_u \n" ::"r"(useconds) + : "r1", "r2"); - #else //__CODE_IN_XRAM - #error "No delays" - #endif //__CODE_IN_XRAM +#else //__CODE_IN_XRAM +#error "No delays" +#endif //__CODE_IN_XRAM } -} //namespace miosix +} // namespace miosix diff --git a/miosix/arch/cortexM3_stm32f2/stm32f205rc_skyward_ciuti/interfaces-impl/hwmapping.h b/miosix/arch/cortexM3_stm32f2/stm32f205rc_skyward_ciuti/interfaces-impl/hwmapping.h index 7beeca4e..790b5438 100644 --- a/miosix/arch/cortexM3_stm32f2/stm32f205rc_skyward_ciuti/interfaces-impl/hwmapping.h +++ b/miosix/arch/cortexM3_stm32f2/stm32f205rc_skyward_ciuti/interfaces-impl/hwmapping.h @@ -82,7 +82,7 @@ using tx = Gpio<GPIOA_BASE, 12>; } // namespace interfaces -namespace sensors +namespace devices { namespace lis331hh @@ -90,7 +90,7 @@ namespace lis331hh using cs = Gpio<GPIOC_BASE, 4>; } -namespace ad8403 +namespace ad5204 { using cs = Gpio<GPIOC_BASE, 0>; } @@ -105,11 +105,6 @@ using mosfet2 = Gpio<GPIOC_BASE, 2>; using vbat = Gpio<GPIOC_BASE, 5>; -} // namespace sensors - -namespace actuators -{ - namespace buttons { using bypass = Gpio<GPIOC_BASE, 7>; @@ -129,7 +124,7 @@ using led3 = Gpio<GPIOB_BASE, 6>; using led4 = Gpio<GPIOB_BASE, 7>; } // namespace leds -} // namespace actuators +} // namespace devices } // namespace miosix -- GitLab