Sfoglia il codice sorgente

[bsp][stm32h743-atk-apollo] add iwg

whj4674672 5 anni fa
parent
commit
aeecc1b6aa

+ 6 - 1
bsp/stm32/libraries/HAL_Drivers/drv_wdt.c

@@ -98,11 +98,16 @@ static rt_err_t wdt_control(rt_watchdog_t *wdt, int cmd, void *arg)
 
 int rt_wdt_init(void)
 {
+#if defined(SOC_SERIES_STM32H7)
+    stm32_wdt.hiwdg.Instance = IWDG1;
+#else
     stm32_wdt.hiwdg.Instance = IWDG;
+#endif
     stm32_wdt.hiwdg.Init.Prescaler = IWDG_PRESCALER_256;
 
     stm32_wdt.hiwdg.Init.Reload = 0x00000FFF;
-#if defined(SOC_SERIES_STM32F0) || defined(SOC_SERIES_STM32L4) || defined(SOC_SERIES_STM32F7)
+#if defined(SOC_SERIES_STM32F0) || defined(SOC_SERIES_STM32L4) || defined(SOC_SERIES_STM32F7) \
+    || defined(SOC_SERIES_STM32H7)
     stm32_wdt.hiwdg.Init.Window = 0x00000FFF;
 #endif
     stm32_wdt.is_start = 0;

+ 1 - 1
bsp/stm32/stm32h743-atk-apollo/README.md

@@ -58,7 +58,7 @@
 | PWM               |   暂不支持   |                                       |
 | USB Device        |   暂不支持   |                                       |
 | USB Host          |   暂不支持   |                                       |
-| IWG               |   暂不支持   |                                       |
+| IWG               |     支持     |                                       |
 
 ## 使用说明
 

File diff suppressed because it is too large
+ 0 - 0
bsp/stm32/stm32h743-atk-apollo/board/CubeMX_Config/.mxproject


+ 15 - 11
bsp/stm32/stm32h743-atk-apollo/board/CubeMX_Config/CubeMX_Config.ioc

@@ -23,15 +23,16 @@ KeepUserPlacement=false
 Mcu.Family=STM32H7
 Mcu.IP0=CORTEX_M7
 Mcu.IP1=DEBUG
+Mcu.IP10=USART1
 Mcu.IP2=DMA2D
 Mcu.IP3=FMC
-Mcu.IP4=LTDC
-Mcu.IP5=NVIC
-Mcu.IP6=RCC
-Mcu.IP7=RTC
-Mcu.IP8=SYS
-Mcu.IP9=USART1
-Mcu.IPNb=10
+Mcu.IP4=IWDG1
+Mcu.IP5=LTDC
+Mcu.IP6=NVIC
+Mcu.IP7=RCC
+Mcu.IP8=RTC
+Mcu.IP9=SYS
+Mcu.IPNb=11
 Mcu.Name=STM32H743IITx
 Mcu.Package=LQFP176
 Mcu.Pin0=PC13
@@ -100,12 +101,13 @@ Mcu.Pin65=PI5
 Mcu.Pin66=PI6
 Mcu.Pin67=PI7
 Mcu.Pin68=VP_DMA2D_VS_DMA2D
-Mcu.Pin69=VP_RTC_VS_RTC_Activate
+Mcu.Pin69=VP_IWDG1_VS_IWDG
 Mcu.Pin7=PF2
-Mcu.Pin70=VP_SYS_VS_Systick
+Mcu.Pin70=VP_RTC_VS_RTC_Activate
+Mcu.Pin71=VP_SYS_VS_Systick
 Mcu.Pin8=PF3
 Mcu.Pin9=PF4
-Mcu.PinsNb=71
+Mcu.PinsNb=72
 Mcu.ThirdPartyNb=0
 Mcu.UserConstants=
 Mcu.UserName=STM32H743IITx
@@ -273,7 +275,7 @@ ProjectManager.StackSize=0x400
 ProjectManager.TargetToolchain=MDK-ARM V5
 ProjectManager.ToolChainLocation=
 ProjectManager.UnderRoot=false
-ProjectManager.functionlistsort=1-MX_GPIO_Init-GPIO-false-HAL-true,2-SystemClock_Config-RCC-false-HAL-false,3-MX_CORTEX_M7_Init-CORTEX_M7-false-HAL-true,4-MX_USART1_UART_Init-USART1-false-HAL-true,5-MX_FMC_Init-FMC-false-HAL-true,6-MX_DMA2D_Init-DMA2D-false-HAL-true,7-MX_LTDC_Init-LTDC-false-HAL-true,8-MX_RTC_Init-RTC-false-HAL-true
+ProjectManager.functionlistsort=1-MX_GPIO_Init-GPIO-false-HAL-true,2-SystemClock_Config-RCC-false-HAL-false,3-MX_CORTEX_M7_Init-CORTEX_M7-false-HAL-true,4-MX_USART1_UART_Init-USART1-false-HAL-true,5-MX_FMC_Init-FMC-false-HAL-true,6-MX_DMA2D_Init-DMA2D-false-HAL-true,7-MX_LTDC_Init-LTDC-false-HAL-true,8-MX_RTC_Init-RTC-false-HAL-true,9-MX_IWDG1_Init-IWDG1-false-HAL-true
 RCC.ADCFreq_Value=50390625
 RCC.AHB12Freq_Value=200000000
 RCC.AHB4Freq_Value=200000000
@@ -435,6 +437,8 @@ USART1.IPParameters=VirtualMode-Asynchronous
 USART1.VirtualMode-Asynchronous=VM_ASYNC
 VP_DMA2D_VS_DMA2D.Mode=DMA2D_Activate
 VP_DMA2D_VS_DMA2D.Signal=DMA2D_VS_DMA2D
+VP_IWDG1_VS_IWDG.Mode=IWDG_Activate
+VP_IWDG1_VS_IWDG.Signal=IWDG1_VS_IWDG
 VP_RTC_VS_RTC_Activate.Mode=RTC_Enabled
 VP_RTC_VS_RTC_Activate.Signal=RTC_VS_RTC_Activate
 VP_SYS_VS_Systick.Mode=SysTick

+ 1 - 1
bsp/stm32/stm32h743-atk-apollo/board/CubeMX_Config/Inc/stm32h7xx_hal_conf.h

@@ -54,7 +54,7 @@
 /* #define HAL_OPAMP_MODULE_ENABLED   */
 /* #define HAL_I2S_MODULE_ENABLED   */
 /* #define HAL_SMBUS_MODULE_ENABLED   */
-/* #define HAL_IWDG_MODULE_ENABLED   */
+#define HAL_IWDG_MODULE_ENABLED
 /* #define HAL_LPTIM_MODULE_ENABLED   */
 #define HAL_LTDC_MODULE_ENABLED
 /* #define HAL_QSPI_MODULE_ENABLED   */

+ 36 - 1
bsp/stm32/stm32h743-atk-apollo/board/CubeMX_Config/Src/main.c

@@ -65,6 +65,8 @@
 
 DMA2D_HandleTypeDef hdma2d;
 
+IWDG_HandleTypeDef hiwdg1;
+
 LTDC_HandleTypeDef hltdc;
 
 RTC_HandleTypeDef hrtc;
@@ -85,6 +87,7 @@ static void MX_FMC_Init(void);
 static void MX_DMA2D_Init(void);
 static void MX_LTDC_Init(void);
 static void MX_RTC_Init(void);
+static void MX_IWDG1_Init(void);
 /* USER CODE BEGIN PFP */
 
 /* USER CODE END PFP */
@@ -134,6 +137,7 @@ int main(void)
   MX_DMA2D_Init();
   MX_LTDC_Init();
   MX_RTC_Init();
+  MX_IWDG1_Init();
   /* USER CODE BEGIN 2 */
 
   /* USER CODE END 2 */
@@ -176,9 +180,11 @@ void SystemClock_Config(void)
   __HAL_RCC_PLL_PLLSOURCE_CONFIG(RCC_PLLSOURCE_HSE);
   /** Initializes the CPU, AHB and APB busses clocks 
   */
-  RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE|RCC_OSCILLATORTYPE_LSE;
+  RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_LSI|RCC_OSCILLATORTYPE_HSE
+                              |RCC_OSCILLATORTYPE_LSE;
   RCC_OscInitStruct.HSEState = RCC_HSE_ON;
   RCC_OscInitStruct.LSEState = RCC_LSE_ON;
+  RCC_OscInitStruct.LSIState = RCC_LSI_ON;
   RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
   RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;
   RCC_OscInitStruct.PLL.PLLM = 5;
@@ -258,6 +264,35 @@ static void MX_DMA2D_Init(void)
 
 }
 
+/**
+  * @brief IWDG1 Initialization Function
+  * @param None
+  * @retval None
+  */
+static void MX_IWDG1_Init(void)
+{
+
+  /* USER CODE BEGIN IWDG1_Init 0 */
+
+  /* USER CODE END IWDG1_Init 0 */
+
+  /* USER CODE BEGIN IWDG1_Init 1 */
+
+  /* USER CODE END IWDG1_Init 1 */
+  hiwdg1.Instance = IWDG1;
+  hiwdg1.Init.Prescaler = IWDG_PRESCALER_4;
+  hiwdg1.Init.Window = 4095;
+  hiwdg1.Init.Reload = 4095;
+  if (HAL_IWDG_Init(&hiwdg1) != HAL_OK)
+  {
+    Error_Handler();
+  }
+  /* USER CODE BEGIN IWDG1_Init 2 */
+
+  /* USER CODE END IWDG1_Init 2 */
+
+}
+
 /**
   * @brief LTDC Initialization Function
   * @param None

+ 5 - 0
bsp/stm32/stm32h743-atk-apollo/board/Kconfig

@@ -63,6 +63,11 @@ menu "On-chip Peripheral Drivers"
             endchoice
         endif
 
+    config BSP_USING_WDT
+        bool "Enable Watchdog Timer"
+        select RT_USING_WDT
+        default n
+
 endmenu
 
 menu "Board extended module Drivers"

+ 3 - 1
bsp/stm32/stm32h743-atk-apollo/board/board.c

@@ -33,9 +33,11 @@ void SystemClock_Config(void)
   __HAL_RCC_PLL_PLLSOURCE_CONFIG(RCC_PLLSOURCE_HSE);
   /** Initializes the CPU, AHB and APB busses clocks 
   */
-  RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE|RCC_OSCILLATORTYPE_LSE;
+  RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_LSI|RCC_OSCILLATORTYPE_HSE
+                              |RCC_OSCILLATORTYPE_LSE;
   RCC_OscInitStruct.HSEState = RCC_HSE_ON;
   RCC_OscInitStruct.LSEState = RCC_LSE_ON;
+  RCC_OscInitStruct.LSIState = RCC_LSI_ON;
   RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
   RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;
   RCC_OscInitStruct.PLL.PLLM = 5;

+ 4 - 0
bsp/stm32/stm32h743-atk-apollo/board/board.h

@@ -20,6 +20,10 @@
 extern "C" {
 #endif
 
+#if !defined  (LSI_VALUE) 
+  #define LSI_VALUE  ((uint32_t)32000)
+#endif
+
 #define STM32_FLASH_START_ADRESS     ((uint32_t)0x08000000)
 #define STM32_FLASH_SIZE             (2048 * 1024)
 #define STM32_FLASH_END_ADDRESS      ((uint32_t)(STM32_FLASH_START_ADRESS + STM32_FLASH_SIZE))

+ 4 - 4
bsp/stm32/stm32h743-atk-apollo/board/drv_mpu.c

@@ -17,16 +17,16 @@ int mpu_init(void)
     /* Disable the MPU */
     HAL_MPU_Disable();
 
-    /* Configure the MPU attributes as WB for AXI SRAM */
+    /* Configure the MPU attributes as WT for AXI SRAM */
     MPU_InitStruct.Enable            = MPU_REGION_ENABLE;
     MPU_InitStruct.BaseAddress       = 0x24000000;
     MPU_InitStruct.Size              = MPU_REGION_SIZE_512KB;
     MPU_InitStruct.AccessPermission  = MPU_REGION_FULL_ACCESS;
-    MPU_InitStruct.IsBufferable      = MPU_ACCESS_BUFFERABLE;
+    MPU_InitStruct.IsBufferable      = MPU_ACCESS_NOT_BUFFERABLE;
     MPU_InitStruct.IsCacheable       = MPU_ACCESS_CACHEABLE;
-    MPU_InitStruct.IsShareable       = MPU_ACCESS_SHAREABLE;
+    MPU_InitStruct.IsShareable       = MPU_ACCESS_NOT_SHAREABLE;
     MPU_InitStruct.Number            = MPU_REGION_NUMBER0;
-    MPU_InitStruct.TypeExtField      = MPU_TEX_LEVEL1;
+    MPU_InitStruct.TypeExtField      = MPU_TEX_LEVEL0;
     MPU_InitStruct.SubRegionDisable  = 0X00;
     MPU_InitStruct.DisableExec       = MPU_INSTRUCTION_ACCESS_ENABLE;
 

+ 8 - 0
bsp/stm32/stm32h743-atk-apollo/template.uvoptx

@@ -101,6 +101,8 @@
         <sRunDeb>0</sRunDeb>
         <sLrtime>0</sLrtime>
         <bEvRecOn>1</bEvRecOn>
+        <bSchkAxf>0</bSchkAxf>
+        <bTchkAxf>0</bTchkAxf>
         <nTsel>5</nTsel>
         <sDll></sDll>
         <sDllPa></sDllPa>
@@ -115,6 +117,11 @@
         <pMon>STLink\ST-LINKIII-KEIL_SWO.dll</pMon>
       </DebugOpt>
       <TargetDriverDllRegistry>
+        <SetRegEntry>
+          <Number>0</Number>
+          <Key>ST-LINKIII-KEIL_SWO</Key>
+          <Name>-U -O206 -S0 -C0 -N00("ARM CoreSight SW-DP") -D00(6BA02477) -L00(0) -TO18 -TC10000000 -TP21 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO15 -FD20000000 -FC1000 -FN1 -FF0STM32H7x_2048.FLM -FS08000000 -FL0200000 -FP0($$Device:STM32H743IITx$CMSIS\Flash\STM32H7x_2048.FLM)</Name>
+        </SetRegEntry>
         <SetRegEntry>
           <Number>0</Number>
           <Key>UL2CM3</Key>
@@ -166,6 +173,7 @@
       <pMultCmdsp></pMultCmdsp>
       <DebugDescription>
         <Enable>1</Enable>
+        <EnableFlashSeq>0</EnableFlashSeq>
         <EnableLog>0</EnableLog>
         <Protocol>2</Protocol>
         <DbgClock>10000000</DbgClock>

+ 6 - 4
bsp/stm32/stm32h743-atk-apollo/template.uvprojx

@@ -16,8 +16,8 @@
         <TargetCommonOption>
           <Device>STM32H743IITx</Device>
           <Vendor>STMicroelectronics</Vendor>
-          <PackID>Keil.STM32H7xx_DFP.2.1.0</PackID>
-          <PackURL>http://www.keil.com/pack</PackURL>
+          <PackID>Keil.STM32H7xx_DFP.2.3.0</PackID>
+          <PackURL>https://www.keil.com/pack/</PackURL>
           <Cpu>IRAM(0x20000000,0x00020000) IRAM2(0x24000000,0x00080000) IROM(0x08000000,0x00200000) CPUTYPE("Cortex-M7") FPU3(DFPU) CLOCK(12000000) ELITTLE</Cpu>
           <FlashUtilSpec></FlashUtilSpec>
           <StartupFile></StartupFile>
@@ -138,7 +138,7 @@
           </Flash1>
           <bUseTDR>1</bUseTDR>
           <Flash2>BIN\UL2CM3.DLL</Flash2>
-          <Flash3></Flash3>
+          <Flash3>"" ()</Flash3>
           <Flash4></Flash4>
           <pFcarmOut></pFcarmOut>
           <pFcarmGrp></pFcarmGrp>
@@ -184,6 +184,7 @@
             <hadXRAM>0</hadXRAM>
             <uocXRam>0</uocXRam>
             <RvdsVP>3</RvdsVP>
+            <RvdsMve>0</RvdsMve>
             <hadIRAM2>1</hadIRAM2>
             <hadIROM2>0</hadIROM2>
             <StupSel>8</StupSel>
@@ -208,7 +209,7 @@
             <Ra1Chk>0</Ra1Chk>
             <Ra2Chk>0</Ra2Chk>
             <Ra3Chk>0</Ra3Chk>
-            <Im1Chk>1</Im1Chk>
+            <Im1Chk>0</Im1Chk>
             <Im2Chk>1</Im2Chk>
             <OnChipMemories>
               <Ocm1>
@@ -324,6 +325,7 @@
             <uThumb>0</uThumb>
             <uSurpInc>0</uSurpInc>
             <uC99>1</uC99>
+            <uGnu>0</uGnu>
             <useXO>0</useXO>
             <v6Lang>1</v6Lang>
             <v6LangP>1</v6LangP>

Some files were not shown because too many files changed in this diff