fix(h7): various build fixes (#5283)

Co-authored-by: raphaelcoeffic <1050031+raphaelcoeffic@users.noreply.github.com>
This commit is contained in:
Raphael Coeffic
2024-07-11 11:28:49 +02:00
committed by GitHub
co-authored by raphaelcoeffic
parent 170bdebcc4
commit c7bc9f01c9
8 changed files with 42 additions and 12 deletions
@@ -241,7 +241,7 @@ static DSTATUS sdio_initialize(BYTE lun)
sdio.Init.ClockEdge = SD_SDIO_CLOCK_EDGE_RISING;
sdio.Init.ClockPowerSave = SD_SDIO_CLOCK_POWER_SAVE_DISABLE;
sdio.Init.BusWide = SD_SDIO_BUS_WIDE_1B;
sdio.Init.HardwareFlowControl = SDIO_HARDWARE_FLOW_CONTROL_DISABLE;
sdio.Init.HardwareFlowControl = SD_SDIO_HARDWARE_FLOW_CONTROL_DISABLE;
#if ( USE_SD_TRANSCEIVER > 0U )
sdio.Init.TranceiverPresent = SDMMC_TRANSCEIVER_PRESENT;
#endif
@@ -60,7 +60,13 @@ void rtcGetTime(struct gtm * t)
void rtcInit()
{
rtc.Instance = RTC;
#if !defined(STM32H7) && !defined(STM32H7RS)
// Power management peripheral is active by default at startup level in
// STM32h7xx lines.
__HAL_RCC_PWR_CLK_ENABLE();
#endif
HAL_PWR_EnableBkUpAccess();
// Enable LSE Oscillator
@@ -399,13 +399,20 @@ void stm32_usart_send_buffer(const stm32_usart_t* usart, const uint8_t * data, u
LL_DMA_StructInit(&dmaInit);
#if !defined(STM32H7RS)
#if defined(STM32H7)
dmaInit.PeriphRequest = usart->txDMA_Channel;
#else
dmaInit.Channel = usart->txDMA_Channel;
#endif
#if defined(LL_USART_DMA_REG_DATA_RECEIVE)
dmaInit.PeriphOrM2MSrcAddress =
LL_USART_DMA_GetRegAddr(usart->USARTx, LL_USART_DMA_REG_DATA_RECEIVE);
#else
dmaInit.PeriphOrM2MSrcAddress = LL_USART_DMA_GetRegAddr(usart->USARTx);
#endif
dmaInit.Direction = LL_DMA_DIRECTION_MEMORY_TO_PERIPH;
dmaInit.MemoryOrM2MDstAddress = (uint32_t)data;
dmaInit.MemoryOrM2MDstIncMode = LL_DMA_MEMORY_INCREMENT;
@@ -418,7 +425,7 @@ void stm32_usart_send_buffer(const stm32_usart_t* usart, const uint8_t * data, u
LL_DMA_EnableIT_TC(usart->txDMA, usart->txDMA_Stream);
}
LL_DMA_EnableStream(usart->txDMA, usart->txDMA_Stream);
#endif
#endif // !STM32H7RS
return;
} else {
@@ -101,9 +101,22 @@ void usbInit()
#if defined(USB_GPIO_VBUS)
gpio_init(USB_GPIO_VBUS, GPIO_IN, GPIO_PIN_SPEED_LOW);
#endif
#if defined(LL_APB2_GRP1_PERIPH_SYSCFG)
LL_APB2_GRP1_EnableClock(LL_APB2_GRP1_PERIPH_SYSCFG);
#elif defined(LL_APB4_GRP1_PERIPH_SYSCFG)
LL_APB4_GRP1_EnableClock(LL_APB4_GRP1_PERIPH_SYSCFG);
#else
#error "Unable to enable SYSCFG peripheral clock"
#endif
#if defined(LL_AHB2_GRP1_PERIPH_OTGFS)
LL_AHB2_GRP1_EnableClock(LL_AHB2_GRP1_PERIPH_OTGFS);
#elif defined(LL_AHB1_GRP1_PERIPH_USB2OTGHS)
LL_AHB1_GRP1_EnableClock(LL_AHB1_GRP1_PERIPH_USB2OTGHS);
#else
#error "Unable to enable USB peripheral clock"
#endif
usbDriverStarted = false;
}
@@ -136,14 +136,7 @@ USBD_StorageTypeDef USBD_Storage_Interface_fops_FS =
int8_t STORAGE_Init_FS(uint8_t lun)
{
NVIC_SetPriority(SDIO_IRQn, 0);
NVIC_EnableIRQ(SDIO_IRQn);
/* TODO if no SD ... if( SD_Init() != 0)
{
return (-1);
}
*/
// TODO: call generic storage init
return (USBD_OK);
}