Ignore:
Timestamp:
Oct 7, 2026, 12:20:36 PM (4 weeks ago)
Author:
Zed
Message:

First Stage Bootloader now can be debugged and flashed directly in SES.
RTT is also working.

Location:
trunk/firmware/App/CubeMX/Appli/Core
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/firmware/App/CubeMX/Appli/Core/Inc/main.h

    r21 r24  
    7676
    7777/* Private defines -----------------------------------------------------------*/
     78#define LED_GREEN_Pin GPIO_PIN_0
     79#define LED_GREEN_GPIO_Port GPIOG
    7880
    7981/* USER CODE BEGIN Private defines */
  • trunk/firmware/App/CubeMX/Appli/Core/Inc/stm32n6xx_hal_conf.h

    r21 r24  
    3636#define HAL_MODULE_ENABLED
    3737/*#define HAL_ADC_MODULE_ENABLED   */
    38 /*#define HAL_BSEC_MODULE_ENABLED   */
     38#define HAL_BSEC_MODULE_ENABLED
    3939/*#define HAL_CRC_MODULE_ENABLED   */
    4040/*#define HAL_CRYP_MODULE_ENABLED   */
    … …  
    6868/*#define HAL_PSSI_MODULE_ENABLED   */
    6969/*#define HAL_RAMCFG_MODULE_ENABLED   */
    70 /*#define HAL_RIF_MODULE_ENABLED   */
     70#define HAL_RIF_MODULE_ENABLED
    7171/*#define HAL_RNG_MODULE_ENABLED   */
    7272/*#define HAL_RTC_MODULE_ENABLED   */
  • trunk/firmware/App/CubeMX/Appli/Core/Src/gpio.c

    r21 r24  
    4444
    4545  /* GPIO Ports Clock Enable */
    46   __HAL_RCC_GPIOQ_CLK_ENABLE();
    47   __HAL_RCC_GPIOC_CLK_ENABLE();
    48   __HAL_RCC_GPIOE_CLK_ENABLE();
    49   __HAL_RCC_GPIOD_CLK_ENABLE();
    50   __HAL_RCC_GPIOH_CLK_ENABLE();
     46  __HAL_RCC_GPIOG_CLK_ENABLE();
     47  __HAL_RCC_GPIOA_CLK_ENABLE();
    5148  __HAL_RCC_GPIOB_CLK_ENABLE();
    52   __HAL_RCC_GPIOP_CLK_ENABLE();
    53   __HAL_RCC_GPIOO_CLK_ENABLE();
    54   __HAL_RCC_GPIOG_CLK_ENABLE();
    55   __HAL_RCC_GPIOF_CLK_ENABLE();
    56   __HAL_RCC_GPION_CLK_ENABLE();
    57   __HAL_RCC_GPIOA_CLK_ENABLE();
    5849
    59   /*Configure GPIO pins : PQ6 PQ3 PQ4 PQ5
    60                            PQ2 PQ1 PQ0 PQ7 */
    61   GPIO_InitStruct.Pin = GPIO_PIN_6|GPIO_PIN_3|GPIO_PIN_4|GPIO_PIN_5
    62                           |GPIO_PIN_2|GPIO_PIN_1|GPIO_PIN_0|GPIO_PIN_7;
    63   GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
     50  /*Configure GPIO pin Output Level */
     51  HAL_GPIO_WritePin(LED_GREEN_GPIO_Port, LED_GREEN_Pin, GPIO_PIN_RESET);
     52
     53  /*Configure GPIO pin : LED_GREEN_Pin */
     54  GPIO_InitStruct.Pin = LED_GREEN_Pin;
     55  GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
    6456  GPIO_InitStruct.Pull = GPIO_NOPULL;
    65   HAL_GPIO_Init(GPIOQ, &GPIO_InitStruct);
    66 
    67   /*Configure GPIO pins : PC10 PC1 PC4 PC11
    68                            PC6 PC5 PC9 PC12
    69                            PC7 PC0 PC8 PC2
    70                            PC3 PC13 */
    71   GPIO_InitStruct.Pin = GPIO_PIN_10|GPIO_PIN_1|GPIO_PIN_4|GPIO_PIN_11
    72                           |GPIO_PIN_6|GPIO_PIN_5|GPIO_PIN_9|GPIO_PIN_12
    73                           |GPIO_PIN_7|GPIO_PIN_0|GPIO_PIN_8|GPIO_PIN_2
    74                           |GPIO_PIN_3|GPIO_PIN_13;
    75   GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
    76   GPIO_InitStruct.Pull = GPIO_NOPULL;
    77   HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
    78 
    79   /*Configure GPIO pins : PE13 PE15 PE8 PE9
    80                            PE14 PE12 PE7 PE10
    81                            PE5 PE4 PE6 PE11
    82                            PE3 PE2 PE0 PE1 */
    83   GPIO_InitStruct.Pin = GPIO_PIN_13|GPIO_PIN_15|GPIO_PIN_8|GPIO_PIN_9
    84                           |GPIO_PIN_14|GPIO_PIN_12|GPIO_PIN_7|GPIO_PIN_10
    85                           |GPIO_PIN_5|GPIO_PIN_4|GPIO_PIN_6|GPIO_PIN_11
    86                           |GPIO_PIN_3|GPIO_PIN_2|GPIO_PIN_0|GPIO_PIN_1;
    87   GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
    88   GPIO_InitStruct.Pull = GPIO_NOPULL;
    89   HAL_GPIO_Init(GPIOE, &GPIO_InitStruct);
    90 
    91   /*Configure GPIO pins : PD10 PD1 PD15 PD4
    92                            PD2 PD12 PD14 PD13
    93                            PD6 PD0 PD5 PD7
    94                            PD3 PD8 PD11 PD9 */
    95   GPIO_InitStruct.Pin = GPIO_PIN_10|GPIO_PIN_1|GPIO_PIN_15|GPIO_PIN_4
    96                           |GPIO_PIN_2|GPIO_PIN_12|GPIO_PIN_14|GPIO_PIN_13
    97                           |GPIO_PIN_6|GPIO_PIN_0|GPIO_PIN_5|GPIO_PIN_7
    98                           |GPIO_PIN_3|GPIO_PIN_8|GPIO_PIN_11|GPIO_PIN_9;
    99   GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
    100   GPIO_InitStruct.Pull = GPIO_NOPULL;
    101   HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
    102 
    103   /*Configure GPIO pins : PH3 PH6 PH8 PH7
    104                            PH9 PH2 PH4 PH5 */
    105   GPIO_InitStruct.Pin = GPIO_PIN_3|GPIO_PIN_6|GPIO_PIN_8|GPIO_PIN_7
    106                           |GPIO_PIN_9|GPIO_PIN_2|GPIO_PIN_4|GPIO_PIN_5;
    107   GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
    108   GPIO_InitStruct.Pull = GPIO_NOPULL;
    109   HAL_GPIO_Init(GPIOH, &GPIO_InitStruct);
    110 
    111   /*Configure GPIO pins : PB14 PB13 PB2 PB9
    112                            PB8 PB15 PB0 PB7
    113                            PB6 PB3 PB11 PB12
    114                            PB1 PB4 PB10 PB5 */
    115   GPIO_InitStruct.Pin = GPIO_PIN_14|GPIO_PIN_13|GPIO_PIN_2|GPIO_PIN_9
    116                           |GPIO_PIN_8|GPIO_PIN_15|GPIO_PIN_0|GPIO_PIN_7
    117                           |GPIO_PIN_6|GPIO_PIN_3|GPIO_PIN_11|GPIO_PIN_12
    118                           |GPIO_PIN_1|GPIO_PIN_4|GPIO_PIN_10|GPIO_PIN_5;
    119   GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
    120   GPIO_InitStruct.Pull = GPIO_NOPULL;
    121   HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
    122 
    123   /*Configure GPIO pins : PP7 PP6 PP0 PP4
    124                            PP1 PP15 PP5 PP12
    125                            PP3 PP2 PP13 PP11
    126                            PP8 PP14 PP9 PP10 */
    127   GPIO_InitStruct.Pin = GPIO_PIN_7|GPIO_PIN_6|GPIO_PIN_0|GPIO_PIN_4
    128                           |GPIO_PIN_1|GPIO_PIN_15|GPIO_PIN_5|GPIO_PIN_12
    129                           |GPIO_PIN_3|GPIO_PIN_2|GPIO_PIN_13|GPIO_PIN_11
    130                           |GPIO_PIN_8|GPIO_PIN_14|GPIO_PIN_9|GPIO_PIN_10;
    131   GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
    132   GPIO_InitStruct.Pull = GPIO_NOPULL;
    133   HAL_GPIO_Init(GPIOP, &GPIO_InitStruct);
    134 
    135   /*Configure GPIO pins : PO5 PO1 PO2 PO3
    136                            PO0 PO4 */
    137   GPIO_InitStruct.Pin = GPIO_PIN_5|GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3
    138                           |GPIO_PIN_0|GPIO_PIN_4;
    139   GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
    140   GPIO_InitStruct.Pull = GPIO_NOPULL;
    141   HAL_GPIO_Init(GPIOO, &GPIO_InitStruct);
    142 
    143   /*Configure GPIO pins : PG7 PG6 PG5 PG4
    144                            PG14 PG3 PG15 PG1
    145                            PG0 PG12 PG10 PG2
    146                            PG9 PG8 PG13 PG11 */
    147   GPIO_InitStruct.Pin = GPIO_PIN_7|GPIO_PIN_6|GPIO_PIN_5|GPIO_PIN_4
    148                           |GPIO_PIN_14|GPIO_PIN_3|GPIO_PIN_15|GPIO_PIN_1
    149                           |GPIO_PIN_0|GPIO_PIN_12|GPIO_PIN_10|GPIO_PIN_2
    150                           |GPIO_PIN_9|GPIO_PIN_8|GPIO_PIN_13|GPIO_PIN_11;
    151   GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
    152   GPIO_InitStruct.Pull = GPIO_NOPULL;
    153   HAL_GPIO_Init(GPIOG, &GPIO_InitStruct);
    154 
    155   /*Configure GPIO pins : PF4 PF10 PF6 PF7
    156                            PF3 PF5 PF15 PF14
    157                            PF8 PF2 PF9 PF11
    158                            PF1 PF13 PF0 PF12 */
    159   GPIO_InitStruct.Pin = GPIO_PIN_4|GPIO_PIN_10|GPIO_PIN_6|GPIO_PIN_7
    160                           |GPIO_PIN_3|GPIO_PIN_5|GPIO_PIN_15|GPIO_PIN_14
    161                           |GPIO_PIN_8|GPIO_PIN_2|GPIO_PIN_9|GPIO_PIN_11
    162                           |GPIO_PIN_1|GPIO_PIN_13|GPIO_PIN_0|GPIO_PIN_12;
    163   GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
    164   GPIO_InitStruct.Pull = GPIO_NOPULL;
    165   HAL_GPIO_Init(GPIOF, &GPIO_InitStruct);
    166 
    167   /*Configure GPIO pins : PN4 PN12 PN6 PN8
    168                            PN0 PN3 PN5 PN1
    169                            PN9 PN7 PN2 PN10
    170                            PN11 */
    171   GPIO_InitStruct.Pin = GPIO_PIN_4|GPIO_PIN_12|GPIO_PIN_6|GPIO_PIN_8
    172                           |GPIO_PIN_0|GPIO_PIN_3|GPIO_PIN_5|GPIO_PIN_1
    173                           |GPIO_PIN_9|GPIO_PIN_7|GPIO_PIN_2|GPIO_PIN_10
    174                           |GPIO_PIN_11;
    175   GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
    176   GPIO_InitStruct.Pull = GPIO_NOPULL;
    177   HAL_GPIO_Init(GPION, &GPIO_InitStruct);
    178 
    179   /*Configure GPIO pins : PA9 PA6 PA1 PA15
    180                            PA10 PA5 PA7 PA3
    181                            PA14 PA11 PA2 PA13
    182                            PA12 PA8 PA0 PA4 */
    183   GPIO_InitStruct.Pin = GPIO_PIN_9|GPIO_PIN_6|GPIO_PIN_1|GPIO_PIN_15
    184                           |GPIO_PIN_10|GPIO_PIN_5|GPIO_PIN_7|GPIO_PIN_3
    185                           |GPIO_PIN_14|GPIO_PIN_11|GPIO_PIN_2|GPIO_PIN_13
    186                           |GPIO_PIN_12|GPIO_PIN_8|GPIO_PIN_0|GPIO_PIN_4;
    187   GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
    188   GPIO_InitStruct.Pull = GPIO_NOPULL;
    189   HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
     57  GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
     58  HAL_GPIO_Init(LED_GREEN_GPIO_Port, &GPIO_InitStruct);
    19059
    19160}
  • trunk/firmware/App/CubeMX/Appli/Core/Src/main.c

    r23 r24  
    1919/* Includes ------------------------------------------------------------------*/
    2020#include "main.h"
     21#include "bsec.h"
    2122#include "gpio.h"
    2223
    … …  
    4950/* Private function prototypes -----------------------------------------------*/
    5051static void MPU_Config(void);
     52static void SystemIsolation_Config(void);
    5153/* USER CODE BEGIN PFP */
    5254
    … …  
    9698  /* Initialize all configured peripherals */
    9799  MX_GPIO_Init();
     100  MX_BSEC_Init();
     101  SystemIsolation_Config();
    98102  /* USER CODE BEGIN 2 */
    99103
    … …  
    104108  while (1)
    105109  {
     110
     111        HAL_GPIO_TogglePin(LED_GREEN_GPIO_Port, LED_GREEN_Pin);
     112        HAL_Delay(1000U);
    106113    /* USER CODE END WHILE */
    107114
    … …  
    109116  }
    110117  /* USER CODE END 3 */
     118}
     119
     120/**
     121  * @brief RIF Initialization Function
     122  * @param None
     123  * @retval None
     124  */
     125  static void SystemIsolation_Config(void)
     126{
     127
     128/* USER CODE BEGIN RIF_Init 0 */
     129
     130/* USER CODE END RIF_Init 0 */
     131
     132  /* set all required IPs as secure privileged */
     133  __HAL_RCC_RIFSC_CLK_ENABLE();
     134
     135  /* RIF-Aware IPs Config */
     136
     137  /* set up GPIO configuration */
     138  HAL_GPIO_ConfigPinAttributes(GPIOG,GPIO_PIN_0,GPIO_PIN_SEC|GPIO_PIN_NPRIV);
     139
     140/* USER CODE BEGIN RIF_Init 1 */
     141
     142/* USER CODE END RIF_Init 1 */
     143/* USER CODE BEGIN RIF_Init 2 */
     144
     145/* USER CODE END RIF_Init 2 */
     146
    111147}
    112148
Note: See TracChangeset for help on using the changeset viewer.