text: //
  // Copyright (c) .NET Foundation and Contributors
  // See LICENSE file in the project root for full license information.
  //
  
  #include "target_windows_devices_serialcommunication_config.h"
  #include "win_dev_serial_native_target.h"
  
  ///////////
  // UART1 //
  ///////////
  
  // pin configuration for UART1
  // port: GPIOA, GPIOB
  // TX pin: is GPIOA_15
  // RX pin: is GPIOB_07
  // GPIO alternate pin function is 7 (see "Table 9. Alternate function mapping" in STM32F411xC and STM32F411xE datasheet)
  UART_CONFIG_PINS(1, GPIOA, GPIOB, 15, 7, 7)
  
  // buffers
  // buffers that are R/W by DMA are recommended to be aligned with 32 bytes cache page size boundary
  // because of issues with cache coherency and DMA (this is particularly important with Cortex-M7 because of cache)
  #if defined(__GNUC__)
  __attribute__((aligned (32)))
  #endif
  uint8_t Uart1_TxBuffer[UART1_TX_SIZE];
  #if defined(__GNUC__)
  __attribute__((aligned (32)))
  #endif
  uint8_t Uart1_RxBuffer[UART1_RX_SIZE];
  
  // initialization for UART1
  UART_INIT(1, UART1_TX_SIZE, UART1_RX_SIZE)
  
  // un-initialization for UART1
  UART_UNINIT(1)
  