Changeset 36 for trunk/firmware/App/CubeMX/Appli/Core
- Timestamp:
- Oct 20, 2026, 2:17:01 PM (2 weeks ago)
- Location:
- trunk/firmware/App/CubeMX/Appli/Core
- Files:
-
- 1 added
- 8 edited
-
Inc/FreeRTOSConfig.h (modified) (1 diff)
-
Inc/app_freertos.h (modified) (1 diff)
-
Inc/stm32n6xx_hal_conf.h (modified) (2 diffs)
-
Inc/stm32n6xx_it.h (modified) (1 diff)
-
Src/app_freertos.c (modified) (4 diffs)
-
Src/main.c (modified) (5 diffs)
-
Src/sdmmc.c (modified) (2 diffs)
-
Src/stm32n6xx_hal_timebase_tim.c (added)
-
Src/stm32n6xx_it.c (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/firmware/App/CubeMX/Appli/Core/Inc/FreeRTOSConfig.h
r30 r36 52 52 #include <stdint.h> 53 53 extern uint32_t SystemCoreClock; 54 void xPortSysTickHandler(void);55 54 #endif 56 55 #ifndef CMSIS_device_header -
trunk/firmware/App/CubeMX/Appli/Core/Inc/app_freertos.h
r33 r36 57 57 extern osThreadId_t mainTaskHandle; 58 58 extern osThreadId_t sdmmcTaskHandle; 59 extern osMessageQueueId_t sdmmcCmdQueueHandle; 59 60 60 61 /* Exported function prototypes -----------------------------------------------*/ -
trunk/firmware/App/CubeMX/Appli/Core/Inc/stm32n6xx_hal_conf.h
r30 r36 80 80 /*#define HAL_SPI_MODULE_ENABLED */ 81 81 /*#define HAL_SRAM_MODULE_ENABLED */ 82 /*#define HAL_TIM_MODULE_ENABLED */ 82 #define HAL_TIM_MODULE_ENABLED 83 83 /*#define HAL_UART_MODULE_ENABLED */ 84 84 /*#define HAL_USART_MODULE_ENABLED */ … … 163 163 */ 164 164 #define VDD_VALUE 3300UL /*!< Value of VDD in mv */ 165 #define TICK_INT_PRIORITY 0U /*!< tick interrupt priority*/165 #define TICK_INT_PRIORITY 15U /*!< tick interrupt priority (lowest by default) */ 166 166 #define USE_RTOS 0U 167 167 -
trunk/firmware/App/CubeMX/Appli/Core/Inc/stm32n6xx_it.h
r31 r36 54 54 void SecureFault_Handler(void); 55 55 void DebugMon_Handler(void); 56 void TIM18_IRQHandler(void); 56 57 void SDMMC2_IRQHandler(void); 57 58 /* USER CODE BEGIN EFP */ -
trunk/firmware/App/CubeMX/Appli/Core/Src/app_freertos.c
r33 r36 24 24 /* USER CODE BEGIN Includes */ 25 25 26 #include "sdmmcTask.h" 27 26 28 /* USER CODE END Includes */ 27 29 28 30 /* Private typedef -----------------------------------------------------------*/ 29 31 typedef StaticTask_t osStaticThreadDef_t; 32 typedef StaticQueue_t osStaticMessageQDef_t; 30 33 /* USER CODE BEGIN PTD */ 31 34 … … 60 63 /* Definitions for sdmmcTask */ 61 64 osThreadId_t sdmmcTaskHandle; 62 uint32_t sdmmcTaskBuff[ 1 28];65 uint32_t sdmmcTaskBuff[ 1024 ]; 63 66 osStaticThreadDef_t sdmmcTaskCtrlBlock; 64 67 const osThreadAttr_t sdmmcTask_attributes = { … … 69 72 .cb_size = sizeof(sdmmcTaskCtrlBlock), 70 73 .priority = (osPriority_t) osPriorityBelowNormal7, 74 }; 75 /* Definitions for sdmmcCmdQueue */ 76 osMessageQueueId_t sdmmcCmdQueueHandle; 77 uint8_t sdmmcQueueBuff[ 8 * sizeof( SdCardCmd_t ) ]; 78 osStaticMessageQDef_t sdmmcQueueCtrlBlock; 79 const osMessageQueueAttr_t sdmmcCmdQueue_attributes = { 80 .name = "sdmmcCmdQueue", 81 .cb_mem = &sdmmcQueueCtrlBlock, 82 .cb_size = sizeof(sdmmcQueueCtrlBlock), 83 .mq_mem = &sdmmcQueueBuff, 84 .mq_size = sizeof(sdmmcQueueBuff) 71 85 }; 72 86 … … 121 135 /* start timers, add new ones, ... */ 122 136 /* USER CODE END RTOS_TIMERS */ 137 /* creation of sdmmcCmdQueue */ 138 sdmmcCmdQueueHandle = osMessageQueueNew (8, sizeof(SdCardCmd_t), &sdmmcCmdQueue_attributes); 123 139 124 140 /* USER CODE BEGIN RTOS_QUEUES */ -
trunk/firmware/App/CubeMX/Appli/Core/Src/main.c
r32 r36 82 82 /* USER CODE BEGIN 1 */ 83 83 84 SEGGER_RTT_Init();84 //SEGGER_RTT_Init(); 85 85 86 86 /* System clock already configured, simply SystemCoreClock init */ 87 SystemCoreClockUpdate();87 //SystemCoreClockUpdate(); 88 88 89 89 /* USER CODE END 1 */ … … 161 161 RIMC_MasterConfig_t RIMC_master = {0}; 162 162 RIMC_master.MasterCID = RIF_CID_1; 163 RIMC_master.SecPriv = RIF_ATTRIBUTE_SEC | RIF_ATTRIBUTE_ NPRIV;163 RIMC_master.SecPriv = RIF_ATTRIBUTE_SEC | RIF_ATTRIBUTE_PRIV; 164 164 HAL_RIF_RIMC_ConfigMasterAttributes(RIF_MASTER_INDEX_SDMMC2, &RIMC_master); 165 HAL_RIF_RISC_SetSlaveSecureAttributes(RIF_RISC_PERIPH_INDEX_SDMMC2 , RIF_ATTRIBUTE_SEC | RIF_ATTRIBUTE_PRIV); 165 166 166 167 /* RIF-Aware IPs Config */ … … 168 169 /* set up GPIO configuration */ 169 170 HAL_GPIO_ConfigPinAttributes(GPIOC,GPIO_PIN_0,GPIO_PIN_SEC|GPIO_PIN_NPRIV); 171 HAL_GPIO_ConfigPinAttributes(GPIOC,GPIO_PIN_2,GPIO_PIN_SEC|GPIO_PIN_NPRIV); 170 172 HAL_GPIO_ConfigPinAttributes(GPIOC,GPIO_PIN_3,GPIO_PIN_SEC|GPIO_PIN_NPRIV); 171 173 HAL_GPIO_ConfigPinAttributes(GPIOC,GPIO_PIN_4,GPIO_PIN_SEC|GPIO_PIN_NPRIV); 172 174 HAL_GPIO_ConfigPinAttributes(GPIOC,GPIO_PIN_5,GPIO_PIN_SEC|GPIO_PIN_NPRIV); 173 HAL_GPIO_ConfigPinAttributes(GPIOD,GPIO_PIN_2,GPIO_PIN_SEC|GPIO_PIN_NPRIV);174 175 HAL_GPIO_ConfigPinAttributes(GPIOE,GPIO_PIN_4,GPIO_PIN_SEC|GPIO_PIN_NPRIV); 175 176 HAL_GPIO_ConfigPinAttributes(GPION,GPIO_PIN_12,GPIO_PIN_SEC|GPIO_PIN_NPRIV); … … 236 237 237 238 /** 239 * @brief Period elapsed callback in non blocking mode 240 * @note This function is called when TIM18 interrupt took place, inside 241 * HAL_TIM_IRQHandler(). It makes a direct call to HAL_IncTick() to increment 242 * a global variable "uwTick" used as application time base. 243 * @param htim : TIM handle 244 * @retval None 245 */ 246 void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim) 247 { 248 /* USER CODE BEGIN Callback 0 */ 249 250 /* USER CODE END Callback 0 */ 251 if (htim->Instance == TIM18) 252 { 253 HAL_IncTick(); 254 } 255 /* USER CODE BEGIN Callback 1 */ 256 257 /* USER CODE END Callback 1 */ 258 } 259 260 /** 238 261 * @brief This function is executed in case of error occurrence. 239 262 * @param None … … 244 267 /* USER CODE BEGIN Error_Handler_Debug */ 245 268 /* User can add his own implementation to report the HAL error return state */ 246 __disable_irq();269 //__disable_irq(); 247 270 while (1) 248 271 { 272 printf("Unknown error!\n"); 273 HAL_Delay(1000U); 249 274 } 250 275 /* USER CODE END Error_Handler_Debug */ -
trunk/firmware/App/CubeMX/Appli/Core/Src/sdmmc.c
r31 r36 42 42 hsd2.Init.ClockEdge = SDMMC_CLOCK_EDGE_RISING; 43 43 hsd2.Init.ClockPowerSave = SDMMC_CLOCK_POWER_SAVE_DISABLE; 44 hsd2.Init.BusWide = SDMMC_BUS_WIDE_ 4B;44 hsd2.Init.BusWide = SDMMC_BUS_WIDE_1B; 45 45 hsd2.Init.HardwareFlowControl = SDMMC_HARDWARE_FLOW_CONTROL_DISABLE; 46 hsd2.Init.ClockDiv = 0;46 hsd2.Init.ClockDiv = 2; 47 47 if (HAL_SD_Init(&hsd2) != HAL_OK) 48 48 { … … 89 89 PC3 ------> SDMMC2_CMD 90 90 */ 91 GPIO_InitStruct.Pin = GPIO_PIN_ 4|GPIO_PIN_5|GPIO_PIN_0|GPIO_PIN_3;91 GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_2|GPIO_PIN_3|GPIO_PIN_4|GPIO_PIN_5; 92 92 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; 93 GPIO_InitStruct.Pull = GPIO_ NOPULL;94 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_ MEDIUM;93 GPIO_InitStruct.Pull = GPIO_PULLUP; 94 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; 95 95 GPIO_InitStruct.Alternate = GPIO_AF11_SDMMC2; 96 96 HAL_GPIO_Init(GPIOC, &GPIO_InitStruct); 97 97 98 GPIO_InitStruct.Pin = GPIO_PIN_2;98 /*GPIO_InitStruct.Pin = GPIO_PIN_2; 99 99 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; 100 100 GPIO_InitStruct.Pull = GPIO_NOPULL; 101 101 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; 102 102 GPIO_InitStruct.Alternate = GPIO_AF11_SDMMC2; 103 HAL_GPIO_Init(GPIOD, &GPIO_InitStruct); 103 HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);*/ 104 104 105 105 GPIO_InitStruct.Pin = GPIO_PIN_4; 106 106 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; 107 GPIO_InitStruct.Pull = GPIO_ NOPULL;108 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_ MEDIUM;107 GPIO_InitStruct.Pull = GPIO_PULLUP; 108 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; 109 109 GPIO_InitStruct.Alternate = GPIO_AF11_SDMMC2; 110 110 HAL_GPIO_Init(GPIOE, &GPIO_InitStruct); -
trunk/firmware/App/CubeMX/Appli/Core/Src/stm32n6xx_it.c
r31 r36 23 23 /* Private includes ----------------------------------------------------------*/ 24 24 /* USER CODE BEGIN Includes */ 25 26 #include <stdio.h> 27 25 28 /* USER CODE END Includes */ 26 29 … … 57 60 /* External variables --------------------------------------------------------*/ 58 61 extern SD_HandleTypeDef hsd2; 62 extern TIM_HandleTypeDef htim18; 63 59 64 /* USER CODE BEGIN EV */ 60 65 … … 85 90 { 86 91 /* USER CODE BEGIN HardFault_IRQn 0 */ 92 93 uint32_t cfsr = SCB->CFSR; 94 uint32_t hfsr = SCB->HFSR; 95 uint32_t dfsr = SCB->DFSR; 96 uint32_t mmfar = SCB->MMFAR; 97 uint32_t bfar = SCB->BFAR; 98 99 printf("CFSR = 0x%08lX\r\n", (unsigned long)cfsr); 100 printf("HFSR = 0x%08lX\r\n", (unsigned long)hfsr); 101 printf("DFSR = 0x%08lX\r\n", (unsigned long)dfsr); 102 printf("MMFAR = 0x%08lX\r\n", (unsigned long)mmfar); 103 printf("BFAR = 0x%08lX\r\n", (unsigned long)bfar); 87 104 88 105 /* USER CODE END HardFault_IRQn 0 */ … … 175 192 176 193 /** 194 * @brief This function handles TIM18 global interrupt. 195 */ 196 void TIM18_IRQHandler(void) 197 { 198 /* USER CODE BEGIN TIM18_IRQn 0 */ 199 200 /* USER CODE END TIM18_IRQn 0 */ 201 HAL_TIM_IRQHandler(&htim18); 202 /* USER CODE BEGIN TIM18_IRQn 1 */ 203 204 /* USER CODE END TIM18_IRQn 1 */ 205 } 206 207 /** 177 208 * @brief This function handles SDMMC2 global interrupt. 178 209 */
Note:
See TracChangeset
for help on using the changeset viewer.
