Ignore:
Timestamp:
Feb 6, 2025, 8:27:24 AM (3 months ago)
Author:
Zed
Message:

DMA transfer to µSD-card was implemented.

Location:
ctrl/firmware/Main/CubeMX
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • ctrl/firmware/Main/CubeMX/Core/Inc/stm32h7xx_it.h

    r81 r82  
    6767void TIM7_IRQHandler(void);
    6868void SPI4_IRQHandler(void);
     69void MDMA_IRQHandler(void);
    6970void USART10_IRQHandler(void);
    7071/* USER CODE BEGIN EFP */
  • ctrl/firmware/Main/CubeMX/Core/Src/main.c

    r81 r82  
    2222#include "dma.h"
    2323#include "fatfs.h"
     24#include "mdma.h"
    2425#include "memorymap.h"
    2526#include "rtc.h"
     
    105106  /* USER CODE BEGIN Init */
    106107
    107   SCB_DisableDCache();
     108  //SCB_DisableDCache();
    108109
    109110  /* USER CODE END Init */
     
    124125  MX_GPIO_Init();
    125126  MX_DMA_Init();
     127  MX_MDMA_Init();
    126128  MX_RTC_Init();
    127129  MX_SPI4_Init();
     
    280282
    281283  HAL_MPU_ConfigRegion(&MPU_InitStruct);
     284
     285  /** Initializes and configures the Region and the memory to be protected
     286  */
     287  MPU_InitStruct.Number = MPU_REGION_NUMBER1;
     288  MPU_InitStruct.BaseAddress = 0x24000000;
     289  MPU_InitStruct.Size = MPU_REGION_SIZE_128KB;
     290  MPU_InitStruct.SubRegionDisable = 0x0;
     291  MPU_InitStruct.TypeExtField = MPU_TEX_LEVEL1;
     292  MPU_InitStruct.AccessPermission = MPU_REGION_FULL_ACCESS;
     293  MPU_InitStruct.IsShareable = MPU_ACCESS_NOT_SHAREABLE;
     294
     295  HAL_MPU_ConfigRegion(&MPU_InitStruct);
    282296  /* Enables the MPU */
    283297  HAL_MPU_Enable(MPU_PRIVILEGED_DEFAULT);
  • ctrl/firmware/Main/CubeMX/Core/Src/stm32h7xx_it.c

    r81 r82  
    2525
    2626#include "FreeRTOS.h"
    27 #include "semphr.h"
     27#include "modbus.h"
     28//#include "semphr.h"
    2829
    2930/* USER CODE END Includes */
     
    6061
    6162/* External variables --------------------------------------------------------*/
     63extern MDMA_HandleTypeDef hmdma_mdma_channel0_sdmmc1_end_data_0;
    6264extern SD_HandleTypeDef hsd1;
    6365extern DMA_HandleTypeDef hdma_spi2_rx;
     
    374376
    375377/**
     378  * @brief This function handles MDMA global interrupt.
     379  */
     380void MDMA_IRQHandler(void)
     381{
     382  /* USER CODE BEGIN MDMA_IRQn 0 */
     383
     384  /* USER CODE END MDMA_IRQn 0 */
     385  HAL_MDMA_IRQHandler(&hmdma_mdma_channel0_sdmmc1_end_data_0);
     386  /* USER CODE BEGIN MDMA_IRQn 1 */
     387
     388  /* USER CODE END MDMA_IRQn 1 */
     389}
     390
     391/**
    376392  * @brief This function handles USART10 global interrupt.
    377393  */
     
    379395{
    380396  /* USER CODE BEGIN USART10_IRQn 0 */
     397  extern modbus_t lb_mbData;
     398  MODBUS_UART_IRQHandler(&huart10, &lb_mbData);
     399  return;
     400
    381401
    382402  /* USER CODE END USART10_IRQn 0 */
  • ctrl/firmware/Main/CubeMX/charger.ioc

    r81 r82  
    33CAD.pinconfig=Dual
    44CAD.provider=
     5CORTEX_M7.AccessPermission_S-Cortex_Memory_Protection_Unit_Region1_Settings_S=MPU_REGION_FULL_ACCESS
     6CORTEX_M7.BaseAddress_S-Cortex_Memory_Protection_Unit_Region1_Settings_S=0x24000000
    57CORTEX_M7.CPU_DCache=Enabled
    68CORTEX_M7.CPU_ICache=Enabled
    7 CORTEX_M7.Enable_S-Cortex_Memory_Protection_Unit_Region1_Settings_S=__NULL
    8 CORTEX_M7.IPParameters=default_mode_Activation,CPU_ICache,CPU_DCache,Enable_S-Cortex_Memory_Protection_Unit_Region1_Settings_S
     9CORTEX_M7.DisableExec_S-Cortex_Memory_Protection_Unit_Region1_Settings_S=MPU_INSTRUCTION_ACCESS_DISABLE
     10CORTEX_M7.Enable_S-Cortex_Memory_Protection_Unit_Region1_Settings_S=MPU_REGION_ENABLE
     11CORTEX_M7.IPParameters=default_mode_Activation,CPU_ICache,CPU_DCache,Enable_S-Cortex_Memory_Protection_Unit_Region1_Settings_S,BaseAddress_S-Cortex_Memory_Protection_Unit_Region1_Settings_S,Size_S-Cortex_Memory_Protection_Unit_Region1_Settings_S,TypeExtField_S-Cortex_Memory_Protection_Unit_Region1_Settings_S,AccessPermission_S-Cortex_Memory_Protection_Unit_Region1_Settings_S,DisableExec_S-Cortex_Memory_Protection_Unit_Region1_Settings_S
     12CORTEX_M7.Size_S-Cortex_Memory_Protection_Unit_Region1_Settings_S=MPU_REGION_SIZE_128KB
     13CORTEX_M7.TypeExtField_S-Cortex_Memory_Protection_Unit_Region1_Settings_S=MPU_TEX_LEVEL1
    914CORTEX_M7.default_mode_Activation=1
    1015Dma.Request0=SPI4_TX
     
    105110Dma.USART3_TX.2.SyncSignalID=NONE
    106111FATFS.BSP.number=1
    107 FATFS.IPParameters=_USE_FIND,_USE_EXPAND,_USE_LABEL,_USE_LFN,_LFN_UNICODE,_MULTI_PARTITION,_FS_EXFAT,_USE_MUTEX,_FS_REENTRANT,_FS_NORTC,_NORTC_YEAR,_NORTC_MDAY,_NORTC_MON,_STRF_ENCODE,_USE_STRFUNC
     112FATFS.IPParameters=_USE_FIND,_USE_EXPAND,_USE_LABEL,_USE_LFN,_LFN_UNICODE,_MULTI_PARTITION,_FS_EXFAT,_USE_MUTEX,_FS_REENTRANT,_FS_NORTC,_NORTC_YEAR,_NORTC_MDAY,_NORTC_MON,_STRF_ENCODE,_USE_STRFUNC,_MAX_SS
    108113FATFS._FS_EXFAT=0
    109114FATFS._FS_NORTC=0
    110115FATFS._FS_REENTRANT=1
    111116FATFS._LFN_UNICODE=0
     117FATFS._MAX_SS=512
    112118FATFS._MULTI_PARTITION=0
    113119FATFS._NORTC_MDAY=1
     
    204210Mcu.IP0=CORTEX_M7
    205211Mcu.IP1=DEBUG
    206 Mcu.IP10=SPI2
    207 Mcu.IP11=SPI4
    208 Mcu.IP12=SYS
    209 Mcu.IP13=TIM3
    210 Mcu.IP14=TIM8
    211 Mcu.IP15=USART2
    212 Mcu.IP16=USART3
    213 Mcu.IP17=USART10
     212Mcu.IP10=SDMMC1
     213Mcu.IP11=SPI2
     214Mcu.IP12=SPI4
     215Mcu.IP13=SYS
     216Mcu.IP14=TIM3
     217Mcu.IP15=TIM8
     218Mcu.IP16=USART2
     219Mcu.IP17=USART3
     220Mcu.IP18=USART10
    214221Mcu.IP2=DMA
    215222Mcu.IP3=FATFS
    216223Mcu.IP4=FREERTOS
    217 Mcu.IP5=MEMORYMAP
    218 Mcu.IP6=NVIC
    219 Mcu.IP7=RCC
    220 Mcu.IP8=RTC
    221 Mcu.IP9=SDMMC1
    222 Mcu.IPNb=18
     224Mcu.IP5=MDMA
     225Mcu.IP6=MEMORYMAP
     226Mcu.IP7=NVIC
     227Mcu.IP8=RCC
     228Mcu.IP9=RTC
     229Mcu.IPNb=19
    223230Mcu.Name=STM32H723ZETx
    224231Mcu.Package=LQFP144
     
    288295Mcu.UserConstants=
    289296Mcu.UserName=STM32H723ZETx
     297Mdma.MDMA_Channel0.Request0=SDMMC1_END_DATA
     298Mdma.MDMA_Channel0.RequestsNb=1
     299Mdma.MDMA_Channel0.SDMMC1_END_DATA.0.BlockCount=4
     300Mdma.MDMA_Channel0.SDMMC1_END_DATA.0.BlockDataLength=512
     301Mdma.MDMA_Channel0.SDMMC1_END_DATA.0.BufferTransferLength=2048
     302Mdma.MDMA_Channel0.SDMMC1_END_DATA.0.CircularMode=MDMA_LINEAR_LIST
     303Mdma.MDMA_Channel0.SDMMC1_END_DATA.0.DataAlignment=MDMA_DATAALIGN_PACKENABLE
     304Mdma.MDMA_Channel0.SDMMC1_END_DATA.0.DestBlockAddressOffset=0
     305Mdma.MDMA_Channel0.SDMMC1_END_DATA.0.DestBurst=MDMA_DEST_BURST_4BEATS
     306Mdma.MDMA_Channel0.SDMMC1_END_DATA.0.DestDataSize=MDMA_DEST_DATASIZE_WORD
     307Mdma.MDMA_Channel0.SDMMC1_END_DATA.0.DestinationInc=MDMA_DEST_INC_WORD
     308Mdma.MDMA_Channel0.SDMMC1_END_DATA.0.DstAddress=0
     309Mdma.MDMA_Channel0.SDMMC1_END_DATA.0.Endianness=MDMA_LITTLE_ENDIANNESS_PRESERVE
     310Mdma.MDMA_Channel0.SDMMC1_END_DATA.0.Instance=MDMA_Channel0
     311Mdma.MDMA_Channel0.SDMMC1_END_DATA.0.MaskAddress=0
     312Mdma.MDMA_Channel0.SDMMC1_END_DATA.0.MaskData=0
     313Mdma.MDMA_Channel0.SDMMC1_END_DATA.0.Priority=MDMA_PRIORITY_HIGH
     314Mdma.MDMA_Channel0.SDMMC1_END_DATA.0.Rank=First
     315Mdma.MDMA_Channel0.SDMMC1_END_DATA.0.RequestParameters=Instance,CircularMode,TransferTriggerMode,Priority,Endianness,SourceInc,DestinationInc,SourceDataSize,DestDataSize,DataAlignment,BufferTransferLength,SourceBurst,DestBurst,SourceBlockAddressOffset,DestBlockAddressOffset,MaskAddress,MaskData,SrcAddress,DstAddress,BlockDataLength,BlockCount,Rank
     316Mdma.MDMA_Channel0.SDMMC1_END_DATA.0.SourceBlockAddressOffset=0
     317Mdma.MDMA_Channel0.SDMMC1_END_DATA.0.SourceBurst=MDMA_SOURCE_BURST_4BEATS
     318Mdma.MDMA_Channel0.SDMMC1_END_DATA.0.SourceDataSize=MDMA_SRC_DATASIZE_WORD
     319Mdma.MDMA_Channel0.SDMMC1_END_DATA.0.SourceInc=MDMA_SRC_INC_WORD
     320Mdma.MDMA_Channel0.SDMMC1_END_DATA.0.SrcAddress=0
     321Mdma.MDMA_Channel0.SDMMC1_END_DATA.0.TransferTriggerMode=MDMA_BUFFER_TRANSFER
     322Mdma.RequestSet0=MDMA_Channel0
     323Mdma.RequestSetsNb=1
    290324MxCube.Version=6.13.0
    291325MxDb.Version=DB.6.0.130
     
    300334NVIC.ForceEnableDMAVector=true
    301335NVIC.HardFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false\:false
     336NVIC.MDMA_IRQn=true\:5\:0\:false\:false\:true\:true\:false\:true\:true
    302337NVIC.MemoryManagement_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false\:false
    303338NVIC.NonMaskableInt_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false\:false
     
    544579ProjectManager.UAScriptBeforePath=
    545580ProjectManager.UnderRoot=true
    546 ProjectManager.functionlistsort=1-MX_GPIO_Init-GPIO-false-HAL-true,2-MX_DMA_Init-DMA-false-HAL-true,3-MX_RTC_Init-RTC-false-HAL-true,4-MX_SPI4_Init-SPI4-false-HAL-true,5-MX_SDMMC1_SD_Init-SDMMC1-false-HAL-true,6-MX_USART3_UART_Init-USART3-false-HAL-true,7-MX_TIM3_Init-TIM3-false-HAL-true,8-SystemClock_Config-RCC-false-HAL-false,9-MX_FATFS_Init-FATFS-false-HAL-false,10-MX_TIM8_Init-TIM8-false-HAL-true,11-MX_SPI2_Init-SPI2-false-HAL-true,12-MX_USART2_UART_Init-USART2-false-HAL-true,13-MX_USART10_UART_Init-USART10-false-HAL-true,0-MX_CORTEX_M7_Init-CORTEX_M7-false-HAL-true
     581ProjectManager.functionlistsort=1-MX_GPIO_Init-GPIO-false-HAL-true,2-MX_DMA_Init-DMA-false-HAL-true,3-MX_MDMA_Init-MDMA-false-HAL-true,4-MX_RTC_Init-RTC-false-HAL-true,5-MX_SPI4_Init-SPI4-false-HAL-true,6-MX_SDMMC1_SD_Init-SDMMC1-false-HAL-true,7-MX_USART3_UART_Init-USART3-false-HAL-true,8-MX_TIM3_Init-TIM3-false-HAL-true,9-SystemClock_Config-RCC-false-HAL-false,10-MX_FATFS_Init-FATFS-false-HAL-false,11-MX_TIM8_Init-TIM8-false-HAL-true,12-MX_SPI2_Init-SPI2-false-HAL-true,13-MX_USART2_UART_Init-USART2-false-HAL-true,14-MX_USART10_UART_Init-USART10-false-HAL-true,0-MX_CORTEX_M7_Init-CORTEX_M7-false-HAL-true
    547582RCC.ADCFreq_Value=125000000
    548583RCC.AHB12Freq_Value=100000000
Note: See TracChangeset for help on using the changeset viewer.