Re-ordered init functions.

This commit is contained in:
imi415 2022-02-01 20:43:23 +08:00
parent bcbed7ff30
commit d507b87178
Signed by: imi415
GPG Key ID: 17F01E106F9F5E0A
9 changed files with 471 additions and 181 deletions

View File

@ -6,8 +6,8 @@ enable_language(CXX)
enable_language(ASM)
# Extra CFlags
set(TARGET_CFLAGS_EXTRA "-Og")
set(TARGET_CXXFLAGS_EXTRA "-Og")
set(TARGET_CFLAGS_EXTRA "")
set(TARGET_CXXFLAGS_EXTRA "")
set(TARGET_LDFLAGS_EXTRA "-Wl,--print-memory-usage")
# Different linker scripts
@ -37,6 +37,7 @@ set(TARGET_C_SOURCES
"Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pwr.c"
"Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pwr_ex.c"
"Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_qspi.c"
"Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_ramecc.c"
"Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_rcc.c"
"Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_rcc_ex.c"
"Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_rng.c"
@ -104,12 +105,12 @@ set(CMAKE_ASM_FLAGS_DEBUG "-DDEBUG -Og -g")
set(CMAKE_C_FLAGS_RELEASE "-DNDEBUG -O2 -flto")
set(CMAKE_CXX_FLAGS_RELEASE "-DNDEBUG -O2 -flto")
set(CMAKE_ASM_FLAGS_RELEASE "-DNDEBUG -O2 -flto")
set(CMAKE_EXE_LINKER_FLAGS_DEBUG "-flto")
set(CMAKE_EXE_LINKER_FLAGS_RELEASE "-flto")
# Final compiler flags
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${TARGET_CFLAGS_HARDWARE} ${TARGET_CFLAGS_EXTRA} -Wall -fdata-sections -ffunction-sections")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${TARGET_CFLAGS_HARDWARE} ${TARGET_CXXFLAGS_EXTRA} -Wall -fdata-sections -ffunction-sections")
set(CMAKE_ASM_FLAGS "${CMAKE_ASM_FLAGS} ${TARGET_CMAKE_C_FLAGS} -x assembler-with-cpp")
set(CMAKE_ASM_FLAGS "${CMAKE_ASM_FLAGS} ${CMAKE_C_FLAGS} -x assembler-with-cpp")
set(CMAKE_EXE_LINKER_FLAGS "-specs=nano.specs -Wl,--gc-sections -lc -lm -lnosys ${TARGET_LDFLAGS_EXTRA}")
# Include sub directories here

View File

@ -57,6 +57,8 @@ void Error_Handler(void);
/* USER CODE END EFP */
/* Private defines -----------------------------------------------------------*/
#define LED_Pin GPIO_PIN_1
#define LED_GPIO_Port GPIOA
#define LED_SR_44_Pin GPIO_PIN_8
#define LED_SR_44_GPIO_Port GPIOD
#define LED_SR_48_Pin GPIO_PIN_9

View File

@ -65,7 +65,7 @@
/* #define HAL_LPTIM_MODULE_ENABLED */
/* #define HAL_LTDC_MODULE_ENABLED */
#define HAL_QSPI_MODULE_ENABLED
/* #define HAL_RAMECC_MODULE_ENABLED */
#define HAL_RAMECC_MODULE_ENABLED
/* #define HAL_RNG_MODULE_ENABLED */
/* #define HAL_RTC_MODULE_ENABLED */
#define HAL_SAI_MODULE_ENABLED
@ -207,7 +207,7 @@
#define USE_HAL_QSPI_REGISTER_CALLBACKS 0U /* QSPI register callback disabled */
#define USE_HAL_RNG_REGISTER_CALLBACKS 0U /* RNG register callback disabled */
#define USE_HAL_RTC_REGISTER_CALLBACKS 0U /* RTC register callback disabled */
#define USE_HAL_SAI_REGISTER_CALLBACKS 0U /* SAI register callback disabled */
#define USE_HAL_SAI_REGISTER_CALLBACKS 1U /* SAI register callback enabled */
#define USE_HAL_SD_REGISTER_CALLBACKS 0U /* SD register callback disabled */
#define USE_HAL_SMARTCARD_REGISTER_CALLBACKS 0U /* SMARTCARD register callback disabled */
#define USE_HAL_SPDIFRX_REGISTER_CALLBACKS 0U /* SPDIFRX register callback disabled */

View File

@ -64,6 +64,9 @@ void FPU_IRQHandler(void);
void QUADSPI_IRQHandler(void);
void I2C4_EV_IRQHandler(void);
void I2C4_ER_IRQHandler(void);
void OTG_FS_EP1_OUT_IRQHandler(void);
void OTG_FS_EP1_IN_IRQHandler(void);
void OTG_FS_IRQHandler(void);
void SAI3_IRQHandler(void);
void HSEM1_IRQHandler(void);
/* USER CODE BEGIN EFP */

View File

@ -46,6 +46,13 @@ I2C_HandleTypeDef hi2c4;
QSPI_HandleTypeDef hqspi;
RAMECC_HandleTypeDef hramecc1_m1;
RAMECC_HandleTypeDef hramecc2_m1;
RAMECC_HandleTypeDef hramecc2_m2;
RAMECC_HandleTypeDef hramecc2_m3;
RAMECC_HandleTypeDef hramecc2_m4;
RAMECC_HandleTypeDef hramecc2_m5;
SAI_HandleTypeDef hsai_BlockA3;
DMA_HandleTypeDef hdma_sai3_a;
@ -59,12 +66,14 @@ PCD_HandleTypeDef hpcd_USB_OTG_FS;
/* Private function prototypes -----------------------------------------------*/
void SystemClock_Config(void);
static void MPU_Config(void);
static void MX_GPIO_Init(void);
static void MX_I2C4_Init(void);
static void MX_RAMECC_Init(void);
static void MX_QUADSPI_Init(void);
static void MX_SAI3_Init(void);
static void MX_USART1_UART_Init(void);
static void MX_DMA_Init(void);
static void MX_USART1_UART_Init(void);
static void MX_SAI3_Init(void);
static void MX_I2C4_Init(void);
static void MX_USB_OTG_FS_PCD_Init(void);
/* USER CODE BEGIN PFP */
@ -73,15 +82,18 @@ static void MX_USB_OTG_FS_PCD_Init(void);
/* Private user code ---------------------------------------------------------*/
/* USER CODE BEGIN 0 */
uint8_t da_data[1024];
uint8_t __ALIGNED(4) da_data[1024];
void HAL_SAI_ErrorCallback(SAI_HandleTypeDef *hsai) {
volatile uint32_t err = HAL_SAI_GetError(hsai);
void sai_error_cb(SAI_HandleTypeDef *hsai) {
for(;;) {
}
}
void sai_cplt_cb(SAI_HandleTypeDef *hsai) {
HAL_GPIO_WritePin(LED_SR_44_GPIO_Port, LED_SR_44_Pin, GPIO_PIN_RESET);
}
/* USER CODE END 0 */
/**
@ -94,6 +106,15 @@ int main(void)
/* USER CODE END 1 */
/* MPU Configuration--------------------------------------------------------*/
MPU_Config();
/* Enable I-Cache---------------------------------------------------------*/
SCB_EnableICache();
/* Enable D-Cache---------------------------------------------------------*/
SCB_EnableDCache();
/* MCU Configuration--------------------------------------------------------*/
/* Reset of all peripherals, Initializes the Flash interface and the Systick. */
@ -112,19 +133,26 @@ int main(void)
/* Initialize all configured peripherals */
MX_GPIO_Init();
MX_I2C4_Init();
MX_RAMECC_Init();
MX_QUADSPI_Init();
MX_SAI3_Init();
MX_USART1_UART_Init();
MX_DMA_Init();
MX_USART1_UART_Init();
MX_SAI3_Init();
MX_I2C4_Init();
MX_USB_OTG_FS_PCD_Init();
/* USER CODE BEGIN 2 */
memset(da_data, 0xA5, sizeof(da_data));
HAL_GPIO_WritePin(MCU_OSC_SEL_GPIO_Port, MCU_OSC_SEL_Pin, GPIO_PIN_RESET);
memset(da_data, 0xAA, sizeof(da_data));
HAL_SAI_RegisterCallback(&hsai_BlockA3, HAL_SAI_ERROR_CB_ID, sai_error_cb);
HAL_SAI_RegisterCallback(&hsai_BlockA3, HAL_SAI_TX_COMPLETE_CB_ID, sai_cplt_cb);
if(HAL_SAI_Transmit_DMA(&hsai_BlockA3, da_data, sizeof(da_data)) != HAL_OK) {
for(;;) {
//
HAL_GPIO_TogglePin(LED_GPIO_Port, LED_Pin);
HAL_Delay(100);
}
}
@ -155,24 +183,22 @@ void SystemClock_Config(void)
HAL_PWREx_ConfigSupply(PWR_LDO_SUPPLY);
/** Configure the main internal regulator output voltage
*/
__HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE3);
__HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE2);
while(!__HAL_PWR_GET_FLAG(PWR_FLAG_VOSRDY)) {}
/** Macro to configure the PLL clock source
*/
__HAL_RCC_PLL_PLLSOURCE_CONFIG(RCC_PLLSOURCE_HSE);
/** Initializes the RCC Oscillators according to the specified parameters
* in the RCC_OscInitTypeDef structure.
*/
RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI48|RCC_OSCILLATORTYPE_HSE;
RCC_OscInitStruct.HSEState = RCC_HSE_ON;
RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI48|RCC_OSCILLATORTYPE_HSI;
RCC_OscInitStruct.HSIState = RCC_HSI_DIV1;
RCC_OscInitStruct.HSICalibrationValue = RCC_HSICALIBRATION_DEFAULT;
RCC_OscInitStruct.HSI48State = RCC_HSI48_ON;
RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;
RCC_OscInitStruct.PLL.PLLM = 2;
RCC_OscInitStruct.PLL.PLLN = 48;
RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSI;
RCC_OscInitStruct.PLL.PLLM = 16;
RCC_OscInitStruct.PLL.PLLN = 60;
RCC_OscInitStruct.PLL.PLLP = 2;
RCC_OscInitStruct.PLL.PLLQ = 3;
RCC_OscInitStruct.PLL.PLLQ = 10;
RCC_OscInitStruct.PLL.PLLR = 25;
RCC_OscInitStruct.PLL.PLLRGE = RCC_PLL1VCIRANGE_2;
RCC_OscInitStruct.PLL.PLLVCOSEL = RCC_PLL1VCOWIDE;
@ -189,8 +215,8 @@ void SystemClock_Config(void)
RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;
RCC_ClkInitStruct.SYSCLKDivider = RCC_SYSCLK_DIV1;
RCC_ClkInitStruct.AHBCLKDivider = RCC_HCLK_DIV1;
RCC_ClkInitStruct.APB3CLKDivider = RCC_APB3_DIV1;
RCC_ClkInitStruct.APB1CLKDivider = RCC_APB1_DIV1;
RCC_ClkInitStruct.APB3CLKDivider = RCC_APB3_DIV2;
RCC_ClkInitStruct.APB1CLKDivider = RCC_APB1_DIV2;
RCC_ClkInitStruct.APB2CLKDivider = RCC_APB2_DIV2;
RCC_ClkInitStruct.APB4CLKDivider = RCC_APB4_DIV2;
@ -198,9 +224,6 @@ void SystemClock_Config(void)
{
Error_Handler();
}
/** Enables the Clock Security System
*/
HAL_RCC_EnableCSS();
}
/**
@ -219,7 +242,7 @@ static void MX_I2C4_Init(void)
/* USER CODE END I2C4_Init 1 */
hi2c4.Instance = I2C4;
hi2c4.Init.Timing = 0x20303E5D;
hi2c4.Init.Timing = 0x107075B0;
hi2c4.Init.OwnAddress1 = 0;
hi2c4.Init.AddressingMode = I2C_ADDRESSINGMODE_7BIT;
hi2c4.Init.DualAddressMode = I2C_DUALADDRESS_DISABLE;
@ -284,6 +307,69 @@ static void MX_QUADSPI_Init(void)
}
/**
* @brief RAMECC Initialization Function
* @param None
* @retval None
*/
static void MX_RAMECC_Init(void)
{
/* USER CODE BEGIN RAMECC_Init 0 */
/* USER CODE END RAMECC_Init 0 */
/* USER CODE BEGIN RAMECC_Init 1 */
/* USER CODE END RAMECC_Init 1 */
/** Initialize RAMECC1 M1 : AXI SRAM
*/
hramecc1_m1.Instance = RAMECC1_Monitor1;
if (HAL_RAMECC_Init(&hramecc1_m1) != HAL_OK)
{
Error_Handler();
}
/** Initialize RAMECC2 M1 : SRAM1_0
*/
hramecc2_m1.Instance = RAMECC2_Monitor1;
if (HAL_RAMECC_Init(&hramecc2_m1) != HAL_OK)
{
Error_Handler();
}
/** Initialize RAMECC2 M2 SRAM1_1
*/
hramecc2_m2.Instance = RAMECC2_Monitor2;
if (HAL_RAMECC_Init(&hramecc2_m2) != HAL_OK)
{
Error_Handler();
}
/** Initialize RAMECC2 M3 : SRAM2_0
*/
hramecc2_m3.Instance = RAMECC2_Monitor3;
if (HAL_RAMECC_Init(&hramecc2_m3) != HAL_OK)
{
Error_Handler();
}
/** Initialize RAMECC2 M4 : SRAM2_1
*/
hramecc2_m4.Instance = RAMECC2_Monitor4;
if (HAL_RAMECC_Init(&hramecc2_m4) != HAL_OK)
{
Error_Handler();
}
/** Initialize RAMECC2 M5 : SRAM3
*/
hramecc2_m5.Instance = RAMECC2_Monitor5;
if (HAL_RAMECC_Init(&hramecc2_m5) != HAL_OK)
{
Error_Handler();
}
/* USER CODE BEGIN RAMECC_Init 2 */
/* USER CODE END RAMECC_Init 2 */
}
/**
* @brief SAI3 Initialization Function
* @param None
@ -308,7 +394,7 @@ static void MX_SAI3_Init(void)
hsai_BlockA3.Init.Synchro = SAI_ASYNCHRONOUS;
hsai_BlockA3.Init.OutputDrive = SAI_OUTPUTDRIVE_ENABLE;
hsai_BlockA3.Init.NoDivider = SAI_MASTERDIVIDER_ENABLE;
hsai_BlockA3.Init.FIFOThreshold = SAI_FIFOTHRESHOLD_1QF;
hsai_BlockA3.Init.FIFOThreshold = SAI_FIFOTHRESHOLD_3QF;
hsai_BlockA3.Init.AudioFrequency = SAI_AUDIO_FREQUENCY_48K;
hsai_BlockA3.Init.SynchroExt = SAI_SYNCEXT_DISABLE;
hsai_BlockA3.Init.MonoStereoMode = SAI_STEREOMODE;
@ -449,33 +535,53 @@ static void MX_GPIO_Init(void)
__HAL_RCC_GPIOE_CLK_ENABLE();
__HAL_RCC_GPIOC_CLK_ENABLE();
__HAL_RCC_GPIOH_CLK_ENABLE();
__HAL_RCC_GPIOA_CLK_ENABLE();
__HAL_RCC_GPIOB_CLK_ENABLE();
__HAL_RCC_GPIOD_CLK_ENABLE();
__HAL_RCC_GPIOA_CLK_ENABLE();
/*Configure GPIO pin Output Level */
HAL_GPIO_WritePin(GPIOD, LED_SR_44_Pin|LED_SR_48_Pin|LED_SR_96_Pin, GPIO_PIN_RESET);
HAL_GPIO_WritePin(LED_GPIO_Port, LED_Pin, GPIO_PIN_SET);
/*Configure GPIO pin Output Level */
HAL_GPIO_WritePin(GPIOC, LED_BIT_16_Pin|LED_BIT_24_Pin|MCU_OSC_SEL_Pin, GPIO_PIN_RESET);
HAL_GPIO_WritePin(GPIOD, LED_SR_44_Pin|LED_SR_48_Pin|LED_SR_96_Pin, GPIO_PIN_SET);
/*Configure GPIO pin Output Level */
HAL_GPIO_WritePin(GPIOC, LED_BIT_16_Pin|LED_BIT_24_Pin, GPIO_PIN_SET);
/*Configure GPIO pin Output Level */
HAL_GPIO_WritePin(MCU_OSC_SEL_GPIO_Port, MCU_OSC_SEL_Pin, GPIO_PIN_RESET);
/*Configure GPIO pin Output Level */
HAL_GPIO_WritePin(A_AMP_UP_GPIO_Port, A_AMP_UP_Pin, GPIO_PIN_RESET);
/*Configure GPIO pin : LED_Pin */
GPIO_InitStruct.Pin = LED_Pin;
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_OD;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
HAL_GPIO_Init(LED_GPIO_Port, &GPIO_InitStruct);
/*Configure GPIO pins : LED_SR_44_Pin LED_SR_48_Pin LED_SR_96_Pin */
GPIO_InitStruct.Pin = LED_SR_44_Pin|LED_SR_48_Pin|LED_SR_96_Pin;
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_OD;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
/*Configure GPIO pins : LED_BIT_16_Pin LED_BIT_24_Pin MCU_OSC_SEL_Pin */
GPIO_InitStruct.Pin = LED_BIT_16_Pin|LED_BIT_24_Pin|MCU_OSC_SEL_Pin;
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
/*Configure GPIO pins : LED_BIT_16_Pin LED_BIT_24_Pin */
GPIO_InitStruct.Pin = LED_BIT_16_Pin|LED_BIT_24_Pin;
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_OD;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
/*Configure GPIO pin : MCU_OSC_SEL_Pin */
GPIO_InitStruct.Pin = MCU_OSC_SEL_Pin;
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
HAL_GPIO_Init(MCU_OSC_SEL_GPIO_Port, &GPIO_InitStruct);
/*Configure GPIO pin : PC9 */
GPIO_InitStruct.Pin = GPIO_PIN_9;
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
@ -497,6 +603,34 @@ static void MX_GPIO_Init(void)
/* USER CODE END 4 */
/* MPU Configuration */
void MPU_Config(void)
{
MPU_Region_InitTypeDef MPU_InitStruct = {0};
/* Disables the MPU */
HAL_MPU_Disable();
/** Initializes and configures the Region and the memory to be protected
*/
MPU_InitStruct.Enable = MPU_REGION_ENABLE;
MPU_InitStruct.Number = MPU_REGION_NUMBER0;
MPU_InitStruct.BaseAddress = 0x0;
MPU_InitStruct.Size = MPU_REGION_SIZE_4GB;
MPU_InitStruct.SubRegionDisable = 0x0;
MPU_InitStruct.TypeExtField = MPU_TEX_LEVEL0;
MPU_InitStruct.AccessPermission = MPU_REGION_FULL_ACCESS;
MPU_InitStruct.DisableExec = MPU_INSTRUCTION_ACCESS_ENABLE;
MPU_InitStruct.IsShareable = MPU_ACCESS_SHAREABLE;
MPU_InitStruct.IsCacheable = MPU_ACCESS_NOT_CACHEABLE;
MPU_InitStruct.IsBufferable = MPU_ACCESS_NOT_BUFFERABLE;
HAL_MPU_ConfigRegion(&MPU_InitStruct);
/* Enables the MPU */
HAL_MPU_Enable(MPU_PRIVILEGED_DEFAULT);
}
/**
* @brief This function is executed in case of error occurrence.
* @retval None

View File

@ -131,9 +131,9 @@ void HAL_I2C_MspInit(I2C_HandleTypeDef* hi2c)
/* Peripheral clock enable */
__HAL_RCC_I2C4_CLK_ENABLE();
/* I2C4 interrupt Init */
HAL_NVIC_SetPriority(I2C4_EV_IRQn, 1, 0);
HAL_NVIC_SetPriority(I2C4_EV_IRQn, 0, 0);
HAL_NVIC_EnableIRQ(I2C4_EV_IRQn);
HAL_NVIC_SetPriority(I2C4_ER_IRQn, 1, 0);
HAL_NVIC_SetPriority(I2C4_ER_IRQn, 0, 0);
HAL_NVIC_EnableIRQ(I2C4_ER_IRQn);
/* USER CODE BEGIN I2C4_MspInit 1 */
@ -412,6 +412,13 @@ void HAL_PCD_MspInit(PCD_HandleTypeDef* hpcd)
/* Peripheral clock enable */
__HAL_RCC_USB_OTG_FS_CLK_ENABLE();
/* USB_OTG_FS interrupt Init */
HAL_NVIC_SetPriority(OTG_FS_EP1_OUT_IRQn, 0, 0);
HAL_NVIC_EnableIRQ(OTG_FS_EP1_OUT_IRQn);
HAL_NVIC_SetPriority(OTG_FS_EP1_IN_IRQn, 0, 0);
HAL_NVIC_EnableIRQ(OTG_FS_EP1_IN_IRQn);
HAL_NVIC_SetPriority(OTG_FS_IRQn, 0, 0);
HAL_NVIC_EnableIRQ(OTG_FS_IRQn);
/* USER CODE BEGIN USB_OTG_FS_MspInit 1 */
/* USER CODE END USB_OTG_FS_MspInit 1 */
@ -441,6 +448,10 @@ void HAL_PCD_MspDeInit(PCD_HandleTypeDef* hpcd)
*/
HAL_GPIO_DeInit(GPIOA, GPIO_PIN_11|GPIO_PIN_12);
/* USB_OTG_FS interrupt DeInit */
HAL_NVIC_DisableIRQ(OTG_FS_EP1_OUT_IRQn);
HAL_NVIC_DisableIRQ(OTG_FS_EP1_IN_IRQn);
HAL_NVIC_DisableIRQ(OTG_FS_IRQn);
/* USER CODE BEGIN USB_OTG_FS_MspDeInit 1 */
/* USER CODE END USB_OTG_FS_MspDeInit 1 */
@ -464,15 +475,7 @@ void HAL_SAI_MspInit(SAI_HandleTypeDef* hsai)
/** Initializes the peripherals clock
*/
PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_SAI3;
PeriphClkInitStruct.PLL2.PLL2M = 2;
PeriphClkInitStruct.PLL2.PLL2N = 43;
PeriphClkInitStruct.PLL2.PLL2P = 7;
PeriphClkInitStruct.PLL2.PLL2Q = 2;
PeriphClkInitStruct.PLL2.PLL2R = 2;
PeriphClkInitStruct.PLL2.PLL2RGE = RCC_PLL2VCIRANGE_2;
PeriphClkInitStruct.PLL2.PLL2VCOSEL = RCC_PLL2VCOMEDIUM;
PeriphClkInitStruct.PLL2.PLL2FRACN = 66;
PeriphClkInitStruct.Sai23ClockSelection = RCC_SAI23CLKSOURCE_PLL2;
PeriphClkInitStruct.Sai23ClockSelection = RCC_SAI23CLKSOURCE_PIN;
if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct) != HAL_OK)
{
Error_Handler();
@ -483,7 +486,7 @@ void HAL_SAI_MspInit(SAI_HandleTypeDef* hsai)
__HAL_RCC_SAI3_CLK_ENABLE();
/* Peripheral interrupt init*/
HAL_NVIC_SetPriority(SAI3_IRQn, 14, 0);
HAL_NVIC_SetPriority(SAI3_IRQn, 0, 0);
HAL_NVIC_EnableIRQ(SAI3_IRQn);
}
SAI3_client ++;
@ -510,8 +513,8 @@ void HAL_SAI_MspInit(SAI_HandleTypeDef* hsai)
hdma_sai3_a.Init.MemInc = DMA_MINC_ENABLE;
hdma_sai3_a.Init.PeriphDataAlignment = DMA_PDATAALIGN_HALFWORD;
hdma_sai3_a.Init.MemDataAlignment = DMA_MDATAALIGN_HALFWORD;
hdma_sai3_a.Init.Mode = DMA_CIRCULAR;
hdma_sai3_a.Init.Priority = DMA_PRIORITY_HIGH;
hdma_sai3_a.Init.Mode = DMA_NORMAL;
hdma_sai3_a.Init.Priority = DMA_PRIORITY_LOW;
hdma_sai3_a.Init.FIFOMode = DMA_FIFOMODE_DISABLE;
if (HAL_DMA_Init(&hdma_sai3_a) != HAL_OK)
{

View File

@ -60,6 +60,7 @@ extern QSPI_HandleTypeDef hqspi;
extern DMA_HandleTypeDef hdma_sai3_a;
extern SAI_HandleTypeDef hsai_BlockA3;
extern UART_HandleTypeDef huart1;
extern PCD_HandleTypeDef hpcd_USB_OTG_FS;
/* USER CODE BEGIN EV */
/* USER CODE END EV */
@ -75,7 +76,6 @@ void NMI_Handler(void)
/* USER CODE BEGIN NonMaskableInt_IRQn 0 */
/* USER CODE END NonMaskableInt_IRQn 0 */
HAL_RCC_NMI_IRQHandler();
/* USER CODE BEGIN NonMaskableInt_IRQn 1 */
while (1)
{
@ -327,6 +327,48 @@ void I2C4_ER_IRQHandler(void)
/* USER CODE END I2C4_ER_IRQn 1 */
}
/**
* @brief This function handles USB On The Go FS End Point 1 Out global interrupt.
*/
void OTG_FS_EP1_OUT_IRQHandler(void)
{
/* USER CODE BEGIN OTG_FS_EP1_OUT_IRQn 0 */
/* USER CODE END OTG_FS_EP1_OUT_IRQn 0 */
HAL_PCD_IRQHandler(&hpcd_USB_OTG_FS);
/* USER CODE BEGIN OTG_FS_EP1_OUT_IRQn 1 */
/* USER CODE END OTG_FS_EP1_OUT_IRQn 1 */
}
/**
* @brief This function handles USB On The Go FS End Point 1 In global interrupt.
*/
void OTG_FS_EP1_IN_IRQHandler(void)
{
/* USER CODE BEGIN OTG_FS_EP1_IN_IRQn 0 */
/* USER CODE END OTG_FS_EP1_IN_IRQn 0 */
HAL_PCD_IRQHandler(&hpcd_USB_OTG_FS);
/* USER CODE BEGIN OTG_FS_EP1_IN_IRQn 1 */
/* USER CODE END OTG_FS_EP1_IN_IRQn 1 */
}
/**
* @brief This function handles USB On The Go FS global interrupt.
*/
void OTG_FS_IRQHandler(void)
{
/* USER CODE BEGIN OTG_FS_IRQn 0 */
/* USER CODE END OTG_FS_IRQn 0 */
HAL_PCD_IRQHandler(&hpcd_USB_OTG_FS);
/* USER CODE BEGIN OTG_FS_IRQn 1 */
/* USER CODE END OTG_FS_IRQn 1 */
}
/**
* @brief This function handles SAI3 global interrupt.
*/

View File

@ -147,7 +147,7 @@ SECTIONS
. = ALIGN(4);
_edata = .; /* define a global symbol at data end */
} >DTCMRAM AT> FLASH
} >RAM_D1 AT> FLASH
/* Uninitialized data section */
@ -164,7 +164,7 @@ SECTIONS
. = ALIGN(4);
_ebss = .; /* define a global symbol at bss end */
__bss_end__ = _ebss;
} >DTCMRAM
} >RAM_D1
/* User_heap_stack section, used to check that there is enough RAM left */
._user_heap_stack :
@ -175,7 +175,7 @@ SECTIONS
. = . + _Min_Heap_Size;
. = . + _Min_Stack_Size;
. = ALIGN(8);
} >DTCMRAM
} >RAM_D1

View File

@ -1,4 +1,12 @@
#MicroXplorer Configuration settings - do not modify
CORTEX_M7.AccessPermission-Cortex_Memory_Protection_Unit_Region0_Settings=MPU_REGION_FULL_ACCESS
CORTEX_M7.CPU_DCache=Enabled
CORTEX_M7.CPU_ICache=Enabled
CORTEX_M7.Enable-Cortex_Memory_Protection_Unit_Region0_Settings=MPU_REGION_ENABLE
CORTEX_M7.IPParameters=MPU_Control,Enable-Cortex_Memory_Protection_Unit_Region0_Settings,Size-Cortex_Memory_Protection_Unit_Region0_Settings,AccessPermission-Cortex_Memory_Protection_Unit_Region0_Settings,IsShareable-Cortex_Memory_Protection_Unit_Region0_Settings,CPU_ICache,CPU_DCache
CORTEX_M7.IsShareable-Cortex_Memory_Protection_Unit_Region0_Settings=MPU_ACCESS_SHAREABLE
CORTEX_M7.MPU_Control=MPU_PRIVILEGED_DEFAULT
CORTEX_M7.Size-Cortex_Memory_Protection_Unit_Region0_Settings=MPU_REGION_SIZE_4GB
Dma.Request0=SAI3_A
Dma.RequestsNb=1
Dma.SAI3_A.0.Direction=DMA_MEMORY_TO_PERIPH
@ -7,11 +15,11 @@ Dma.SAI3_A.0.FIFOMode=DMA_FIFOMODE_DISABLE
Dma.SAI3_A.0.Instance=DMA1_Stream0
Dma.SAI3_A.0.MemDataAlignment=DMA_MDATAALIGN_HALFWORD
Dma.SAI3_A.0.MemInc=DMA_MINC_ENABLE
Dma.SAI3_A.0.Mode=DMA_CIRCULAR
Dma.SAI3_A.0.Mode=DMA_NORMAL
Dma.SAI3_A.0.PeriphDataAlignment=DMA_PDATAALIGN_HALFWORD
Dma.SAI3_A.0.PeriphInc=DMA_PINC_DISABLE
Dma.SAI3_A.0.Polarity=HAL_DMAMUX_REQ_GEN_RISING
Dma.SAI3_A.0.Priority=DMA_PRIORITY_HIGH
Dma.SAI3_A.0.Priority=DMA_PRIORITY_LOW
Dma.SAI3_A.0.RequestNumber=1
Dma.SAI3_A.0.RequestParameters=Instance,Direction,PeriphInc,MemInc,PeriphDataAlignment,MemDataAlignment,Mode,Priority,FIFOMode,SignalID,Polarity,RequestNumber,SyncSignalID,SyncPolarity,SyncEnable,EventEnable,SyncRequestNumber
Dma.SAI3_A.0.SignalID=NONE
@ -22,55 +30,63 @@ Dma.SAI3_A.0.SyncSignalID=NONE
File.Version=6
GPIO.groupedBy=Group By Peripherals
I2C4.IPParameters=Timing
I2C4.Timing=0x20303E5D
I2C4.Timing=0x107075B0
KeepUserPlacement=false
Mcu.Family=STM32H7
Mcu.IP0=CORTEX_M7
Mcu.IP1=DEBUG
Mcu.IP10=USB_OTG_FS
Mcu.IP10=USART1
Mcu.IP11=USB_OTG_FS
Mcu.IP2=DMA
Mcu.IP3=I2C4
Mcu.IP4=NVIC
Mcu.IP5=QUADSPI
Mcu.IP6=RCC
Mcu.IP7=SAI3
Mcu.IP8=SYS
Mcu.IP9=USART1
Mcu.IPNb=11
Mcu.IP6=RAMECC
Mcu.IP7=RCC
Mcu.IP8=SAI3
Mcu.IP9=SYS
Mcu.IPNb=12
Mcu.Name=STM32H750VBTx
Mcu.Package=LQFP100
Mcu.Pin0=PE2
Mcu.Pin1=PC14-OSC32_IN (OSC32_IN)
Mcu.Pin10=PD12
Mcu.Pin11=PD13
Mcu.Pin12=PD15
Mcu.Pin13=PC6
Mcu.Pin14=PC7
Mcu.Pin15=PC8
Mcu.Pin16=PC9
Mcu.Pin17=PA9
Mcu.Pin18=PA10
Mcu.Pin19=PA11
Mcu.Pin10=PD11
Mcu.Pin11=PD12
Mcu.Pin12=PD13
Mcu.Pin13=PD15
Mcu.Pin14=PC6
Mcu.Pin15=PC7
Mcu.Pin16=PC8
Mcu.Pin17=PC9
Mcu.Pin18=PA9
Mcu.Pin19=PA10
Mcu.Pin2=PC15-OSC32_OUT (OSC32_OUT)
Mcu.Pin20=PA12
Mcu.Pin21=PA13 (JTMS/SWDIO)
Mcu.Pin22=PA14 (JTCK/SWCLK)
Mcu.Pin23=PD0
Mcu.Pin24=PD1
Mcu.Pin25=PD4
Mcu.Pin26=PB4 (NJTRST)
Mcu.Pin27=PB6
Mcu.Pin28=PB7
Mcu.Pin29=PB8
Mcu.Pin20=PA11
Mcu.Pin21=PA12
Mcu.Pin22=PA13 (JTMS/SWDIO)
Mcu.Pin23=PA14 (JTCK/SWCLK)
Mcu.Pin24=PD0
Mcu.Pin25=PD1
Mcu.Pin26=PD4
Mcu.Pin27=PB4 (NJTRST)
Mcu.Pin28=PB6
Mcu.Pin29=PB7
Mcu.Pin3=PH0-OSC_IN (PH0)
Mcu.Pin30=VP_SYS_VS_Systick
Mcu.Pin30=PB8
Mcu.Pin31=VP_RAMECC_VS_D1_1
Mcu.Pin32=VP_RAMECC_VS_D2_1
Mcu.Pin33=VP_RAMECC_VS_D2_2
Mcu.Pin34=VP_RAMECC_VS_D2_3
Mcu.Pin35=VP_RAMECC_VS_D2_4
Mcu.Pin36=VP_RAMECC_VS_D2_5
Mcu.Pin37=VP_SYS_VS_Systick
Mcu.Pin4=PH1-OSC_OUT (PH1)
Mcu.Pin5=PB2
Mcu.Pin6=PD8
Mcu.Pin7=PD9
Mcu.Pin8=PD10
Mcu.Pin9=PD11
Mcu.PinsNb=31
Mcu.Pin5=PA1
Mcu.Pin6=PB2
Mcu.Pin7=PD8
Mcu.Pin8=PD9
Mcu.Pin9=PD10
Mcu.PinsNb=38
Mcu.ThirdPartyNb=0
Mcu.UserConstants=
Mcu.UserName=STM32H750VBTx
@ -80,24 +96,34 @@ NVIC.BusFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false
NVIC.DMA1_Stream0_IRQn=true\:0\:0\:false\:false\:true\:false\:true
NVIC.DebugMonitor_IRQn=true\:0\:0\:false\:false\:true\:false\:false
NVIC.FLASH_IRQn=true\:0\:0\:false\:false\:true\:true\:true
NVIC.FPU_IRQn=true\:0\:0\:false\:false\:true\:true\:false
NVIC.FPU_IRQn=true\:0\:0\:true\:false\:true\:true\:false
NVIC.ForceEnableDMAVector=true
NVIC.HSEM1_IRQn=true\:0\:0\:false\:false\:true\:true\:true
NVIC.HSEM1_IRQn=true\:0\:0\:true\:false\:true\:true\:true
NVIC.HardFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false
NVIC.I2C4_ER_IRQn=true\:1\:0\:true\:false\:true\:true\:true
NVIC.I2C4_EV_IRQn=true\:1\:0\:true\:false\:true\:true\:true
NVIC.I2C4_ER_IRQn=true\:0\:0\:true\:false\:true\:true\:true
NVIC.I2C4_EV_IRQn=true\:0\:0\:true\:false\:true\:true\:true
NVIC.MemoryManagement_IRQn=true\:0\:0\:false\:false\:true\:false\:false
NVIC.NonMaskableInt_IRQn=true\:0\:0\:false\:false\:true\:false\:true
NVIC.NonMaskableInt_IRQn=true\:0\:0\:false\:false\:true\:false\:false
NVIC.OTG_FS_EP1_IN_IRQn=true\:0\:0\:true\:false\:true\:true\:true
NVIC.OTG_FS_EP1_OUT_IRQn=true\:0\:0\:true\:false\:true\:true\:true
NVIC.OTG_FS_IRQn=true\:0\:0\:true\:false\:true\:true\:true
NVIC.PVD_AVD_IRQn=true\:0\:0\:false\:false\:true\:true\:true
NVIC.PendSV_IRQn=true\:0\:0\:false\:false\:true\:false\:false
NVIC.PriorityGroup=NVIC_PRIORITYGROUP_4
NVIC.QUADSPI_IRQn=true\:0\:0\:false\:false\:true\:true\:true
NVIC.QUADSPI_IRQn=true\:0\:0\:true\:false\:true\:true\:true
NVIC.RCC_IRQn=true\:0\:0\:false\:false\:true\:true\:false
NVIC.SAI3_IRQn=true\:14\:0\:true\:false\:true\:true\:true
NVIC.SAI3_IRQn=true\:0\:0\:true\:false\:true\:true\:true
NVIC.SVCall_IRQn=true\:0\:0\:false\:false\:true\:false\:false
NVIC.SysTick_IRQn=true\:15\:0\:false\:false\:true\:false\:true
NVIC.USART1_IRQn=true\:0\:0\:false\:false\:true\:true\:true
NVIC.USART1_IRQn=true\:0\:0\:true\:false\:true\:true\:true
NVIC.UsageFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false
PA1.GPIOParameters=PinState,GPIO_PuPd,GPIO_Label,GPIO_ModeDefaultOutputPP
PA1.GPIO_Label=LED
PA1.GPIO_ModeDefaultOutputPP=GPIO_MODE_OUTPUT_OD
PA1.GPIO_PuPd=GPIO_NOPULL
PA1.Locked=true
PA1.PinState=GPIO_PIN_SET
PA1.Signal=GPIO_Output
PA10.Locked=true
PA10.Mode=Asynchronous
PA10.Signal=USART1_RX
@ -138,13 +164,19 @@ PC14-OSC32_IN\ (OSC32_IN).Signal=RCC_OSC32_IN
PC15-OSC32_OUT\ (OSC32_OUT).Locked=true
PC15-OSC32_OUT\ (OSC32_OUT).Mode=LSE-External-Oscillator
PC15-OSC32_OUT\ (OSC32_OUT).Signal=RCC_OSC32_OUT
PC6.GPIOParameters=GPIO_Label
PC6.GPIOParameters=PinState,GPIO_PuPd,GPIO_Label,GPIO_ModeDefaultOutputPP
PC6.GPIO_Label=LED_BIT_16
PC6.GPIO_ModeDefaultOutputPP=GPIO_MODE_OUTPUT_OD
PC6.GPIO_PuPd=GPIO_NOPULL
PC6.Locked=true
PC6.PinState=GPIO_PIN_SET
PC6.Signal=GPIO_Output
PC7.GPIOParameters=GPIO_Label
PC7.GPIOParameters=PinState,GPIO_PuPd,GPIO_Label,GPIO_ModeDefaultOutputPP
PC7.GPIO_Label=LED_BIT_24
PC7.GPIO_ModeDefaultOutputPP=GPIO_MODE_OUTPUT_OD
PC7.GPIO_PuPd=GPIO_NOPULL
PC7.Locked=true
PC7.PinState=GPIO_PIN_SET
PC7.Signal=GPIO_Output
PC8.GPIOParameters=GPIO_Label
PC8.GPIO_Label=MCU_OSC_SEL
@ -153,15 +185,62 @@ PC8.Signal=GPIO_Output
PC9.Locked=true
PC9.Mode=Audio_ClockIn
PC9.Signal=I2S_CKIN
PCC.Checker=true
PCC.Line=STM32H750 Value line
PCC.MCU=STM32H750VBTx
PCC.PartNumber=STM32H750VBTx
PCC.Seq0=2
PCC.Seq0.Step0.Average_Current=87 mA
PCC.Seq0.Step0.CPU_Frequency=480 MHz
PCC.Seq0.Step0.Category=In DS Table
PCC.Seq0.Step0.DMIPS=1027.0
PCC.Seq0.Step0.Duration=0.1 ms
PCC.Seq0.Step0.Frequency=25 MHz
PCC.Seq0.Step0.Memory=FLASH/Cache-OFF
PCC.Seq0.Step0.Mode=RUN
PCC.Seq0.Step0.Oscillator=HSE BYP PLL
PCC.Seq0.Step0.Peripherals=
PCC.Seq0.Step0.SubMode1=DRUN/CRUN
PCC.Seq0.Step0.SubMode2=DRUN
PCC.Seq0.Step0.SubMode3=DRUN
PCC.Seq0.Step0.TaMax=113.26
PCC.Seq0.Step0.User's_Consumption=0 mA
PCC.Seq0.Step0.Vcore=VOS0\: Scale0-High
PCC.Seq0.Step0.Vdd=3.0
PCC.Seq0.Step0.Voltage_Source=Battery
PCC.Seq0.Step1.Average_Current=150 \u00B5A
PCC.Seq0.Step1.CPU_Frequency=0 Hz
PCC.Seq0.Step1.Category=In DS Table
PCC.Seq0.Step1.DMIPS=0.0
PCC.Seq0.Step1.Duration=0.9 ms
PCC.Seq0.Step1.Frequency=0 Hz
PCC.Seq0.Step1.Memory=NA
PCC.Seq0.Step1.Mode=STOP
PCC.Seq0.Step1.Oscillator=Flash-OFF
PCC.Seq0.Step1.Peripherals=
PCC.Seq0.Step1.SubMode1=DSTANDBY
PCC.Seq0.Step1.SubMode2=DSTANDBY
PCC.Seq0.Step1.SubMode3=DSTOP
PCC.Seq0.Step1.TaMax=124.98
PCC.Seq0.Step1.User's_Consumption=0 mA
PCC.Seq0.Step1.Vcore=SVOS5\: System-Scale5
PCC.Seq0.Step1.Vdd=3.0
PCC.Seq0.Step1.Voltage_Source=Battery
PCC.Series=STM32H7
PCC.Temperature=25
PCC.Vdd=3.0
PD0.Locked=true
PD0.Mode=SAI_A_MasterWithClock
PD0.Signal=SAI3_SCK_A
PD1.Locked=true
PD1.Mode=SAI_A_MasterWithClock
PD1.Signal=SAI3_SD_A
PD10.GPIOParameters=GPIO_Label
PD10.GPIOParameters=PinState,GPIO_PuPd,GPIO_Label,GPIO_ModeDefaultOutputPP
PD10.GPIO_Label=LED_SR_96
PD10.GPIO_ModeDefaultOutputPP=GPIO_MODE_OUTPUT_OD
PD10.GPIO_PuPd=GPIO_NOPULL
PD10.Locked=true
PD10.PinState=GPIO_PIN_SET
PD10.Signal=GPIO_Output
PD11.Locked=true
PD11.Mode=Single Bank 1
@ -178,13 +257,19 @@ PD15.Signal=SAI3_MCLK_A
PD4.Locked=true
PD4.Mode=SAI_A_MasterWithClock
PD4.Signal=SAI3_FS_A
PD8.GPIOParameters=GPIO_Label
PD8.GPIOParameters=PinState,GPIO_PuPd,GPIO_Label,GPIO_ModeDefaultOutputPP
PD8.GPIO_Label=LED_SR_44
PD8.GPIO_ModeDefaultOutputPP=GPIO_MODE_OUTPUT_OD
PD8.GPIO_PuPd=GPIO_NOPULL
PD8.Locked=true
PD8.PinState=GPIO_PIN_SET
PD8.Signal=GPIO_Output
PD9.GPIOParameters=GPIO_Label
PD9.GPIOParameters=PinState,GPIO_PuPd,GPIO_Label,GPIO_ModeDefaultOutputPP
PD9.GPIO_Label=LED_SR_48
PD9.GPIO_ModeDefaultOutputPP=GPIO_MODE_OUTPUT_OD
PD9.GPIO_PuPd=GPIO_NOPULL
PD9.Locked=true
PD9.PinState=GPIO_PIN_SET
PD9.Signal=GPIO_Output
PE2.Locked=true
PE2.Mode=Single Bank 1
@ -218,106 +303,113 @@ ProjectManager.PreviousToolchain=
ProjectManager.ProjectBuild=false
ProjectManager.ProjectFileName=STM32H750VB_DAC_CS4344_A1.ioc
ProjectManager.ProjectName=STM32H750VB_DAC_CS4344_A1
ProjectManager.RegisterCallBack=
ProjectManager.RegisterCallBack=SAI
ProjectManager.StackSize=0x400
ProjectManager.TargetToolchain=Makefile
ProjectManager.ToolChainLocation=
ProjectManager.UnderRoot=false
ProjectManager.functionlistsort=1-MX_GPIO_Init-GPIO-false-HAL-true,2-SystemClock_Config-RCC-false-HAL-false,3-MX_I2C4_Init-I2C4-false-HAL-true,4-MX_QUADSPI_Init-QUADSPI-false-HAL-true,5-MX_SAI3_Init-SAI3-false-HAL-true,6-MX_USART1_UART_Init-USART1-false-HAL-true,7-MX_DMA_Init-DMA-false-HAL-true,0-MX_CORTEX_M7_Init-CORTEX_M7-false-HAL-true
RCC.ADCFreq_Value=24576032.36607143
RCC.AHB12Freq_Value=96000000
RCC.AHB4Freq_Value=96000000
RCC.APB1Freq_Value=96000000
RCC.APB2Freq_Value=48000000
RCC.APB3Freq_Value=96000000
RCC.APB4Freq_Value=48000000
RCC.AXIClockFreq_Value=96000000
ProjectManager.functionlistsort=1-MX_GPIO_Init-GPIO-false-HAL-true,2-SystemClock_Config-RCC-false-HAL-false,3-MX_RAMECC_Init-RAMECC-false-HAL-true,4-MX_QUADSPI_Init-QUADSPI-false-HAL-true,5-MX_DMA_Init-DMA-false-HAL-true,6-MX_USART1_UART_Init-USART1-false-HAL-true,7-MX_SAI3_Init-SAI3-false-HAL-true,8-MX_I2C4_Init-I2C4-false-HAL-true,9-MX_USB_OTG_FS_PCD_Init-USB_OTG_FS-false-HAL-true,0-MX_CORTEX_M7_Init-CORTEX_M7-false-HAL-true
RAMECC.IPParameters=Instance-RAMECC1_Monitor1,Instance-RAMECC2_Monitor1,Instance-RAMECC2_Monitor2,Instance-RAMECC2_Monitor3,Instance-RAMECC2_Monitor4,Instance-RAMECC2_Monitor5
RAMECC.Instance-RAMECC1_Monitor1=RAMECC1_Monitor1
RAMECC.Instance-RAMECC2_Monitor1=RAMECC2_Monitor1
RAMECC.Instance-RAMECC2_Monitor2=RAMECC2_Monitor2
RAMECC.Instance-RAMECC2_Monitor3=RAMECC2_Monitor3
RAMECC.Instance-RAMECC2_Monitor4=RAMECC2_Monitor4
RAMECC.Instance-RAMECC2_Monitor5=RAMECC2_Monitor5
RCC.ADCFreq_Value=62914568.86574074
RCC.AHB12Freq_Value=120000000
RCC.AHB4Freq_Value=120000000
RCC.APB1Freq_Value=60000000
RCC.APB2Freq_Value=60000000
RCC.APB3Freq_Value=60000000
RCC.APB4Freq_Value=60000000
RCC.AXIClockFreq_Value=120000000
RCC.CECFreq_Value=32000
RCC.CKPERFreq_Value=64000000
RCC.CortexFreq_Value=96000000
RCC.CpuClockFreq_Value=96000000
RCC.D1CPREFreq_Value=96000000
RCC.CortexFreq_Value=120000000
RCC.CpuClockFreq_Value=120000000
RCC.D1CPREFreq_Value=120000000
RCC.D1PPRE=RCC_APB3_DIV2
RCC.D2PPRE1=RCC_APB1_DIV2
RCC.D2PPRE2=RCC_APB2_DIV2
RCC.D3PPRE=RCC_APB4_DIV2
RCC.DFSDMACLkFreq_Value=64000000
RCC.DFSDMFreq_Value=48000000
RCC.DIVM1=2
RCC.DIVM2=2
RCC.DIVN1=48
RCC.DIVN2=43
RCC.DIVP1Freq_Value=96000000
RCC.DIVP2=7
RCC.DIVP2Freq_Value=24576032.36607143
RCC.DIVP3Freq_Value=16125000
RCC.DIVQ1=3
RCC.DIVQ1Freq_Value=64000000
RCC.DIVQ2Freq_Value=86016113.28125
RCC.DIVQ3Freq_Value=16125000
RCC.DFSDMACLkFreq_Value=24000000
RCC.DFSDMFreq_Value=60000000
RCC.DIVM1=16
RCC.DIVM2=6
RCC.DIVN1=60
RCC.DIVN2=106
RCC.DIVP1Freq_Value=120000000
RCC.DIVP2=18
RCC.DIVP2Freq_Value=62914568.86574074
RCC.DIVP3Freq_Value=129000000
RCC.DIVQ1=10
RCC.DIVQ1Freq_Value=24000000
RCC.DIVQ2Freq_Value=566231119.7916666
RCC.DIVQ3Freq_Value=129000000
RCC.DIVR1=25
RCC.DIVR1Freq_Value=7680000
RCC.DIVR2Freq_Value=86016113.28125
RCC.DIVR3Freq_Value=16125000
RCC.DIVR1Freq_Value=9600000
RCC.DIVR2Freq_Value=566231119.7916666
RCC.DIVR3Freq_Value=129000000
RCC.EXTERNAL_CLOCK_VALUE=24576000
RCC.EnbaleCSS=true
RCC.FDCANFreq_Value=64000000
RCC.FMCFreq_Value=96000000
RCC.FDCANFreq_Value=24000000
RCC.FMCFreq_Value=120000000
RCC.FamilyName=M
RCC.HCLK3ClockFreq_Value=96000000
RCC.HCLKFreq_Value=96000000
RCC.HRTIMFreq_Value=96000000
RCC.HCLK3ClockFreq_Value=120000000
RCC.HCLKFreq_Value=120000000
RCC.HRTIMFreq_Value=120000000
RCC.HSE_VALUE=8000000
RCC.I2C123Freq_Value=96000000
RCC.I2C4Freq_Value=48000000
RCC.IPParameters=ADCFreq_Value,AHB12Freq_Value,AHB4Freq_Value,APB1Freq_Value,APB2Freq_Value,APB3Freq_Value,APB4Freq_Value,AXIClockFreq_Value,CECFreq_Value,CKPERFreq_Value,CortexFreq_Value,CpuClockFreq_Value,D1CPREFreq_Value,D2PPRE2,D3PPRE,DFSDMACLkFreq_Value,DFSDMFreq_Value,DIVM1,DIVM2,DIVN1,DIVN2,DIVP1Freq_Value,DIVP2,DIVP2Freq_Value,DIVP3Freq_Value,DIVQ1,DIVQ1Freq_Value,DIVQ2Freq_Value,DIVQ3Freq_Value,DIVR1,DIVR1Freq_Value,DIVR2Freq_Value,DIVR3Freq_Value,EXTERNAL_CLOCK_VALUE,EnbaleCSS,FDCANFreq_Value,FMCFreq_Value,FamilyName,HCLK3ClockFreq_Value,HCLKFreq_Value,HRTIMFreq_Value,HSE_VALUE,I2C123Freq_Value,I2C4Freq_Value,LPTIM1Freq_Value,LPTIM2Freq_Value,LPTIM345Freq_Value,LPUART1Freq_Value,LTDCFreq_Value,MCO1PinFreq_Value,MCO2PinFreq_Value,PLL2FRACN,PLL3FRACN,PLLFRACN,PLLSourceVirtual,PWR_Regulator_Voltage_Scale,ProductRev,QSPIFreq_Value,RNGFreq_Value,RTCFreq_Value,SAI1Freq_Value,SAI23CLockSelection,SAI23Freq_Value,SAI4AFreq_Value,SAI4BFreq_Value,SDMMCFreq_Value,SPDIFRXFreq_Value,SPI123Freq_Value,SPI45Freq_Value,SPI6Freq_Value,SWPMI1Freq_Value,SYSCLKFreq_VALUE,SYSCLKSource,Tim1OutputFreq_Value,Tim2OutputFreq_Value,TraceFreq_Value,USART16Freq_Value,USART234578Freq_Value,USBCLockSelection,USBFreq_Value,VCO1OutputFreq_Value,VCO2OutputFreq_Value,VCO3OutputFreq_Value,VCOInput1Freq_Value,VCOInput2Freq_Value,VCOInput3Freq_Value
RCC.LPTIM1Freq_Value=96000000
RCC.LPTIM2Freq_Value=48000000
RCC.LPTIM345Freq_Value=48000000
RCC.LPUART1Freq_Value=96000000
RCC.LTDCFreq_Value=16125000
RCC.I2C123Freq_Value=60000000
RCC.I2C4Freq_Value=60000000
RCC.IPParameters=ADCFreq_Value,AHB12Freq_Value,AHB4Freq_Value,APB1Freq_Value,APB2Freq_Value,APB3Freq_Value,APB4Freq_Value,AXIClockFreq_Value,CECFreq_Value,CKPERFreq_Value,CortexFreq_Value,CpuClockFreq_Value,D1CPREFreq_Value,D1PPRE,D2PPRE1,D2PPRE2,D3PPRE,DFSDMACLkFreq_Value,DFSDMFreq_Value,DIVM1,DIVM2,DIVN1,DIVN2,DIVP1Freq_Value,DIVP2,DIVP2Freq_Value,DIVP3Freq_Value,DIVQ1,DIVQ1Freq_Value,DIVQ2Freq_Value,DIVQ3Freq_Value,DIVR1,DIVR1Freq_Value,DIVR2Freq_Value,DIVR3Freq_Value,EXTERNAL_CLOCK_VALUE,FDCANFreq_Value,FMCFreq_Value,FamilyName,HCLK3ClockFreq_Value,HCLKFreq_Value,HRTIMFreq_Value,HSE_VALUE,I2C123Freq_Value,I2C4Freq_Value,LPTIM1Freq_Value,LPTIM2Freq_Value,LPTIM345Freq_Value,LPUART1Freq_Value,LTDCFreq_Value,MCO1PinFreq_Value,MCO2PinFreq_Value,PLL2FRACN,PLL3FRACN,PLLFRACN,PWR_Regulator_Voltage_Scale,ProductRev,QSPIFreq_Value,RNGFreq_Value,RTCFreq_Value,SAI1Freq_Value,SAI23CLockSelection,SAI23Freq_Value,SAI4AFreq_Value,SAI4BFreq_Value,SDMMCFreq_Value,SPDIFRXFreq_Value,SPI123Freq_Value,SPI45Freq_Value,SPI6Freq_Value,SWPMI1Freq_Value,SYSCLKFreq_VALUE,SYSCLKSource,Tim1OutputFreq_Value,Tim2OutputFreq_Value,TraceFreq_Value,USART16Freq_Value,USART234578Freq_Value,USBCLockSelection,USBFreq_Value,VCO1OutputFreq_Value,VCO2OutputFreq_Value,VCO3OutputFreq_Value,VCOInput1Freq_Value,VCOInput2Freq_Value,VCOInput3Freq_Value
RCC.LPTIM1Freq_Value=60000000
RCC.LPTIM2Freq_Value=60000000
RCC.LPTIM345Freq_Value=60000000
RCC.LPUART1Freq_Value=60000000
RCC.LTDCFreq_Value=129000000
RCC.MCO1PinFreq_Value=64000000
RCC.MCO2PinFreq_Value=96000000
RCC.PLL2FRACN=66
RCC.MCO2PinFreq_Value=120000000
RCC.PLL2FRACN=1379
RCC.PLL3FRACN=0
RCC.PLLFRACN=0
RCC.PLLSourceVirtual=RCC_PLLSOURCE_HSE
RCC.PWR_Regulator_Voltage_Scale=PWR_REGULATOR_VOLTAGE_SCALE3
RCC.PWR_Regulator_Voltage_Scale=PWR_REGULATOR_VOLTAGE_SCALE2
RCC.ProductRev=revV
RCC.QSPIFreq_Value=96000000
RCC.QSPIFreq_Value=120000000
RCC.RNGFreq_Value=48000000
RCC.RTCFreq_Value=32000
RCC.SAI1Freq_Value=64000000
RCC.SAI23CLockSelection=RCC_SAI23CLKSOURCE_PLL2
RCC.SAI23Freq_Value=24576032.36607143
RCC.SAI4AFreq_Value=64000000
RCC.SAI4BFreq_Value=64000000
RCC.SDMMCFreq_Value=64000000
RCC.SPDIFRXFreq_Value=64000000
RCC.SPI123Freq_Value=64000000
RCC.SPI45Freq_Value=48000000
RCC.SPI6Freq_Value=48000000
RCC.SWPMI1Freq_Value=96000000
RCC.SYSCLKFreq_VALUE=96000000
RCC.SAI1Freq_Value=24000000
RCC.SAI23CLockSelection=RCC_SAI23CLKSOURCE_PIN
RCC.SAI23Freq_Value=24576000
RCC.SAI4AFreq_Value=24000000
RCC.SAI4BFreq_Value=24000000
RCC.SDMMCFreq_Value=24000000
RCC.SPDIFRXFreq_Value=24000000
RCC.SPI123Freq_Value=24000000
RCC.SPI45Freq_Value=60000000
RCC.SPI6Freq_Value=60000000
RCC.SWPMI1Freq_Value=60000000
RCC.SYSCLKFreq_VALUE=120000000
RCC.SYSCLKSource=RCC_SYSCLKSOURCE_PLLCLK
RCC.Tim1OutputFreq_Value=96000000
RCC.Tim2OutputFreq_Value=96000000
RCC.TraceFreq_Value=7680000
RCC.USART16Freq_Value=48000000
RCC.USART234578Freq_Value=96000000
RCC.Tim1OutputFreq_Value=120000000
RCC.Tim2OutputFreq_Value=120000000
RCC.TraceFreq_Value=9600000
RCC.USART16Freq_Value=60000000
RCC.USART234578Freq_Value=60000000
RCC.USBCLockSelection=RCC_USBCLKSOURCE_HSI48
RCC.USBFreq_Value=48000000
RCC.VCO1OutputFreq_Value=192000000
RCC.VCO2OutputFreq_Value=172032226.5625
RCC.VCO3OutputFreq_Value=32250000
RCC.VCO1OutputFreq_Value=240000000
RCC.VCO2OutputFreq_Value=1132462239.5833333
RCC.VCO3OutputFreq_Value=258000000
RCC.VCOInput1Freq_Value=4000000
RCC.VCOInput2Freq_Value=4000000
RCC.VCOInput3Freq_Value=250000
RCC.VCOInput2Freq_Value=10666666.666666666
RCC.VCOInput3Freq_Value=2000000
SAI3.AudioFrequency-SAI_A_MasterWithClock=SAI_AUDIO_FREQUENCY_48K
SAI3.ClockStrobing-SAI_A_MasterWithClock=SAI_CLOCKSTROBING_RISINGEDGE
SAI3.DataSize-SAI_A_MasterWithClock=SAI_DATASIZE_16
SAI3.ErrorAudioFreq-SAI_A_MasterWithClock=0.0 %
SAI3.FIFOThreshold-SAI_A_MasterWithClock=SAI_FIFOTHRESHOLD_1QF
SAI3.FIFOThreshold-SAI_A_MasterWithClock=SAI_FIFOTHRESHOLD_3QF
SAI3.FrameLength-SAI_A_MasterWithClock=32
SAI3.IPParameters=Instance-SAI_A_MasterWithClock,VirtualMode-SAI_A_MasterWithClock,MClockEnable-SAI_A_MasterWithClock,RealAudioFreq-SAI_A_MasterWithClock,ErrorAudioFreq-SAI_A_MasterWithClock,AudioFrequency-SAI_A_MasterWithClock,FIFOThreshold-SAI_A_MasterWithClock,OutputDrive-SAI_A_MasterWithClock,NoDivider-SAI_A_MasterWithClock,FrameLength-SAI_A_MasterWithClock,DataSize-SAI_A_MasterWithClock,SlotNumber-SAI_A_MasterWithClock,VirtualSlotActive-SAI_A_MasterWithClock,SlotActive-SAI_A_MasterWithClock,ClockStrobing-SAI_A_MasterWithClock
SAI3.IPParameters=Instance-SAI_A_MasterWithClock,VirtualMode-SAI_A_MasterWithClock,MClockEnable-SAI_A_MasterWithClock,RealAudioFreq-SAI_A_MasterWithClock,ErrorAudioFreq-SAI_A_MasterWithClock,AudioFrequency-SAI_A_MasterWithClock,FIFOThreshold-SAI_A_MasterWithClock,OutputDrive-SAI_A_MasterWithClock,NoDivider-SAI_A_MasterWithClock,FrameLength-SAI_A_MasterWithClock,DataSize-SAI_A_MasterWithClock,TriState-SAI_A_MasterWithClock,SlotNumber-SAI_A_MasterWithClock,VirtualSlotActive-SAI_A_MasterWithClock,SlotActive-SAI_A_MasterWithClock,ClockStrobing-SAI_A_MasterWithClock
SAI3.Instance-SAI_A_MasterWithClock=SAI$Index_Block_A
SAI3.MClockEnable-SAI_A_MasterWithClock=SAI_MASTERCLOCK_ENABLE
SAI3.NoDivider-SAI_A_MasterWithClock=SAI_MASTERDIVIDER_ENABLE
@ -325,12 +417,25 @@ SAI3.OutputDrive-SAI_A_MasterWithClock=SAI_OUTPUTDRIVE_ENABLE
SAI3.RealAudioFreq-SAI_A_MasterWithClock=48.0 KHz
SAI3.SlotActive-SAI_A_MasterWithClock=0x0000FFFF
SAI3.SlotNumber-SAI_A_MasterWithClock=2
SAI3.TriState-SAI_A_MasterWithClock=SAI_OUTPUT_NOTRELEASED
SAI3.VirtualMode-SAI_A_MasterWithClock=VM_MASTER
SAI3.VirtualSlotActive-SAI_A_MasterWithClock=SAI_SLOTACTIVE_ALL
USART1.IPParameters=VirtualMode-Asynchronous
USART1.VirtualMode-Asynchronous=VM_ASYNC
USB_OTG_FS.IPParameters=VirtualMode
USB_OTG_FS.VirtualMode=Device_Only
VP_RAMECC_VS_D1_1.Mode=RAMECC1_Monitor1
VP_RAMECC_VS_D1_1.Signal=RAMECC_VS_D1_1
VP_RAMECC_VS_D2_1.Mode=RAMECC2_Monitor1
VP_RAMECC_VS_D2_1.Signal=RAMECC_VS_D2_1
VP_RAMECC_VS_D2_2.Mode=RAMECC2_Monitor2
VP_RAMECC_VS_D2_2.Signal=RAMECC_VS_D2_2
VP_RAMECC_VS_D2_3.Mode=RAMECC2_Monitor3
VP_RAMECC_VS_D2_3.Signal=RAMECC_VS_D2_3
VP_RAMECC_VS_D2_4.Mode=RAMECC2_Monitor4
VP_RAMECC_VS_D2_4.Signal=RAMECC_VS_D2_4
VP_RAMECC_VS_D2_5.Mode=RAMECC2_Monitor5
VP_RAMECC_VS_D2_5.Signal=RAMECC_VS_D2_5
VP_SYS_VS_Systick.Mode=SysTick
VP_SYS_VS_Systick.Signal=SYS_VS_Systick
board=custom