add struct cmd and change UART port

This commit is contained in:
2026-06-20 16:29:59 +02:00
parent 82e12d1ec5
commit 84c6dfb282
19 changed files with 6977 additions and 8443 deletions
+1 -1
View File
File diff suppressed because one or more lines are too long
+12 -1
View File
@@ -117,7 +117,18 @@ struct prng {
unsigned long long seed;
unsigned long long output;
//unsigned int checksum;
} /*__attribute__((packed))*/;
};
#define CSPRNG_VERS 0x1
/* Define all commands */
#define CSPRNG_CMD_GET_RNG 0x10
struct cmd{
int version;
int cmd;
};
/* USER CODE END Private defines */
-1
View File
@@ -55,7 +55,6 @@ void SVC_Handler(void);
void DebugMon_Handler(void);
void PendSV_Handler(void);
void SysTick_Handler(void);
void USART3_IRQHandler(void);
/* USER CODE BEGIN EFP */
/* USER CODE END EFP */
+41 -4
View File
@@ -54,6 +54,7 @@ ETH_HandleTypeDef heth;
RNG_HandleTypeDef hrng;
UART_HandleTypeDef huart3;
UART_HandleTypeDef huart6;
PCD_HandleTypeDef hpcd_USB_OTG_FS;
@@ -68,6 +69,7 @@ static void MX_ETH_Init(void);
static void MX_USART3_UART_Init(void);
static void MX_USB_OTG_FS_PCD_Init(void);
static void MX_RNG_Init(void);
static void MX_USART6_UART_Init(void);
/* USER CODE BEGIN PFP */
/* USER CODE END PFP */
@@ -278,6 +280,7 @@ int main(void)
MX_USART3_UART_Init();
MX_USB_OTG_FS_PCD_Init();
MX_RNG_Init();
MX_USART6_UART_Init();
/* USER CODE BEGIN 2 */
init_entropy();
@@ -288,17 +291,18 @@ int main(void)
uint8_t buffer[sizeof(struct prng)];
uint8_t buf_recv;
uint8_t buf_recv[sizeof(struct cmd)];
while (1)
{
/* USER CODE END WHILE */
/* USER CODE BEGIN 3 */
HAL_StatusTypeDef status = HAL_UART_Receive(&huart3, &buf_recv, 1, 100);
HAL_StatusTypeDef status = HAL_UART_Receive(&huart6, buf_recv, sizeof(struct cmd), 100);
if (status == HAL_OK){
if (buf_recv == 1){
struct cmd *s_cmd = (struct cmd *)buf_recv;
if (s_cmd->cmd == CSPRNG_CMD_GET_RNG){
struct prng s_prng = {0};
memset(buffer, 0, sizeof(struct prng));
@@ -309,7 +313,7 @@ int main(void)
s_prng.output = random;
memcpy(buffer, &s_prng, sizeof(struct prng));
HAL_StatusTypeDef s = HAL_UART_Transmit(&huart3, buffer, sizeof(struct prng), 0xF);
HAL_StatusTypeDef s = HAL_UART_Transmit(&huart6, buffer, sizeof(struct prng), 0xF);
// We have finished, we disable the pin
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0, GPIO_PIN_RESET);
@@ -473,6 +477,39 @@ static void MX_USART3_UART_Init(void)
}
/**
* @brief USART6 Initialization Function
* @param None
* @retval None
*/
static void MX_USART6_UART_Init(void)
{
/* USER CODE BEGIN USART6_Init 0 */
/* USER CODE END USART6_Init 0 */
/* USER CODE BEGIN USART6_Init 1 */
/* USER CODE END USART6_Init 1 */
huart6.Instance = USART6;
huart6.Init.BaudRate = 115200;
huart6.Init.WordLength = UART_WORDLENGTH_8B;
huart6.Init.StopBits = UART_STOPBITS_1;
huart6.Init.Parity = UART_PARITY_NONE;
huart6.Init.Mode = UART_MODE_TX_RX;
huart6.Init.HwFlowCtl = UART_HWCONTROL_NONE;
huart6.Init.OverSampling = UART_OVERSAMPLING_16;
if (HAL_UART_Init(&huart6) != HAL_OK)
{
Error_Handler();
}
/* USER CODE BEGIN USART6_Init 2 */
/* USER CODE END USART6_Init 2 */
}
/**
* @brief USB_OTG_FS Initialization Function
* @param None
+41 -5
View File
@@ -260,13 +260,33 @@ void HAL_UART_MspInit(UART_HandleTypeDef* huart)
GPIO_InitStruct.Alternate = GPIO_AF7_USART3;
HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
/* USART3 interrupt Init */
HAL_NVIC_SetPriority(USART3_IRQn, 0, 0);
HAL_NVIC_EnableIRQ(USART3_IRQn);
/* USER CODE BEGIN USART3_MspInit 1 */
/* USER CODE END USART3_MspInit 1 */
}
else if(huart->Instance==USART6)
{
/* USER CODE BEGIN USART6_MspInit 0 */
/* USER CODE END USART6_MspInit 0 */
/* Peripheral clock enable */
__HAL_RCC_USART6_CLK_ENABLE();
__HAL_RCC_GPIOG_CLK_ENABLE();
/**USART6 GPIO Configuration
PG9 ------> USART6_RX
PG14 ------> USART6_TX
*/
GPIO_InitStruct.Pin = GPIO_PIN_9|GPIO_PIN_14;
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
GPIO_InitStruct.Alternate = GPIO_AF8_USART6;
HAL_GPIO_Init(GPIOG, &GPIO_InitStruct);
/* USER CODE BEGIN USART6_MspInit 1 */
/* USER CODE END USART6_MspInit 1 */
}
}
@@ -293,12 +313,28 @@ void HAL_UART_MspDeInit(UART_HandleTypeDef* huart)
*/
HAL_GPIO_DeInit(GPIOD, STLK_RX_Pin|STLK_TX_Pin);
/* USART3 interrupt DeInit */
HAL_NVIC_DisableIRQ(USART3_IRQn);
/* USER CODE BEGIN USART3_MspDeInit 1 */
/* USER CODE END USART3_MspDeInit 1 */
}
else if(huart->Instance==USART6)
{
/* USER CODE BEGIN USART6_MspDeInit 0 */
/* USER CODE END USART6_MspDeInit 0 */
/* Peripheral clock disable */
__HAL_RCC_USART6_CLK_DISABLE();
/**USART6 GPIO Configuration
PG9 ------> USART6_RX
PG14 ------> USART6_TX
*/
HAL_GPIO_DeInit(GPIOG, GPIO_PIN_9|GPIO_PIN_14);
/* USER CODE BEGIN USART6_MspDeInit 1 */
/* USER CODE END USART6_MspDeInit 1 */
}
}
+1 -15
View File
@@ -55,7 +55,7 @@
/* USER CODE END 0 */
/* External variables --------------------------------------------------------*/
extern UART_HandleTypeDef huart3;
/* USER CODE BEGIN EV */
/* USER CODE END EV */
@@ -198,20 +198,6 @@ void SysTick_Handler(void)
/* please refer to the startup file (startup_stm32f4xx.s). */
/******************************************************************************/
/**
* @brief This function handles USART3 global interrupt.
*/
void USART3_IRQHandler(void)
{
/* USER CODE BEGIN USART3_IRQn 0 */
/* USER CODE END USART3_IRQn 0 */
HAL_UART_IRQHandler(&huart3);
/* USER CODE BEGIN USART3_IRQn 1 */
/* USER CODE END USART3_IRQn 1 */
}
/* USER CODE BEGIN 1 */
/* USER CODE END 1 */
+19 -18
View File
@@ -1,18 +1,19 @@
../Core/Src/main.c:81:6:init_entropy 2
../Core/Src/main.c:101:13:generateEntropy 6
../Core/Src/main.c:133:14:prng 2
../Core/Src/main.c:154:13:prime_number_finder 3
../Core/Src/main.c:161:12:isPrimeNumber 3
../Core/Src/main.c:171:12:gcd 2
../Core/Src/main.c:177:14:random_range 1
../Core/Src/main.c:185:23:csum 2
../Core/Src/main.c:201:27:bbs 4
../Core/Src/main.c:252:5:main 3
../Core/Src/main.c:327:6:SystemClock_Config 3
../Core/Src/main.c:373:13:MX_ETH_Init 2
../Core/Src/main.c:422:13:MX_RNG_Init 2
../Core/Src/main.c:448:13:MX_USART3_UART_Init 2
../Core/Src/main.c:481:13:MX_USB_OTG_FS_PCD_Init 2
../Core/Src/main.c:516:13:MX_GPIO_Init 1
../Core/Src/main.c:569:6:HAL_UART_TxCpltCallback 2
../Core/Src/main.c:580:6:Error_Handler 1
../Core/Src/main.c:83:6:init_entropy 2
../Core/Src/main.c:103:13:generateEntropy 6
../Core/Src/main.c:135:14:prng 2
../Core/Src/main.c:156:13:prime_number_finder 3
../Core/Src/main.c:163:12:isPrimeNumber 3
../Core/Src/main.c:173:12:gcd 2
../Core/Src/main.c:179:14:random_range 1
../Core/Src/main.c:187:23:csum 2
../Core/Src/main.c:203:27:bbs 4
../Core/Src/main.c:254:5:main 3
../Core/Src/main.c:331:6:SystemClock_Config 3
../Core/Src/main.c:377:13:MX_ETH_Init 2
../Core/Src/main.c:426:13:MX_RNG_Init 2
../Core/Src/main.c:452:13:MX_USART3_UART_Init 2
../Core/Src/main.c:485:13:MX_USART6_UART_Init 2
../Core/Src/main.c:518:13:MX_USB_OTG_FS_PCD_Init 2
../Core/Src/main.c:553:13:MX_GPIO_Init 1
../Core/Src/main.c:606:6:HAL_UART_TxCpltCallback 2
../Core/Src/main.c:617:6:Error_Handler 1
Binary file not shown.
+19 -18
View File
@@ -1,18 +1,19 @@
../Core/Src/main.c:81:6:init_entropy 8 static
../Core/Src/main.c:101:13:generateEntropy 24 static
../Core/Src/main.c:133:14:prng 16 static
../Core/Src/main.c:154:13:prime_number_finder 16 static
../Core/Src/main.c:161:12:isPrimeNumber 24 static
../Core/Src/main.c:171:12:gcd 16 static
../Core/Src/main.c:177:14:random_range 24 static
../Core/Src/main.c:185:23:csum 24 static
../Core/Src/main.c:201:27:bbs 288 static
../Core/Src/main.c:252:5:main 88 static
../Core/Src/main.c:327:6:SystemClock_Config 88 static
../Core/Src/main.c:373:13:MX_ETH_Init 8 static
../Core/Src/main.c:422:13:MX_RNG_Init 8 static
../Core/Src/main.c:448:13:MX_USART3_UART_Init 8 static
../Core/Src/main.c:481:13:MX_USB_OTG_FS_PCD_Init 8 static
../Core/Src/main.c:516:13:MX_GPIO_Init 56 static
../Core/Src/main.c:569:6:HAL_UART_TxCpltCallback 16 static
../Core/Src/main.c:580:6:Error_Handler 4 static,ignoring_inline_asm
../Core/Src/main.c:83:6:init_entropy 8 static
../Core/Src/main.c:103:13:generateEntropy 24 static
../Core/Src/main.c:135:14:prng 16 static
../Core/Src/main.c:156:13:prime_number_finder 16 static
../Core/Src/main.c:163:12:isPrimeNumber 24 static
../Core/Src/main.c:173:12:gcd 16 static
../Core/Src/main.c:179:14:random_range 24 static
../Core/Src/main.c:187:23:csum 24 static
../Core/Src/main.c:203:27:bbs 288 static
../Core/Src/main.c:254:5:main 96 static
../Core/Src/main.c:331:6:SystemClock_Config 88 static
../Core/Src/main.c:377:13:MX_ETH_Init 8 static
../Core/Src/main.c:426:13:MX_RNG_Init 8 static
../Core/Src/main.c:452:13:MX_USART3_UART_Init 8 static
../Core/Src/main.c:485:13:MX_USART6_UART_Init 8 static
../Core/Src/main.c:518:13:MX_USB_OTG_FS_PCD_Init 8 static
../Core/Src/main.c:553:13:MX_GPIO_Init 56 static
../Core/Src/main.c:606:6:HAL_UART_TxCpltCallback 16 static
../Core/Src/main.c:617:6:Error_Handler 4 static,ignoring_inline_asm
+4 -4
View File
@@ -3,7 +3,7 @@
../Core/Src/stm32f4xx_hal_msp.c:153:6:HAL_ETH_MspDeInit 2
../Core/Src/stm32f4xx_hal_msp.c:195:6:HAL_RNG_MspInit 2
../Core/Src/stm32f4xx_hal_msp.c:218:6:HAL_RNG_MspDeInit 2
../Core/Src/stm32f4xx_hal_msp.c:240:6:HAL_UART_MspInit 2
../Core/Src/stm32f4xx_hal_msp.c:280:6:HAL_UART_MspDeInit 2
../Core/Src/stm32f4xx_hal_msp.c:311:6:HAL_PCD_MspInit 2
../Core/Src/stm32f4xx_hal_msp.c:356:6:HAL_PCD_MspDeInit 2
../Core/Src/stm32f4xx_hal_msp.c:240:6:HAL_UART_MspInit 3
../Core/Src/stm32f4xx_hal_msp.c:300:6:HAL_UART_MspDeInit 3
../Core/Src/stm32f4xx_hal_msp.c:347:6:HAL_PCD_MspInit 2
../Core/Src/stm32f4xx_hal_msp.c:392:6:HAL_PCD_MspDeInit 2
Binary file not shown.
+4 -4
View File
@@ -3,7 +3,7 @@
../Core/Src/stm32f4xx_hal_msp.c:153:6:HAL_ETH_MspDeInit 16 static
../Core/Src/stm32f4xx_hal_msp.c:195:6:HAL_RNG_MspInit 24 static
../Core/Src/stm32f4xx_hal_msp.c:218:6:HAL_RNG_MspDeInit 16 static
../Core/Src/stm32f4xx_hal_msp.c:240:6:HAL_UART_MspInit 48 static
../Core/Src/stm32f4xx_hal_msp.c:280:6:HAL_UART_MspDeInit 16 static
../Core/Src/stm32f4xx_hal_msp.c:311:6:HAL_PCD_MspInit 48 static
../Core/Src/stm32f4xx_hal_msp.c:356:6:HAL_PCD_MspDeInit 16 static
../Core/Src/stm32f4xx_hal_msp.c:240:6:HAL_UART_MspInit 56 static
../Core/Src/stm32f4xx_hal_msp.c:300:6:HAL_UART_MspDeInit 16 static
../Core/Src/stm32f4xx_hal_msp.c:347:6:HAL_PCD_MspInit 48 static
../Core/Src/stm32f4xx_hal_msp.c:392:6:HAL_PCD_MspDeInit 16 static
-1
View File
@@ -7,4 +7,3 @@
../Core/Src/stm32f4xx_it.c:157:6:DebugMon_Handler 1
../Core/Src/stm32f4xx_it.c:170:6:PendSV_Handler 1
../Core/Src/stm32f4xx_it.c:183:6:SysTick_Handler 1
../Core/Src/stm32f4xx_it.c:204:6:USART3_IRQHandler 1
Binary file not shown.
-1
View File
@@ -7,4 +7,3 @@
../Core/Src/stm32f4xx_it.c:157:6:DebugMon_Handler 4 static
../Core/Src/stm32f4xx_it.c:170:6:PendSV_Handler 4 static
../Core/Src/stm32f4xx_it.c:183:6:SysTick_Handler 8 static
../Core/Src/stm32f4xx_it.c:204:6:USART3_IRQHandler 8 static
BIN
View File
Binary file not shown.
+5691 -7229
View File
File diff suppressed because it is too large Load Diff
+522 -530
View File
File diff suppressed because it is too large Load Diff
+21 -10
View File
@@ -17,8 +17,9 @@ Mcu.IP2=RCC
Mcu.IP3=RNG
Mcu.IP4=SYS
Mcu.IP5=USART3
Mcu.IP6=USB_OTG_FS
Mcu.IPNb=7
Mcu.IP6=USART6
Mcu.IP7=USB_OTG_FS
Mcu.IPNb=8
Mcu.Name=STM32F439Z(G-I)Tx
Mcu.Package=LQFP144
Mcu.Pin0=PC13
@@ -39,19 +40,21 @@ Mcu.Pin21=PA11
Mcu.Pin22=PA12
Mcu.Pin23=PA13
Mcu.Pin24=PA14
Mcu.Pin25=PG11
Mcu.Pin26=PG13
Mcu.Pin27=PB7
Mcu.Pin28=VP_RNG_VS_RNG
Mcu.Pin29=VP_SYS_VS_Systick
Mcu.Pin25=PG9
Mcu.Pin26=PG11
Mcu.Pin27=PG13
Mcu.Pin28=PG14
Mcu.Pin29=PB7
Mcu.Pin3=PH0/OSC_IN
Mcu.Pin30=VP_RNG_VS_RNG
Mcu.Pin31=VP_SYS_VS_Systick
Mcu.Pin4=PH1/OSC_OUT
Mcu.Pin5=PC1
Mcu.Pin6=PA1
Mcu.Pin7=PA2
Mcu.Pin8=PA7
Mcu.Pin9=PC4
Mcu.PinsNb=30
Mcu.PinsNb=32
Mcu.ThirdPartyNb=0
Mcu.UserConstants=
Mcu.UserName=STM32F439ZITx
@@ -67,7 +70,7 @@ NVIC.PendSV_IRQn=true\:0\:0\:false\:false\:true\:true\:false\:false
NVIC.PriorityGroup=NVIC_PRIORITYGROUP_4
NVIC.SVCall_IRQn=true\:0\:0\:false\:false\:true\:true\:false\:false
NVIC.SysTick_IRQn=true\:0\:0\:false\:false\:true\:true\:true\:false
NVIC.USART3_IRQn=true\:0\:0\:false\:false\:true\:true\:true\:true
NVIC.USART6_IRQn=true\:0\:0\:false\:false\:true\:true\:true\:true
NVIC.UsageFault_IRQn=true\:0\:0\:false\:false\:true\:true\:false\:false
PA1.GPIOParameters=GPIO_Label
PA1.GPIO_Label=RMII_REF_CLK [LAN8742A-CZ-TR_REFCLK0]
@@ -188,6 +191,9 @@ PG13.GPIO_Label=RMII_TXD0 [LAN8742A-CZ-TR_TXD0]
PG13.Locked=true
PG13.Mode=RMII
PG13.Signal=ETH_TXD0
PG14.Locked=true
PG14.Mode=Asynchronous
PG14.Signal=USART6_TX
PG6.GPIOParameters=GPIO_Label
PG6.GPIO_Label=USB_PowerSwitchOn [STMPS2151STR_EN]
PG6.Locked=true
@@ -196,6 +202,9 @@ PG7.GPIOParameters=GPIO_Label
PG7.GPIO_Label=USB_OverCurrent [STMPS2151STR_FAULT]
PG7.Locked=true
PG7.Signal=GPIO_Input
PG9.Locked=true
PG9.Mode=Asynchronous
PG9.Signal=USART6_RX
PH0/OSC_IN.GPIOParameters=GPIO_Label
PH0/OSC_IN.GPIO_Label=MCO [STM32F103CBT6_PA8]
PH0/OSC_IN.Locked=true
@@ -236,7 +245,7 @@ ProjectManager.ToolChainLocation=
ProjectManager.UAScriptAfterPath=
ProjectManager.UAScriptBeforePath=
ProjectManager.UnderRoot=true
ProjectManager.functionlistsort=1-SystemClock_Config-RCC-false-HAL-false,2-MX_GPIO_Init-GPIO-false-HAL-true,3-MX_ETH_Init-ETH-false-HAL-true,4-MX_USART3_UART_Init-USART3-false-HAL-true,5-MX_USB_OTG_FS_PCD_Init-USB_OTG_FS-false-HAL-true,6-MX_RNG_Init-RNG-false-HAL-true
ProjectManager.functionlistsort=1-SystemClock_Config-RCC-false-HAL-false,2-MX_GPIO_Init-GPIO-false-HAL-true,3-MX_ETH_Init-ETH-false-HAL-true,4-MX_USART3_UART_Init-USART3-false-HAL-true,5-MX_USB_OTG_FS_PCD_Init-USB_OTG_FS-false-HAL-true,6-MX_RNG_Init-RNG-false-HAL-true,7-MX_USART6_UART_Init-USART6-false-HAL-true
RCC.48MHZClocksFreq_Value=48000000
RCC.ADC12outputFreq_Value=72000000
RCC.ADC34outputFreq_Value=72000000
@@ -308,6 +317,8 @@ SH.GPXTI13.0=GPIO_EXTI13
SH.GPXTI13.ConfNb=1
USART3.IPParameters=VirtualMode
USART3.VirtualMode=VM_ASYNC
USART6.IPParameters=VirtualMode
USART6.VirtualMode=VM_ASYNC
USB_OTG_FS.IPParameters=VirtualMode
USB_OTG_FS.VirtualMode=Device_Only
VP_RNG_VS_RNG.Mode=RNG_Activate