Interruption et messagerie fonctionnelle

This commit is contained in:
Thomas 2021-04-20 14:29:43 +02:00
parent 5837e17507
commit 4ba4e899c8
5 changed files with 186 additions and 165 deletions

View file

@ -86,6 +86,7 @@ void Error_Handler(void);
#define OTG_FS_VBUS_GPIO_Port GPIOJ #define OTG_FS_VBUS_GPIO_Port GPIOJ
#define Audio_INT_Pin GPIO_PIN_6 #define Audio_INT_Pin GPIO_PIN_6
#define Audio_INT_GPIO_Port GPIOD #define Audio_INT_GPIO_Port GPIOD
#define Audio_INT_EXTI_IRQn EXTI9_5_IRQn
#define NC1_Pin GPIO_PIN_8 #define NC1_Pin GPIO_PIN_8
#define NC1_GPIO_Port GPIOI #define NC1_GPIO_Port GPIOI
#define LCD_DE_Pin GPIO_PIN_7 #define LCD_DE_Pin GPIO_PIN_7
@ -132,12 +133,15 @@ void Error_Handler(void);
#define VCP_TX_GPIO_Port GPIOA #define VCP_TX_GPIO_Port GPIOA
#define RCC_OSC32_OUT_Pin GPIO_PIN_15 #define RCC_OSC32_OUT_Pin GPIO_PIN_15
#define RCC_OSC32_OUT_GPIO_Port GPIOC #define RCC_OSC32_OUT_GPIO_Port GPIOC
#define BP_interrupt1_Pin GPIO_PIN_11
#define BP_interrupt1_GPIO_Port GPIOI
#define LCD_G6_Pin GPIO_PIN_1 #define LCD_G6_Pin GPIO_PIN_1
#define LCD_G6_GPIO_Port GPIOK #define LCD_G6_GPIO_Port GPIOK
#define LCD_G7_Pin GPIO_PIN_2 #define LCD_G7_Pin GPIO_PIN_2
#define LCD_G7_GPIO_Port GPIOK #define LCD_G7_GPIO_Port GPIOK
#define BP1_Pin GPIO_PIN_8 #define PB_Pin GPIO_PIN_8
#define BP1_GPIO_Port GPIOA #define PB_GPIO_Port GPIOA
#define PB_EXTI_IRQn EXTI9_5_IRQn
#define OSC_25M_Pin GPIO_PIN_0 #define OSC_25M_Pin GPIO_PIN_0
#define OSC_25M_GPIO_Port GPIOH #define OSC_25M_GPIO_Port GPIOH
#define LCD_INT_Pin GPIO_PIN_13 #define LCD_INT_Pin GPIO_PIN_13

View file

@ -53,6 +53,7 @@ void MemManage_Handler(void);
void BusFault_Handler(void); void BusFault_Handler(void);
void UsageFault_Handler(void); void UsageFault_Handler(void);
void DebugMon_Handler(void); void DebugMon_Handler(void);
void EXTI9_5_IRQHandler(void);
void TIM6_DAC_IRQHandler(void); void TIM6_DAC_IRQHandler(void);
void ETH_IRQHandler(void); void ETH_IRQHandler(void);
void LTDC_IRQHandler(void); void LTDC_IRQHandler(void);

View file

@ -75,7 +75,6 @@ osThreadId GameMasterHandle;
osThreadId Joueur_1Handle; osThreadId Joueur_1Handle;
osThreadId Block_EnemieHandle; osThreadId Block_EnemieHandle;
osThreadId ProjectileHandle; osThreadId ProjectileHandle;
osThreadId IRQ_BPHandle;
osMessageQId Queue_JHandle; osMessageQId Queue_JHandle;
osMessageQId Queue_NHandle; osMessageQId Queue_NHandle;
osMessageQId Queue_FHandle; osMessageQId Queue_FHandle;
@ -105,7 +104,6 @@ void f_GameMaster(void const * argument);
void f_Joueur_1(void const * argument); void f_Joueur_1(void const * argument);
void f_block_enemie(void const * argument); void f_block_enemie(void const * argument);
void f_projectile(void const * argument); void f_projectile(void const * argument);
void f_IRQ_BP(void const * argument);
/* USER CODE BEGIN PFP */ /* USER CODE BEGIN PFP */
@ -176,7 +174,6 @@ uint32_t Limit_ennemis_x = 50;
int main(void) int main(void)
{ {
/* USER CODE BEGIN 1 */ /* USER CODE BEGIN 1 */
char text[50] = {};
static TS_StateTypeDef TS_State; static TS_StateTypeDef TS_State;
ADC_ChannelConfTypeDef sConfig = {0}; ADC_ChannelConfTypeDef sConfig = {0};
sConfig.Rank = ADC_REGULAR_RANK_1; sConfig.Rank = ADC_REGULAR_RANK_1;
@ -252,7 +249,7 @@ int main(void)
Queue_JHandle = osMessageCreate(osMessageQ(Queue_J), NULL); Queue_JHandle = osMessageCreate(osMessageQ(Queue_J), NULL);
/* definition and creation of Queue_N */ /* definition and creation of Queue_N */
osMessageQDef(Queue_N, 16, uint16_t); osMessageQDef(Queue_N, 3, struct Missile);
Queue_NHandle = osMessageCreate(osMessageQ(Queue_N), NULL); Queue_NHandle = osMessageCreate(osMessageQ(Queue_N), NULL);
/* definition and creation of Queue_F */ /* definition and creation of Queue_F */
@ -284,10 +281,6 @@ int main(void)
osThreadDef(Projectile, f_projectile, osPriorityNormal, 0, 128); osThreadDef(Projectile, f_projectile, osPriorityNormal, 0, 128);
ProjectileHandle = osThreadCreate(osThread(Projectile), NULL); ProjectileHandle = osThreadCreate(osThread(Projectile), NULL);
/* definition and creation of IRQ_BP */
osThreadDef(IRQ_BP, f_IRQ_BP, osPriorityAboveNormal, 0, 128);
IRQ_BPHandle = osThreadCreate(osThread(IRQ_BP), NULL);
/* USER CODE BEGIN RTOS_THREADS */ /* USER CODE BEGIN RTOS_THREADS */
/* add threads, ... */ /* add threads, ... */
/* USER CODE END RTOS_THREADS */ /* USER CODE END RTOS_THREADS */
@ -301,12 +294,12 @@ int main(void)
while (1) while (1)
{ {
/* Code de base */ /* Code de base */
HAL_GPIO_WritePin(LED13_GPIO_Port, LED13_Pin, // HAL_GPIO_WritePin(LED13_GPIO_Port, LED13_Pin,
HAL_GPIO_ReadPin(BP1_GPIO_Port, BP1_Pin)); // HAL_GPIO_ReadPin(BP1_GPIO_Port, BP1_Pin));
HAL_GPIO_WritePin(LED14_GPIO_Port, LED14_Pin, // HAL_GPIO_WritePin(LED14_GPIO_Port, LED14_Pin,
HAL_GPIO_ReadPin(BP2_GPIO_Port, BP2_Pin)); // HAL_GPIO_ReadPin(BP2_GPIO_Port, BP2_Pin));
sprintf(text, "BP1 : %d", HAL_GPIO_ReadPin(BP1_GPIO_Port, BP1_Pin)); // sprintf(text, "BP1 : %d", HAL_GPIO_ReadPin(BP1_GPIO_Port, BP1_Pin));
BSP_LCD_DisplayStringAtLine(5, (uint8_t *)text); // BSP_LCD_DisplayStringAtLine(5, (uint8_t *)text);
; ;
@ -1137,11 +1130,11 @@ static void MX_GPIO_Init(void)
GPIO_InitStruct.Alternate = GPIO_AF10_OTG_HS; GPIO_InitStruct.Alternate = GPIO_AF10_OTG_HS;
HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
/*Configure GPIO pins : BP2_Pin BP1_Pin */ /*Configure GPIO pin : BP2_Pin */
GPIO_InitStruct.Pin = BP2_Pin|BP1_Pin; GPIO_InitStruct.Pin = BP2_Pin;
GPIO_InitStruct.Mode = GPIO_MODE_INPUT; GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Pull = GPIO_NOPULL;
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); HAL_GPIO_Init(BP2_GPIO_Port, &GPIO_InitStruct);
/*Configure GPIO pins : LED14_Pin LED15_Pin */ /*Configure GPIO pins : LED14_Pin LED15_Pin */
GPIO_InitStruct.Pin = LED14_Pin|LED15_Pin; GPIO_InitStruct.Pin = LED14_Pin|LED15_Pin;
@ -1226,6 +1219,18 @@ static void MX_GPIO_Init(void)
GPIO_InitStruct.Alternate = GPIO_AF7_USART1; GPIO_InitStruct.Alternate = GPIO_AF7_USART1;
HAL_GPIO_Init(VCP_TX_GPIO_Port, &GPIO_InitStruct); HAL_GPIO_Init(VCP_TX_GPIO_Port, &GPIO_InitStruct);
/*Configure GPIO pin : BP_interrupt1_Pin */
GPIO_InitStruct.Pin = BP_interrupt1_Pin;
GPIO_InitStruct.Mode = GPIO_MODE_IT_RISING;
GPIO_InitStruct.Pull = GPIO_NOPULL;
HAL_GPIO_Init(BP_interrupt1_GPIO_Port, &GPIO_InitStruct);
/*Configure GPIO pin : PB_Pin */
GPIO_InitStruct.Pin = PB_Pin;
GPIO_InitStruct.Mode = GPIO_MODE_IT_RISING;
GPIO_InitStruct.Pull = GPIO_NOPULL;
HAL_GPIO_Init(PB_GPIO_Port, &GPIO_InitStruct);
/*Configure GPIO pin : LCD_INT_Pin */ /*Configure GPIO pin : LCD_INT_Pin */
GPIO_InitStruct.Pin = LCD_INT_Pin; GPIO_InitStruct.Pin = LCD_INT_Pin;
GPIO_InitStruct.Mode = GPIO_MODE_EVT_RISING; GPIO_InitStruct.Mode = GPIO_MODE_EVT_RISING;
@ -1293,10 +1298,25 @@ static void MX_GPIO_Init(void)
GPIO_InitStruct.Alternate = GPIO_AF10_OTG_HS; GPIO_InitStruct.Alternate = GPIO_AF10_OTG_HS;
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
/* EXTI interrupt init*/
HAL_NVIC_SetPriority(EXTI9_5_IRQn, 5, 0);
HAL_NVIC_EnableIRQ(EXTI9_5_IRQn);
} }
/* USER CODE BEGIN 4 */ /* USER CODE BEGIN 4 */
void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
{
/* Prevent unused argument(s) compilation warning */
BaseType_t pxHigherPriorityTaskWoken = pdTRUE;
// &pxHigherPriorityTaskWoken =
struct Missile missile = {joueur.x, joueur.y, 1, 0, 1, LCD_COLOR_LIGHTBLUE, 2, 1};
HAL_GPIO_TogglePin(LED13_GPIO_Port, LED13_Pin);
xQueueSendFromISR(Queue_NHandle, &missile, &pxHigherPriorityTaskWoken);
/* NOTE: This function Should not be modified, when the callback is needed,
the HAL_GPIO_EXTI_Callback could be implemented in the user file
*/
}
/* USER CODE END 4 */ /* USER CODE END 4 */
@ -1493,7 +1513,7 @@ void f_projectile(void const * argument)
{ {
/* USER CODE BEGIN f_projectile */ /* USER CODE BEGIN f_projectile */
TickType_t xLastWakeTime; TickType_t xLastWakeTime;
const TickType_t xPeriodeTache = 5000; const TickType_t xPeriodeTache = 50000;
/* Infinite loop */ /* Infinite loop */
struct Missile liste_missile[20]; struct Missile liste_missile[20];
struct Missile missile; struct Missile missile;
@ -1507,8 +1527,8 @@ void f_projectile(void const * argument)
for (;;) for (;;)
{ {
xQueueReceive(Queue_NHandle, &missile, 0); if (xQueueReceive(Queue_NHandle, &missile, 0) == pdPASS)
if (missile.valide == 1){ {
liste_missile[indice++] = missile; liste_missile[indice++] = missile;
} }
@ -1519,7 +1539,7 @@ void f_projectile(void const * argument)
if (liste_missile[i].valide == 1) if (liste_missile[i].valide == 1)
{ {
// Si le missile appartient au joueur : // Si le missile appartient au joueur :
if (liste_missile[i].equipe == 0) if (liste_missile[i].equipe == 1)
{ {
if (liste_missile[i].x >= Limit_ennemis_x) if (liste_missile[i].x >= Limit_ennemis_x)
{ {
@ -1529,10 +1549,14 @@ void f_projectile(void const * argument)
if ((liste_missile[i].x > 1)&&(liste_missile[i].x < LCD_HEIGHT-1)&&(liste_missile[i].y < LCD_WIDTH-1)&&(liste_missile[i].y > 1)) if ((liste_missile[i].x > 1)&&(liste_missile[i].x < LCD_HEIGHT-1)&&(liste_missile[i].y < LCD_WIDTH-1)&&(liste_missile[i].y > 1))
{ {
BSP_LCD_DrawPixel(liste_missile[i].x, liste_missile[i].y, LCD_COLOR_BACKGROUND); //BSP_LCD_DrawPixel(liste_missile[i].x, liste_missile[i].y, LCD_COLOR_BACKGROUND);
BSP_LCD_SetTextColor(LCD_COLOR_BACKGROUND);
BSP_LCD_FillRect(joueur.x, joueur.y, 20, 20);
liste_missile[i].x = liste_missile[i].x + liste_missile[i].dx ; liste_missile[i].x = liste_missile[i].x + liste_missile[i].dx ;
liste_missile[i].y = liste_missile[i].y + liste_missile[i].dy; liste_missile[i].y = liste_missile[i].y + liste_missile[i].dy;
BSP_LCD_DrawPixel(liste_missile[i].x, liste_missile[i].y, liste_missile[i].color); //BSP_LCD_DrawPixel(liste_missile[i].x, liste_missile[i].y, liste_missile[i].color);
BSP_LCD_SetTextColor(liste_missile[i].color);
BSP_LCD_FillRect(liste_missile[i].x, liste_missile[i].y, 20, 20);
} }
//TODO test sur tous les ennemis //TODO test sur tous les ennemis
else else
@ -1542,7 +1566,7 @@ void f_projectile(void const * argument)
} }
} }
// Si le missile appartient aux ennemis // Si le missile appartient aux ennemis
else if (liste_missile[i].equipe == 1) else if (liste_missile[i].equipe == 0)
{ {
if ((liste_missile[i].x == joueur.x)&&(liste_missile[i].y == joueur.y)) if ((liste_missile[i].x == joueur.x)&&(liste_missile[i].y == joueur.y))
{ {
@ -1573,38 +1597,6 @@ void f_projectile(void const * argument)
/* USER CODE END f_projectile */ /* USER CODE END f_projectile */
} }
/* USER CODE BEGIN Header_f_IRQ_BP */
/**
* @brief Function implementing the IRQ_BP thread.
* @param argument: Not used
* @retval None
*/
/* USER CODE END Header_f_IRQ_BP */
void f_IRQ_BP(void const * argument)
{
/* USER CODE BEGIN f_IRQ_BP */
TickType_t xLastWakeTime;
// Faudrait convertir en ms mais jsp comment
const TickType_t xPeriodeTache = 10;
/* Infinite loop */
for(;;)
{
if (HAL_GPIO_ReadPin(BP1_GPIO_Port, BP1_Pin)==0){
struct Missile missile = {joueur.x, joueur.y, 1, 0, 1, LCD_COLOR_LIGHTBLUE, 2, 1};
HAL_GPIO_WritePin(LED13_GPIO_Port, LED13_Pin,1);
xQueueSend(Queue_NHandle, &missile,0);
}
if(HAL_GPIO_ReadPin(BP2_GPIO_Port, BP2_Pin) ==0){
struct Missile missile = {joueur.x, joueur.y, 0, 1, 1, LCD_COLOR_YELLOW , 2, 1};
HAL_GPIO_WritePin(LED14_GPIO_Port, LED14_Pin,1);
xQueueSend(Queue_NHandle, &missile,0);
}
vTaskDelayUntil(&xLastWakeTime, xPeriodeTache);
}
/* USER CODE END f_IRQ_BP */
}
/** /**
* @brief Period elapsed callback in non blocking mode * @brief Period elapsed callback in non blocking mode
* @note This function is called when TIM6 interrupt took place, inside * @note This function is called when TIM6 interrupt took place, inside

View file

@ -163,6 +163,20 @@ void DebugMon_Handler(void)
/* please refer to the startup file (startup_stm32f7xx.s). */ /* please refer to the startup file (startup_stm32f7xx.s). */
/******************************************************************************/ /******************************************************************************/
/**
* @brief This function handles EXTI line[9:5] interrupts.
*/
void EXTI9_5_IRQHandler(void)
{
/* USER CODE BEGIN EXTI9_5_IRQn 0 */
/* USER CODE END EXTI9_5_IRQn 0 */
HAL_GPIO_EXTI_IRQHandler(GPIO_PIN_8);
/* USER CODE BEGIN EXTI9_5_IRQn 1 */
/* USER CODE END EXTI9_5_IRQn 1 */
}
/** /**
* @brief This function handles TIM6 global interrupt, DAC1 and DAC2 underrun error interrupts. * @brief This function handles TIM6 global interrupt, DAC1 and DAC2 underrun error interrupts.
*/ */

View file

@ -12,8 +12,8 @@ ETH.MediaInterface=ETH_MEDIA_INTERFACE_RMII
FREERTOS.FootprintOK=true FREERTOS.FootprintOK=true
FREERTOS.INCLUDE_vTaskDelayUntil=1 FREERTOS.INCLUDE_vTaskDelayUntil=1
FREERTOS.IPParameters=Tasks01,configUSE_APPLICATION_TASK_TAG,configUSE_RECURSIVE_MUTEXES,configUSE_COUNTING_SEMAPHORES,configUSE_IDLE_HOOK,configUSE_MALLOC_FAILED_HOOK,configCHECK_FOR_STACK_OVERFLOW,configTOTAL_HEAP_SIZE,FootprintOK,Queues01,INCLUDE_vTaskDelayUntil FREERTOS.IPParameters=Tasks01,configUSE_APPLICATION_TASK_TAG,configUSE_RECURSIVE_MUTEXES,configUSE_COUNTING_SEMAPHORES,configUSE_IDLE_HOOK,configUSE_MALLOC_FAILED_HOOK,configCHECK_FOR_STACK_OVERFLOW,configTOTAL_HEAP_SIZE,FootprintOK,Queues01,INCLUDE_vTaskDelayUntil
FREERTOS.Queues01=Queue_J,16,uint16_t,0,Dynamic,NULL,NULL;Queue_N,16,uint16_t,0,Dynamic,NULL,NULL;Queue_F,16,uint16_t,0,Dynamic,NULL,NULL;Queue_E,16,uint16_t,0,Dynamic,NULL,NULL FREERTOS.Queues01=Queue_J,16,uint16_t,0,Dynamic,NULL,NULL;Queue_N,3,struct Missile,0,Dynamic,NULL,NULL;Queue_F,16,uint16_t,0,Dynamic,NULL,NULL;Queue_E,16,uint16_t,0,Dynamic,NULL,NULL
FREERTOS.Tasks01=GameMaster,0,128,f_GameMaster,Default,NULL,Dynamic,NULL,NULL;Joueur_1,0,128,f_Joueur_1,Default,NULL,Dynamic,NULL,NULL;Block_Enemie,-3,128,f_block_enemie,Default,NULL,Dynamic,NULL,NULL;Projectile,0,128,f_projectile,Default,NULL,Dynamic,Dynamic,NULL;IRQ_BP,1,128,f_IRQ_BP,Default,NULL,Dynamic,NULL,NULL FREERTOS.Tasks01=GameMaster,0,128,f_GameMaster,Default,NULL,Dynamic,NULL,NULL;Joueur_1,0,128,f_Joueur_1,Default,NULL,Dynamic,NULL,NULL;Block_Enemie,-3,128,f_block_enemie,Default,NULL,Dynamic,NULL,NULL;Projectile,0,128,f_projectile,Default,NULL,Dynamic,Dynamic,NULL
FREERTOS.configCHECK_FOR_STACK_OVERFLOW=2 FREERTOS.configCHECK_FOR_STACK_OVERFLOW=2
FREERTOS.configTOTAL_HEAP_SIZE=32768 FREERTOS.configTOTAL_HEAP_SIZE=32768
FREERTOS.configUSE_APPLICATION_TASK_TAG=1 FREERTOS.configUSE_APPLICATION_TASK_TAG=1
@ -70,62 +70,63 @@ Mcu.Package=TFBGA216
Mcu.Pin0=PE4 Mcu.Pin0=PE4
Mcu.Pin1=PE3 Mcu.Pin1=PE3
Mcu.Pin10=PA13 Mcu.Pin10=PA13
Mcu.Pin100=PA1 Mcu.Pin100=PH12
Mcu.Pin101=PA0/WKUP Mcu.Pin101=PA1
Mcu.Pin102=PA4 Mcu.Pin102=PA0/WKUP
Mcu.Pin103=PC4 Mcu.Pin103=PA4
Mcu.Pin104=PF13 Mcu.Pin104=PC4
Mcu.Pin105=PG0 Mcu.Pin105=PF13
Mcu.Pin106=PJ3 Mcu.Pin106=PG0
Mcu.Pin107=PE8 Mcu.Pin107=PJ3
Mcu.Pin108=PG5 Mcu.Pin108=PE8
Mcu.Pin109=PG4 Mcu.Pin109=PG5
Mcu.Pin11=PE5 Mcu.Pin11=PE5
Mcu.Pin110=PH7 Mcu.Pin110=PG4
Mcu.Pin111=PH9 Mcu.Pin111=PH7
Mcu.Pin112=PH11 Mcu.Pin112=PH9
Mcu.Pin113=PA2 Mcu.Pin113=PH11
Mcu.Pin114=PA5 Mcu.Pin114=PA2
Mcu.Pin115=PC5 Mcu.Pin115=PA5
Mcu.Pin116=PF14 Mcu.Pin116=PC5
Mcu.Pin117=PJ2 Mcu.Pin117=PF14
Mcu.Pin118=PF11 Mcu.Pin118=PJ2
Mcu.Pin119=PE9 Mcu.Pin119=PF11
Mcu.Pin12=PE6 Mcu.Pin12=PE6
Mcu.Pin120=PE11 Mcu.Pin120=PE9
Mcu.Pin121=PE14 Mcu.Pin121=PE11
Mcu.Pin122=PH6 Mcu.Pin122=PE14
Mcu.Pin123=PH8 Mcu.Pin123=PH6
Mcu.Pin124=PH10 Mcu.Pin124=PH8
Mcu.Pin125=PA3 Mcu.Pin125=PH10
Mcu.Pin126=PA7 Mcu.Pin126=PA3
Mcu.Pin127=PB1 Mcu.Pin127=PA7
Mcu.Pin128=PB0 Mcu.Pin128=PB1
Mcu.Pin129=PJ0 Mcu.Pin129=PB0
Mcu.Pin13=PG13 Mcu.Pin13=PG13
Mcu.Pin130=PJ1 Mcu.Pin130=PJ0
Mcu.Pin131=PE7 Mcu.Pin131=PJ1
Mcu.Pin132=PE10 Mcu.Pin132=PE7
Mcu.Pin133=PE12 Mcu.Pin133=PE10
Mcu.Pin134=PE15 Mcu.Pin134=PE12
Mcu.Pin135=PE13 Mcu.Pin135=PE15
Mcu.Pin136=PB11 Mcu.Pin136=PE13
Mcu.Pin137=PB14 Mcu.Pin137=PB11
Mcu.Pin138=PB15 Mcu.Pin138=PB14
Mcu.Pin139=VP_CRC_VS_CRC Mcu.Pin139=PB15
Mcu.Pin14=PB9 Mcu.Pin14=PB9
Mcu.Pin140=VP_DMA2D_VS_DMA2D Mcu.Pin140=VP_CRC_VS_CRC
Mcu.Pin141=VP_FREERTOS_VS_CMSIS_V1 Mcu.Pin141=VP_DMA2D_VS_DMA2D
Mcu.Pin142=VP_LWIP_VS_Enabled Mcu.Pin142=VP_FREERTOS_VS_CMSIS_V1
Mcu.Pin143=VP_RNG_VS_RNG Mcu.Pin143=VP_LWIP_VS_Enabled
Mcu.Pin144=VP_SYS_VS_tim6 Mcu.Pin144=VP_RNG_VS_RNG
Mcu.Pin145=VP_TIM1_VS_ClockSourceINT Mcu.Pin145=VP_SYS_VS_tim6
Mcu.Pin146=VP_TIM2_VS_ClockSourceINT Mcu.Pin146=VP_TIM1_VS_ClockSourceINT
Mcu.Pin147=VP_TIM3_VS_ClockSourceINT Mcu.Pin147=VP_TIM2_VS_ClockSourceINT
Mcu.Pin148=VP_TIM3_VS_ClockSourceITR Mcu.Pin148=VP_TIM3_VS_ClockSourceINT
Mcu.Pin149=VP_TIM5_VS_ClockSourceINT Mcu.Pin149=VP_TIM3_VS_ClockSourceITR
Mcu.Pin15=PB7 Mcu.Pin15=PB7
Mcu.Pin150=VP_TIM8_VS_ClockSourceINT Mcu.Pin150=VP_TIM5_VS_ClockSourceINT
Mcu.Pin151=VP_TIM8_VS_ClockSourceINT
Mcu.Pin16=PG15 Mcu.Pin16=PG15
Mcu.Pin17=PG11 Mcu.Pin17=PG11
Mcu.Pin18=PJ13 Mcu.Pin18=PJ13
@ -164,61 +165,61 @@ Mcu.Pin47=PI0
Mcu.Pin48=PA9 Mcu.Pin48=PA9
Mcu.Pin49=PC15/OSC32_OUT Mcu.Pin49=PC15/OSC32_OUT
Mcu.Pin5=PB8 Mcu.Pin5=PB8
Mcu.Pin50=PK1 Mcu.Pin50=PI11
Mcu.Pin51=PK2 Mcu.Pin51=PK1
Mcu.Pin52=PA8 Mcu.Pin52=PK2
Mcu.Pin53=PH0/OSC_IN Mcu.Pin53=PA8
Mcu.Pin54=PF2 Mcu.Pin54=PH0/OSC_IN
Mcu.Pin55=PI13 Mcu.Pin55=PF2
Mcu.Pin56=PI15 Mcu.Pin56=PI13
Mcu.Pin57=PJ11 Mcu.Pin57=PI15
Mcu.Pin58=PK0 Mcu.Pin58=PJ11
Mcu.Pin59=PC7 Mcu.Pin59=PK0
Mcu.Pin6=PB5 Mcu.Pin6=PB5
Mcu.Pin60=PH1/OSC_OUT Mcu.Pin60=PC7
Mcu.Pin61=PF3 Mcu.Pin61=PH1/OSC_OUT
Mcu.Pin62=PI14 Mcu.Pin62=PF3
Mcu.Pin63=PH4 Mcu.Pin63=PI14
Mcu.Pin64=PJ8 Mcu.Pin64=PH4
Mcu.Pin65=PJ10 Mcu.Pin65=PJ8
Mcu.Pin66=PG8 Mcu.Pin66=PJ10
Mcu.Pin67=PC6 Mcu.Pin67=PG8
Mcu.Pin68=PF4 Mcu.Pin68=PC6
Mcu.Pin69=PH5 Mcu.Pin69=PF4
Mcu.Pin7=PB4 Mcu.Pin7=PB4
Mcu.Pin70=PH3 Mcu.Pin70=PH5
Mcu.Pin71=PJ7 Mcu.Pin71=PH3
Mcu.Pin72=PJ9 Mcu.Pin72=PJ7
Mcu.Pin73=PG7 Mcu.Pin73=PJ9
Mcu.Pin74=PF7 Mcu.Pin74=PG7
Mcu.Pin75=PF5 Mcu.Pin75=PF7
Mcu.Pin76=PH2 Mcu.Pin76=PF5
Mcu.Pin77=PJ6 Mcu.Pin77=PH2
Mcu.Pin78=PD15 Mcu.Pin78=PJ6
Mcu.Pin79=PB13 Mcu.Pin79=PD15
Mcu.Pin8=PA15 Mcu.Pin8=PA15
Mcu.Pin80=PD10 Mcu.Pin80=PB13
Mcu.Pin81=PF10 Mcu.Pin81=PD10
Mcu.Pin82=PF9 Mcu.Pin82=PF10
Mcu.Pin83=PF8 Mcu.Pin83=PF9
Mcu.Pin84=PC3 Mcu.Pin84=PF8
Mcu.Pin85=PD14 Mcu.Pin85=PC3
Mcu.Pin86=PB12 Mcu.Pin86=PD14
Mcu.Pin87=PD9 Mcu.Pin87=PB12
Mcu.Pin88=PD8 Mcu.Pin88=PD9
Mcu.Pin89=PC0 Mcu.Pin89=PD8
Mcu.Pin9=PA14 Mcu.Pin9=PA14
Mcu.Pin90=PC1 Mcu.Pin90=PC0
Mcu.Pin91=PC2 Mcu.Pin91=PC1
Mcu.Pin92=PF12 Mcu.Pin92=PC2
Mcu.Pin93=PG1 Mcu.Pin93=PF12
Mcu.Pin94=PF15 Mcu.Pin94=PG1
Mcu.Pin95=PJ4 Mcu.Pin95=PF15
Mcu.Pin96=PG3 Mcu.Pin96=PJ4
Mcu.Pin97=PG2 Mcu.Pin97=PG3
Mcu.Pin98=PJ5 Mcu.Pin98=PG2
Mcu.Pin99=PH12 Mcu.Pin99=PJ5
Mcu.PinsNb=151 Mcu.PinsNb=152
Mcu.ThirdPartyNb=0 Mcu.ThirdPartyNb=0
Mcu.UserConstants= Mcu.UserConstants=
Mcu.UserName=STM32F746NGHx Mcu.UserName=STM32F746NGHx
@ -227,6 +228,7 @@ MxDb.Version=DB.6.0.10
NVIC.BusFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false NVIC.BusFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false
NVIC.DebugMonitor_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false NVIC.DebugMonitor_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false
NVIC.ETH_IRQn=true\:5\:0\:false\:false\:true\:true\:false\:true NVIC.ETH_IRQn=true\:5\:0\:false\:false\:true\:true\:false\:true
NVIC.EXTI9_5_IRQn=true\:5\:0\:false\:false\:true\:true\:true\:true
NVIC.ForceEnableDMAVector=true NVIC.ForceEnableDMAVector=true
NVIC.HardFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false NVIC.HardFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false
NVIC.LTDC_IRQn=true\:5\:0\:false\:false\:true\:true\:true\:true NVIC.LTDC_IRQn=true\:5\:0\:false\:false\:true\:true\:true\:true
@ -278,9 +280,9 @@ PA5.Signal=USB_OTG_HS_ULPI_CK
PA7.Mode=RMII PA7.Mode=RMII
PA7.Signal=ETH_CRS_DV PA7.Signal=ETH_CRS_DV
PA8.GPIOParameters=GPIO_Label PA8.GPIOParameters=GPIO_Label
PA8.GPIO_Label=BP1 PA8.GPIO_Label=PB
PA8.Locked=true PA8.Locked=true
PA8.Signal=GPIO_Input PA8.Signal=GPXTI8
PA9.GPIOParameters=GPIO_Speed,GPIO_PuPd,GPIO_Label,GPIO_Mode PA9.GPIOParameters=GPIO_Speed,GPIO_PuPd,GPIO_Label,GPIO_Mode
PA9.GPIO_Label=VCP_TX [STM32F103CBT6_PA3] PA9.GPIO_Label=VCP_TX [STM32F103CBT6_PA3]
PA9.GPIO_Mode=GPIO_MODE_AF_PP PA9.GPIO_Mode=GPIO_MODE_AF_PP
@ -555,6 +557,10 @@ PI10.GPIO_Label=LCD_HSYNC [RK043FN48H-CT672B_HSYNC]
PI10.Locked=true PI10.Locked=true
PI10.Mode=RGB888 PI10.Mode=RGB888
PI10.Signal=LTDC_HSYNC PI10.Signal=LTDC_HSYNC
PI11.GPIOParameters=GPIO_Label
PI11.GPIO_Label=BP_interrupt1
PI11.Locked=true
PI11.Signal=GPXTI11
PI12.GPIOParameters=PinState,GPIO_Label PI12.GPIOParameters=PinState,GPIO_Label
PI12.GPIO_Label=LCD_DISP [RK043FN48H-CT672B_DISP] PI12.GPIO_Label=LCD_DISP [RK043FN48H-CT672B_DISP]
PI12.Locked=true PI12.Locked=true
@ -883,10 +889,14 @@ SH.FMC_SDNRAS.0=FMC_SDNRAS,12b-sda1
SH.FMC_SDNRAS.ConfNb=1 SH.FMC_SDNRAS.ConfNb=1
SH.FMC_SDNWE.0=FMC_SDNWE,12b-sda1 SH.FMC_SDNWE.0=FMC_SDNWE,12b-sda1
SH.FMC_SDNWE.ConfNb=1 SH.FMC_SDNWE.ConfNb=1
SH.GPXTI11.0=GPIO_EXTI11
SH.GPXTI11.ConfNb=1
SH.GPXTI13.0=GPIO_EXTI13 SH.GPXTI13.0=GPIO_EXTI13
SH.GPXTI13.ConfNb=1 SH.GPXTI13.ConfNb=1
SH.GPXTI6.0=GPIO_EXTI6 SH.GPXTI6.0=GPIO_EXTI6
SH.GPXTI6.ConfNb=1 SH.GPXTI6.ConfNb=1
SH.GPXTI8.0=GPIO_EXTI8
SH.GPXTI8.ConfNb=1
SH.S_TIM3_CH1.0=TIM3_CH1,PWM Generation1 CH1 SH.S_TIM3_CH1.0=TIM3_CH1,PWM Generation1 CH1
SH.S_TIM3_CH1.ConfNb=1 SH.S_TIM3_CH1.ConfNb=1
SH.S_TIM8_CH4.0=TIM8_CH4,PWM Generation4 CH4 SH.S_TIM8_CH4.0=TIM8_CH4,PWM Generation4 CH4