Commit 0880f2d3 by Enrico Pozzobon

f7 working i don't know what I did

parent ca3e26f9
...@@ -76,22 +76,8 @@ void Error_Handler(void); ...@@ -76,22 +76,8 @@ void Error_Handler(void);
#define USER_Btn_GPIO_Port GPIOC #define USER_Btn_GPIO_Port GPIOC
#define MCO_Pin LL_GPIO_PIN_0 #define MCO_Pin LL_GPIO_PIN_0
#define MCO_GPIO_Port GPIOH #define MCO_GPIO_Port GPIOH
#define RMII_MDC_Pin LL_GPIO_PIN_1
#define RMII_MDC_GPIO_Port GPIOC
#define RMII_REF_CLK_Pin LL_GPIO_PIN_1
#define RMII_REF_CLK_GPIO_Port GPIOA
#define RMII_MDIO_Pin LL_GPIO_PIN_2
#define RMII_MDIO_GPIO_Port GPIOA
#define RMII_CRS_DV_Pin LL_GPIO_PIN_7
#define RMII_CRS_DV_GPIO_Port GPIOA
#define RMII_RXD0_Pin LL_GPIO_PIN_4
#define RMII_RXD0_GPIO_Port GPIOC
#define RMII_RXD1_Pin LL_GPIO_PIN_5
#define RMII_RXD1_GPIO_Port GPIOC
#define LD1_Pin LL_GPIO_PIN_0 #define LD1_Pin LL_GPIO_PIN_0
#define LD1_GPIO_Port GPIOB #define LD1_GPIO_Port GPIOB
#define RMII_TXD1_Pin LL_GPIO_PIN_13
#define RMII_TXD1_GPIO_Port GPIOB
#define LD3_Pin LL_GPIO_PIN_14 #define LD3_Pin LL_GPIO_PIN_14
#define LD3_GPIO_Port GPIOB #define LD3_GPIO_Port GPIOB
#define STLK_RX_Pin LL_GPIO_PIN_8 #define STLK_RX_Pin LL_GPIO_PIN_8
...@@ -102,26 +88,12 @@ void Error_Handler(void); ...@@ -102,26 +88,12 @@ void Error_Handler(void);
#define USB_PowerSwitchOn_GPIO_Port GPIOG #define USB_PowerSwitchOn_GPIO_Port GPIOG
#define USB_OverCurrent_Pin LL_GPIO_PIN_7 #define USB_OverCurrent_Pin LL_GPIO_PIN_7
#define USB_OverCurrent_GPIO_Port GPIOG #define USB_OverCurrent_GPIO_Port GPIOG
#define USB_SOF_Pin LL_GPIO_PIN_8
#define USB_SOF_GPIO_Port GPIOA
#define USB_VBUS_Pin LL_GPIO_PIN_9
#define USB_VBUS_GPIO_Port GPIOA
#define USB_ID_Pin LL_GPIO_PIN_10
#define USB_ID_GPIO_Port GPIOA
#define USB_DM_Pin LL_GPIO_PIN_11
#define USB_DM_GPIO_Port GPIOA
#define USB_DP_Pin LL_GPIO_PIN_12
#define USB_DP_GPIO_Port GPIOA
#define TMS_Pin LL_GPIO_PIN_13 #define TMS_Pin LL_GPIO_PIN_13
#define TMS_GPIO_Port GPIOA #define TMS_GPIO_Port GPIOA
#define TCK_Pin LL_GPIO_PIN_14 #define TCK_Pin LL_GPIO_PIN_14
#define TCK_GPIO_Port GPIOA #define TCK_GPIO_Port GPIOA
#define RMII_TX_EN_Pin LL_GPIO_PIN_11 #define CRYPTO_BUSY_Pin LL_GPIO_PIN_7
#define RMII_TX_EN_GPIO_Port GPIOG #define CRYPTO_BUSY_GPIO_Port GPIOD
#define RMII_TXD0_Pin LL_GPIO_PIN_13
#define RMII_TXD0_GPIO_Port GPIOG
#define SW0_Pin LL_GPIO_PIN_3
#define SW0_GPIO_Port GPIOB
#define LD2_Pin LL_GPIO_PIN_7 #define LD2_Pin LL_GPIO_PIN_7
#define LD2_GPIO_Port GPIOB #define LD2_GPIO_Port GPIOB
#ifndef NVIC_PRIORITYGROUP_0 #ifndef NVIC_PRIORITYGROUP_0
......
...@@ -56,6 +56,7 @@ void SVC_Handler(void); ...@@ -56,6 +56,7 @@ void SVC_Handler(void);
void DebugMon_Handler(void); void DebugMon_Handler(void);
void PendSV_Handler(void); void PendSV_Handler(void);
void SysTick_Handler(void); void SysTick_Handler(void);
void USART2_IRQHandler(void);
/* USER CODE BEGIN EFP */ /* USER CODE BEGIN EFP */
/* USER CODE END EFP */ /* USER CODE END EFP */
......
#pragma once #pragma once
void test_setup(); void test_setup();
void test_loop(); void test_loop();
void test_uart_handler();
...@@ -182,21 +182,20 @@ static void MX_USART2_UART_Init(void) ...@@ -182,21 +182,20 @@ static void MX_USART2_UART_Init(void)
/* Peripheral clock enable */ /* Peripheral clock enable */
LL_APB1_GRP1_EnableClock(LL_APB1_GRP1_PERIPH_USART2); LL_APB1_GRP1_EnableClock(LL_APB1_GRP1_PERIPH_USART2);
LL_AHB1_GRP1_EnableClock(LL_AHB1_GRP1_PERIPH_GPIOA);
LL_AHB1_GRP1_EnableClock(LL_AHB1_GRP1_PERIPH_GPIOD); LL_AHB1_GRP1_EnableClock(LL_AHB1_GRP1_PERIPH_GPIOD);
/**USART2 GPIO Configuration /**USART2 GPIO Configuration
PA3 ------> USART2_RX PD5 ------> USART2_TX
PD5 ------> USART2_TX PD6 ------> USART2_RX
*/ */
GPIO_InitStruct.Pin = LL_GPIO_PIN_3; GPIO_InitStruct.Pin = LL_GPIO_PIN_5;
GPIO_InitStruct.Mode = LL_GPIO_MODE_ALTERNATE; GPIO_InitStruct.Mode = LL_GPIO_MODE_ALTERNATE;
GPIO_InitStruct.Speed = LL_GPIO_SPEED_FREQ_VERY_HIGH; GPIO_InitStruct.Speed = LL_GPIO_SPEED_FREQ_VERY_HIGH;
GPIO_InitStruct.OutputType = LL_GPIO_OUTPUT_PUSHPULL; GPIO_InitStruct.OutputType = LL_GPIO_OUTPUT_PUSHPULL;
GPIO_InitStruct.Pull = LL_GPIO_PULL_NO; GPIO_InitStruct.Pull = LL_GPIO_PULL_NO;
GPIO_InitStruct.Alternate = LL_GPIO_AF_7; GPIO_InitStruct.Alternate = LL_GPIO_AF_7;
LL_GPIO_Init(GPIOA, &GPIO_InitStruct); LL_GPIO_Init(GPIOD, &GPIO_InitStruct);
GPIO_InitStruct.Pin = LL_GPIO_PIN_5; GPIO_InitStruct.Pin = LL_GPIO_PIN_6;
GPIO_InitStruct.Mode = LL_GPIO_MODE_ALTERNATE; GPIO_InitStruct.Mode = LL_GPIO_MODE_ALTERNATE;
GPIO_InitStruct.Speed = LL_GPIO_SPEED_FREQ_VERY_HIGH; GPIO_InitStruct.Speed = LL_GPIO_SPEED_FREQ_VERY_HIGH;
GPIO_InitStruct.OutputType = LL_GPIO_OUTPUT_PUSHPULL; GPIO_InitStruct.OutputType = LL_GPIO_OUTPUT_PUSHPULL;
...@@ -204,6 +203,10 @@ static void MX_USART2_UART_Init(void) ...@@ -204,6 +203,10 @@ static void MX_USART2_UART_Init(void)
GPIO_InitStruct.Alternate = LL_GPIO_AF_7; GPIO_InitStruct.Alternate = LL_GPIO_AF_7;
LL_GPIO_Init(GPIOD, &GPIO_InitStruct); LL_GPIO_Init(GPIOD, &GPIO_InitStruct);
/* USART2 interrupt Init */
NVIC_SetPriority(USART2_IRQn, NVIC_EncodePriority(NVIC_GetPriorityGrouping(),0, 0));
NVIC_EnableIRQ(USART2_IRQn);
/* USER CODE BEGIN USART2_Init 1 */ /* USER CODE BEGIN USART2_Init 1 */
/* USER CODE END USART2_Init 1 */ /* USER CODE END USART2_Init 1 */
...@@ -295,10 +298,10 @@ static void MX_GPIO_Init(void) ...@@ -295,10 +298,10 @@ static void MX_GPIO_Init(void)
/* GPIO Ports Clock Enable */ /* GPIO Ports Clock Enable */
LL_AHB1_GRP1_EnableClock(LL_AHB1_GRP1_PERIPH_GPIOC); LL_AHB1_GRP1_EnableClock(LL_AHB1_GRP1_PERIPH_GPIOC);
LL_AHB1_GRP1_EnableClock(LL_AHB1_GRP1_PERIPH_GPIOH); LL_AHB1_GRP1_EnableClock(LL_AHB1_GRP1_PERIPH_GPIOH);
LL_AHB1_GRP1_EnableClock(LL_AHB1_GRP1_PERIPH_GPIOA);
LL_AHB1_GRP1_EnableClock(LL_AHB1_GRP1_PERIPH_GPIOB); LL_AHB1_GRP1_EnableClock(LL_AHB1_GRP1_PERIPH_GPIOB);
LL_AHB1_GRP1_EnableClock(LL_AHB1_GRP1_PERIPH_GPIOD); LL_AHB1_GRP1_EnableClock(LL_AHB1_GRP1_PERIPH_GPIOD);
LL_AHB1_GRP1_EnableClock(LL_AHB1_GRP1_PERIPH_GPIOG); LL_AHB1_GRP1_EnableClock(LL_AHB1_GRP1_PERIPH_GPIOG);
LL_AHB1_GRP1_EnableClock(LL_AHB1_GRP1_PERIPH_GPIOA);
/**/ /**/
LL_GPIO_ResetOutputPin(LD1_GPIO_Port, LD1_Pin); LL_GPIO_ResetOutputPin(LD1_GPIO_Port, LD1_Pin);
...@@ -313,6 +316,9 @@ static void MX_GPIO_Init(void) ...@@ -313,6 +316,9 @@ static void MX_GPIO_Init(void)
LL_GPIO_ResetOutputPin(LD2_GPIO_Port, LD2_Pin); LL_GPIO_ResetOutputPin(LD2_GPIO_Port, LD2_Pin);
/**/ /**/
LL_GPIO_SetOutputPin(CRYPTO_BUSY_GPIO_Port, CRYPTO_BUSY_Pin);
/**/
LL_SYSCFG_SetEXTISource(LL_SYSCFG_EXTI_PORTC, LL_SYSCFG_EXTI_LINE13); LL_SYSCFG_SetEXTISource(LL_SYSCFG_EXTI_PORTC, LL_SYSCFG_EXTI_LINE13);
/**/ /**/
...@@ -329,60 +335,6 @@ static void MX_GPIO_Init(void) ...@@ -329,60 +335,6 @@ static void MX_GPIO_Init(void)
LL_GPIO_SetPinMode(USER_Btn_GPIO_Port, USER_Btn_Pin, LL_GPIO_MODE_INPUT); LL_GPIO_SetPinMode(USER_Btn_GPIO_Port, USER_Btn_Pin, LL_GPIO_MODE_INPUT);
/**/ /**/
GPIO_InitStruct.Pin = RMII_MDC_Pin;
GPIO_InitStruct.Mode = LL_GPIO_MODE_ALTERNATE;
GPIO_InitStruct.Speed = LL_GPIO_SPEED_FREQ_VERY_HIGH;
GPIO_InitStruct.OutputType = LL_GPIO_OUTPUT_PUSHPULL;
GPIO_InitStruct.Pull = LL_GPIO_PULL_NO;
GPIO_InitStruct.Alternate = LL_GPIO_AF_11;
LL_GPIO_Init(RMII_MDC_GPIO_Port, &GPIO_InitStruct);
/**/
GPIO_InitStruct.Pin = RMII_REF_CLK_Pin;
GPIO_InitStruct.Mode = LL_GPIO_MODE_ALTERNATE;
GPIO_InitStruct.Speed = LL_GPIO_SPEED_FREQ_VERY_HIGH;
GPIO_InitStruct.OutputType = LL_GPIO_OUTPUT_PUSHPULL;
GPIO_InitStruct.Pull = LL_GPIO_PULL_NO;
GPIO_InitStruct.Alternate = LL_GPIO_AF_11;
LL_GPIO_Init(RMII_REF_CLK_GPIO_Port, &GPIO_InitStruct);
/**/
GPIO_InitStruct.Pin = RMII_MDIO_Pin;
GPIO_InitStruct.Mode = LL_GPIO_MODE_ALTERNATE;
GPIO_InitStruct.Speed = LL_GPIO_SPEED_FREQ_VERY_HIGH;
GPIO_InitStruct.OutputType = LL_GPIO_OUTPUT_PUSHPULL;
GPIO_InitStruct.Pull = LL_GPIO_PULL_NO;
GPIO_InitStruct.Alternate = LL_GPIO_AF_11;
LL_GPIO_Init(RMII_MDIO_GPIO_Port, &GPIO_InitStruct);
/**/
GPIO_InitStruct.Pin = RMII_CRS_DV_Pin;
GPIO_InitStruct.Mode = LL_GPIO_MODE_ALTERNATE;
GPIO_InitStruct.Speed = LL_GPIO_SPEED_FREQ_VERY_HIGH;
GPIO_InitStruct.OutputType = LL_GPIO_OUTPUT_PUSHPULL;
GPIO_InitStruct.Pull = LL_GPIO_PULL_NO;
GPIO_InitStruct.Alternate = LL_GPIO_AF_11;
LL_GPIO_Init(RMII_CRS_DV_GPIO_Port, &GPIO_InitStruct);
/**/
GPIO_InitStruct.Pin = RMII_RXD0_Pin;
GPIO_InitStruct.Mode = LL_GPIO_MODE_ALTERNATE;
GPIO_InitStruct.Speed = LL_GPIO_SPEED_FREQ_VERY_HIGH;
GPIO_InitStruct.OutputType = LL_GPIO_OUTPUT_PUSHPULL;
GPIO_InitStruct.Pull = LL_GPIO_PULL_NO;
GPIO_InitStruct.Alternate = LL_GPIO_AF_11;
LL_GPIO_Init(RMII_RXD0_GPIO_Port, &GPIO_InitStruct);
/**/
GPIO_InitStruct.Pin = RMII_RXD1_Pin;
GPIO_InitStruct.Mode = LL_GPIO_MODE_ALTERNATE;
GPIO_InitStruct.Speed = LL_GPIO_SPEED_FREQ_VERY_HIGH;
GPIO_InitStruct.OutputType = LL_GPIO_OUTPUT_PUSHPULL;
GPIO_InitStruct.Pull = LL_GPIO_PULL_NO;
GPIO_InitStruct.Alternate = LL_GPIO_AF_11;
LL_GPIO_Init(RMII_RXD1_GPIO_Port, &GPIO_InitStruct);
/**/
GPIO_InitStruct.Pin = LD1_Pin; GPIO_InitStruct.Pin = LD1_Pin;
GPIO_InitStruct.Mode = LL_GPIO_MODE_OUTPUT; GPIO_InitStruct.Mode = LL_GPIO_MODE_OUTPUT;
GPIO_InitStruct.Speed = LL_GPIO_SPEED_FREQ_LOW; GPIO_InitStruct.Speed = LL_GPIO_SPEED_FREQ_LOW;
...@@ -391,15 +343,6 @@ static void MX_GPIO_Init(void) ...@@ -391,15 +343,6 @@ static void MX_GPIO_Init(void)
LL_GPIO_Init(LD1_GPIO_Port, &GPIO_InitStruct); LL_GPIO_Init(LD1_GPIO_Port, &GPIO_InitStruct);
/**/ /**/
GPIO_InitStruct.Pin = RMII_TXD1_Pin;
GPIO_InitStruct.Mode = LL_GPIO_MODE_ALTERNATE;
GPIO_InitStruct.Speed = LL_GPIO_SPEED_FREQ_VERY_HIGH;
GPIO_InitStruct.OutputType = LL_GPIO_OUTPUT_PUSHPULL;
GPIO_InitStruct.Pull = LL_GPIO_PULL_NO;
GPIO_InitStruct.Alternate = LL_GPIO_AF_11;
LL_GPIO_Init(RMII_TXD1_GPIO_Port, &GPIO_InitStruct);
/**/
GPIO_InitStruct.Pin = LD3_Pin; GPIO_InitStruct.Pin = LD3_Pin;
GPIO_InitStruct.Mode = LL_GPIO_MODE_OUTPUT; GPIO_InitStruct.Mode = LL_GPIO_MODE_OUTPUT;
GPIO_InitStruct.Speed = LL_GPIO_SPEED_FREQ_LOW; GPIO_InitStruct.Speed = LL_GPIO_SPEED_FREQ_LOW;
...@@ -422,64 +365,12 @@ static void MX_GPIO_Init(void) ...@@ -422,64 +365,12 @@ static void MX_GPIO_Init(void)
LL_GPIO_Init(USB_OverCurrent_GPIO_Port, &GPIO_InitStruct); LL_GPIO_Init(USB_OverCurrent_GPIO_Port, &GPIO_InitStruct);
/**/ /**/
GPIO_InitStruct.Pin = USB_SOF_Pin; GPIO_InitStruct.Pin = CRYPTO_BUSY_Pin;
GPIO_InitStruct.Mode = LL_GPIO_MODE_ALTERNATE; GPIO_InitStruct.Mode = LL_GPIO_MODE_OUTPUT;
GPIO_InitStruct.Speed = LL_GPIO_SPEED_FREQ_VERY_HIGH;
GPIO_InitStruct.OutputType = LL_GPIO_OUTPUT_PUSHPULL;
GPIO_InitStruct.Pull = LL_GPIO_PULL_NO;
GPIO_InitStruct.Alternate = LL_GPIO_AF_10;
LL_GPIO_Init(USB_SOF_GPIO_Port, &GPIO_InitStruct);
/**/
GPIO_InitStruct.Pin = USB_VBUS_Pin;
GPIO_InitStruct.Mode = LL_GPIO_MODE_INPUT;
GPIO_InitStruct.Pull = LL_GPIO_PULL_NO;
LL_GPIO_Init(USB_VBUS_GPIO_Port, &GPIO_InitStruct);
/**/
GPIO_InitStruct.Pin = USB_ID_Pin;
GPIO_InitStruct.Mode = LL_GPIO_MODE_ALTERNATE;
GPIO_InitStruct.Speed = LL_GPIO_SPEED_FREQ_VERY_HIGH;
GPIO_InitStruct.OutputType = LL_GPIO_OUTPUT_PUSHPULL;
GPIO_InitStruct.Pull = LL_GPIO_PULL_NO;
GPIO_InitStruct.Alternate = LL_GPIO_AF_10;
LL_GPIO_Init(USB_ID_GPIO_Port, &GPIO_InitStruct);
/**/
GPIO_InitStruct.Pin = USB_DM_Pin;
GPIO_InitStruct.Mode = LL_GPIO_MODE_ALTERNATE;
GPIO_InitStruct.Speed = LL_GPIO_SPEED_FREQ_VERY_HIGH;
GPIO_InitStruct.OutputType = LL_GPIO_OUTPUT_PUSHPULL;
GPIO_InitStruct.Pull = LL_GPIO_PULL_NO;
GPIO_InitStruct.Alternate = LL_GPIO_AF_10;
LL_GPIO_Init(USB_DM_GPIO_Port, &GPIO_InitStruct);
/**/
GPIO_InitStruct.Pin = USB_DP_Pin;
GPIO_InitStruct.Mode = LL_GPIO_MODE_ALTERNATE;
GPIO_InitStruct.Speed = LL_GPIO_SPEED_FREQ_VERY_HIGH;
GPIO_InitStruct.OutputType = LL_GPIO_OUTPUT_PUSHPULL;
GPIO_InitStruct.Pull = LL_GPIO_PULL_NO;
GPIO_InitStruct.Alternate = LL_GPIO_AF_10;
LL_GPIO_Init(USB_DP_GPIO_Port, &GPIO_InitStruct);
/**/
GPIO_InitStruct.Pin = RMII_TX_EN_Pin;
GPIO_InitStruct.Mode = LL_GPIO_MODE_ALTERNATE;
GPIO_InitStruct.Speed = LL_GPIO_SPEED_FREQ_VERY_HIGH;
GPIO_InitStruct.OutputType = LL_GPIO_OUTPUT_PUSHPULL;
GPIO_InitStruct.Pull = LL_GPIO_PULL_NO;
GPIO_InitStruct.Alternate = LL_GPIO_AF_11;
LL_GPIO_Init(RMII_TX_EN_GPIO_Port, &GPIO_InitStruct);
/**/
GPIO_InitStruct.Pin = RMII_TXD0_Pin;
GPIO_InitStruct.Mode = LL_GPIO_MODE_ALTERNATE;
GPIO_InitStruct.Speed = LL_GPIO_SPEED_FREQ_VERY_HIGH; GPIO_InitStruct.Speed = LL_GPIO_SPEED_FREQ_VERY_HIGH;
GPIO_InitStruct.OutputType = LL_GPIO_OUTPUT_PUSHPULL; GPIO_InitStruct.OutputType = LL_GPIO_OUTPUT_PUSHPULL;
GPIO_InitStruct.Pull = LL_GPIO_PULL_NO; GPIO_InitStruct.Pull = LL_GPIO_PULL_NO;
GPIO_InitStruct.Alternate = LL_GPIO_AF_11; LL_GPIO_Init(CRYPTO_BUSY_GPIO_Port, &GPIO_InitStruct);
LL_GPIO_Init(RMII_TXD0_GPIO_Port, &GPIO_InitStruct);
/**/ /**/
GPIO_InitStruct.Pin = LD2_Pin; GPIO_InitStruct.Pin = LD2_Pin;
......
...@@ -23,6 +23,7 @@ ...@@ -23,6 +23,7 @@
#include "stm32f7xx_it.h" #include "stm32f7xx_it.h"
/* Private includes ----------------------------------------------------------*/ /* Private includes ----------------------------------------------------------*/
/* USER CODE BEGIN Includes */ /* USER CODE BEGIN Includes */
#include "test.h"
/* USER CODE END Includes */ /* USER CODE END Includes */
/* Private typedef -----------------------------------------------------------*/ /* Private typedef -----------------------------------------------------------*/
...@@ -197,6 +198,19 @@ void SysTick_Handler(void) ...@@ -197,6 +198,19 @@ void SysTick_Handler(void)
/* please refer to the startup file (startup_stm32f7xx.s). */ /* please refer to the startup file (startup_stm32f7xx.s). */
/******************************************************************************/ /******************************************************************************/
/**
* @brief This function handles USART2 global interrupt.
*/
void USART2_IRQHandler(void)
{
/* USER CODE BEGIN USART2_IRQn 0 */
test_uart_handler();
/* USER CODE END USART2_IRQn 0 */
/* USER CODE BEGIN USART2_IRQn 1 */
/* USER CODE END USART2_IRQn 1 */
}
/* USER CODE BEGIN 1 */ /* USER CODE BEGIN 1 */
/* USER CODE END 1 */ /* USER CODE END 1 */
......
#include <stdint.h> #include <stdint.h>
#include <stdio.h>
#include <stdbool.h> #include <stdbool.h>
#include <string.h> #include <string.h>
#include <stdarg.h> #include <stdarg.h>
...@@ -9,10 +10,6 @@ ...@@ -9,10 +10,6 @@
#define MAX_BYTES 100 #define MAX_BYTES 100
//#define DEBUG
#define CRYPTO_BUSY_GPIO_Port LD1_GPIO_Port
#define CRYPTO_BUSY_Pin LD1_Pin
uint8_t npub[CRYPTO_NPUBBYTES]; uint8_t npub[CRYPTO_NPUBBYTES];
uint8_t nsec[CRYPTO_NSECBYTES]; uint8_t nsec[CRYPTO_NSECBYTES];
uint8_t k[CRYPTO_KEYBYTES]; uint8_t k[CRYPTO_KEYBYTES];
...@@ -27,18 +24,31 @@ int res; ...@@ -27,18 +24,31 @@ int res;
void setup(); void setup();
void loop(); void loop();
#define uart_buf_len 256
static uint8_t uart_buf[uart_buf_len];
static uint8_t uart_buf_read_idx = 0;
volatile static uint8_t uart_buf_write_idx = 0;
void uart_wbyte(uint8_t x) { void uart_wbyte(uint8_t x) {
while (!LL_USART_IsActiveFlag_TXE(USART2)); while (!LL_USART_IsActiveFlag_TXE(USART2));
LL_USART_TransmitData8(USART2, x); LL_USART_TransmitData8(USART2, x);
} }
uint8_t uart_rbyte() { uint8_t uart_rbyte() {
while (!LL_USART_IsActiveFlag_RXNE(USART2)); while (uart_buf_read_idx == uart_buf_write_idx);
uint8_t r = (uint8_t) LL_USART_ReceiveData8(USART2); uint8_t r = uart_buf[uart_buf_read_idx];
LL_USART_TransmitData8(USART2, r); uart_buf_read_idx = (uart_buf_read_idx + 1) % uart_buf_len;
return r; return r;
} }
void test_uart_handler() {
if (LL_USART_IsActiveFlag_RXNE(USART2)) {
uint8_t r = (uint8_t) LL_USART_ReceiveData8(USART2);
uart_buf[uart_buf_write_idx] = r;
uart_buf_write_idx = (uart_buf_write_idx + 1) % uart_buf_len;
}
}
static inline void noInterrupts() { static inline void noInterrupts() {
// TODO: if necessary, provide a way to disable interrupts // TODO: if necessary, provide a way to disable interrupts
} }
...@@ -47,10 +57,9 @@ static inline void interrupts() { ...@@ -47,10 +57,9 @@ static inline void interrupts() {
// TODO: if necessary, provide a way to enable interrupts // TODO: if necessary, provide a way to enable interrupts
} }
#define DEBUG_BUF_LEN 80
int dbg_printf(const char *format, ...) { int dbg_printf(const char *format, ...) {
int r = 0; int r = 0;
#ifdef DEBUG
#define DEBUG_BUF_LEN 80
char printbuf[DEBUG_BUF_LEN+2]; char printbuf[DEBUG_BUF_LEN+2];
va_list vargs; va_list vargs;
...@@ -66,7 +75,6 @@ int dbg_printf(const char *format, ...) { ...@@ -66,7 +75,6 @@ int dbg_printf(const char *format, ...) {
r = r > DEBUG_BUF_LEN ? DEBUG_BUF_LEN : r; r = r > DEBUG_BUF_LEN ? DEBUG_BUF_LEN : r;
printbuf[0] = 0xde; // Debug messages should start with "\xde" printbuf[0] = 0xde; // Debug messages should start with "\xde"
uartp_send(printbuf, r+1); uartp_send(printbuf, r+1);
#endif
return r; return r;
} }
...@@ -85,12 +93,11 @@ void test_setup() { ...@@ -85,12 +93,11 @@ void test_setup() {
uart_wbyte("Hello, World!"[i]); uart_wbyte("Hello, World!"[i]);
} }
LL_USART_ReceiveData8(USART2); LL_USART_ReceiveData8(USART2);
LL_USART_EnableIT_RXNE(USART2);
} }
void test_loop() { void test_loop() {
uart_rbyte();
return;
static uint8_t buf[256]; static uint8_t buf[256];
uint16_t len = uartp_recv(buf, 255); uint16_t len = uartp_recv(buf, 255);
uint8_t action = buf[0]; uint8_t action = buf[0];
......
...@@ -13,37 +13,23 @@ Mcu.Name=STM32F746ZGTx ...@@ -13,37 +13,23 @@ Mcu.Name=STM32F746ZGTx
Mcu.Package=LQFP144 Mcu.Package=LQFP144
Mcu.Pin0=PC13 Mcu.Pin0=PC13
Mcu.Pin1=PC14/OSC32_IN Mcu.Pin1=PC14/OSC32_IN
Mcu.Pin10=PC4 Mcu.Pin10=PG7
Mcu.Pin11=PC5 Mcu.Pin11=PA13
Mcu.Pin12=PB0 Mcu.Pin12=PA14
Mcu.Pin13=PB13 Mcu.Pin13=PD5
Mcu.Pin14=PB14 Mcu.Pin14=PD6
Mcu.Pin15=PD8 Mcu.Pin15=PD7
Mcu.Pin16=PD9 Mcu.Pin16=PB7
Mcu.Pin17=PG6 Mcu.Pin17=VP_SYS_VS_Systick
Mcu.Pin18=PG7
Mcu.Pin19=PA8
Mcu.Pin2=PC15/OSC32_OUT Mcu.Pin2=PC15/OSC32_OUT
Mcu.Pin20=PA9
Mcu.Pin21=PA10
Mcu.Pin22=PA11
Mcu.Pin23=PA12
Mcu.Pin24=PA13
Mcu.Pin25=PA14
Mcu.Pin26=PD5
Mcu.Pin27=PG11
Mcu.Pin28=PG13
Mcu.Pin29=PB3
Mcu.Pin3=PH0/OSC_IN Mcu.Pin3=PH0/OSC_IN
Mcu.Pin30=PB7
Mcu.Pin31=VP_SYS_VS_Systick
Mcu.Pin4=PH1/OSC_OUT Mcu.Pin4=PH1/OSC_OUT
Mcu.Pin5=PC1 Mcu.Pin5=PB0
Mcu.Pin6=PA1 Mcu.Pin6=PB14
Mcu.Pin7=PA2 Mcu.Pin7=PD8
Mcu.Pin8=PA3 Mcu.Pin8=PD9
Mcu.Pin9=PA7 Mcu.Pin9=PG6
Mcu.PinsNb=32 Mcu.PinsNb=18
Mcu.ThirdPartyNb=0 Mcu.ThirdPartyNb=0
Mcu.UserConstants= Mcu.UserConstants=
Mcu.UserName=STM32F746ZGTx Mcu.UserName=STM32F746ZGTx
...@@ -58,23 +44,8 @@ NVIC.PendSV_IRQn=true\:0\:0\:false\:false\:true\:true\:false ...@@ -58,23 +44,8 @@ NVIC.PendSV_IRQn=true\:0\:0\:false\:false\:true\:true\:false
NVIC.PriorityGroup=NVIC_PRIORITYGROUP_4 NVIC.PriorityGroup=NVIC_PRIORITYGROUP_4
NVIC.SVCall_IRQn=true\:0\:0\:false\:false\:true\:true\:false NVIC.SVCall_IRQn=true\:0\:0\:false\:false\:true\:true\:false
NVIC.SysTick_IRQn=true\:0\:0\:false\:false\:true\:true\:true NVIC.SysTick_IRQn=true\:0\:0\:false\:false\:true\:true\:true
NVIC.USART2_IRQn=true\:0\:0\:false\:false\:true\:true\:true
NVIC.UsageFault_IRQn=true\:0\:0\:false\:false\:true\:true\:false NVIC.UsageFault_IRQn=true\:0\:0\:false\:false\:true\:true\:false
PA1.GPIOParameters=GPIO_Label
PA1.GPIO_Label=RMII_REF_CLK [LAN8742A-CZ-TR_REFCLK0]
PA1.Locked=true
PA1.Signal=ETH_REF_CLK
PA10.GPIOParameters=GPIO_Label
PA10.GPIO_Label=USB_ID
PA10.Locked=true
PA10.Signal=USB_OTG_FS_ID
PA11.GPIOParameters=GPIO_Label
PA11.GPIO_Label=USB_DM
PA11.Locked=true
PA11.Signal=USB_OTG_FS_DM
PA12.GPIOParameters=GPIO_Label
PA12.GPIO_Label=USB_DP
PA12.Locked=true
PA12.Signal=USB_OTG_FS_DP
PA13.GPIOParameters=GPIO_Label PA13.GPIOParameters=GPIO_Label
PA13.GPIO_Label=TMS PA13.GPIO_Label=TMS
PA13.Locked=true PA13.Locked=true
...@@ -85,48 +56,18 @@ PA14.GPIO_Label=TCK ...@@ -85,48 +56,18 @@ PA14.GPIO_Label=TCK
PA14.Locked=true PA14.Locked=true
PA14.Mode=Serial_Wire PA14.Mode=Serial_Wire
PA14.Signal=SYS_JTCK-SWCLK PA14.Signal=SYS_JTCK-SWCLK
PA2.GPIOParameters=GPIO_Label
PA2.GPIO_Label=RMII_MDIO [LAN8742A-CZ-TR_MDIO]
PA2.Locked=true
PA2.Signal=ETH_MDIO
PA3.Mode=Asynchronous
PA3.Signal=USART2_RX
PA7.GPIOParameters=GPIO_Label
PA7.GPIO_Label=RMII_CRS_DV [LAN8742A-CZ-TR_CRS_DV]
PA7.Locked=true
PA7.Signal=ETH_CRS_DV
PA8.GPIOParameters=GPIO_Label
PA8.GPIO_Label=USB_SOF [TP1]
PA8.Locked=true
PA8.Signal=USB_OTG_FS_SOF
PA9.GPIOParameters=GPIO_Label
PA9.GPIO_Label=USB_VBUS
PA9.Locked=true
PA9.Signal=USB_OTG_FS_VBUS
PB0.GPIOParameters=GPIO_Label PB0.GPIOParameters=GPIO_Label
PB0.GPIO_Label=LD1 [Green] PB0.GPIO_Label=LD1 [Green]
PB0.Locked=true PB0.Locked=true
PB0.Signal=GPIO_Output PB0.Signal=GPIO_Output
PB13.GPIOParameters=GPIO_Label
PB13.GPIO_Label=RMII_TXD1 [LAN8742A-CZ-TR_TXD1]
PB13.Locked=true
PB13.Signal=ETH_TXD1
PB14.GPIOParameters=GPIO_Label PB14.GPIOParameters=GPIO_Label
PB14.GPIO_Label=LD3 [Red] PB14.GPIO_Label=LD3 [Red]
PB14.Locked=true PB14.Locked=true
PB14.Signal=GPIO_Output PB14.Signal=GPIO_Output
PB3.GPIOParameters=GPIO_Label
PB3.GPIO_Label=SW0
PB3.Locked=true
PB3.Signal=SYS_JTDO-SWO
PB7.GPIOParameters=GPIO_Label PB7.GPIOParameters=GPIO_Label
PB7.GPIO_Label=LD2 [Blue] PB7.GPIO_Label=LD2 [Blue]
PB7.Locked=true PB7.Locked=true
PB7.Signal=GPIO_Output PB7.Signal=GPIO_Output
PC1.GPIOParameters=GPIO_Label
PC1.GPIO_Label=RMII_MDC [LAN8742A-CZ-TR_MDC]
PC1.Locked=true
PC1.Signal=ETH_MDC
PC13.GPIOParameters=GPIO_Label PC13.GPIOParameters=GPIO_Label
PC13.GPIO_Label=USER_Btn [B1] PC13.GPIO_Label=USER_Btn [B1]
PC13.Locked=true PC13.Locked=true
...@@ -137,14 +78,6 @@ PC14/OSC32_IN.Signal=RCC_OSC32_IN ...@@ -137,14 +78,6 @@ PC14/OSC32_IN.Signal=RCC_OSC32_IN
PC15/OSC32_OUT.Locked=true PC15/OSC32_OUT.Locked=true
PC15/OSC32_OUT.Mode=LSE-External-Oscillator PC15/OSC32_OUT.Mode=LSE-External-Oscillator
PC15/OSC32_OUT.Signal=RCC_OSC32_OUT PC15/OSC32_OUT.Signal=RCC_OSC32_OUT
PC4.GPIOParameters=GPIO_Label
PC4.GPIO_Label=RMII_RXD0 [LAN8742A-CZ-TR_RXD0]
PC4.Locked=true
PC4.Signal=ETH_RXD0
PC5.GPIOParameters=GPIO_Label
PC5.GPIO_Label=RMII_RXD1 [LAN8742A-CZ-TR_RXD1]
PC5.Locked=true
PC5.Signal=ETH_RXD1
PCC.Checker=false PCC.Checker=false
PCC.Line=STM32F7x6 PCC.Line=STM32F7x6
PCC.MCU=STM32F746ZGTx PCC.MCU=STM32F746ZGTx
...@@ -155,6 +88,15 @@ PCC.Temperature=25 ...@@ -155,6 +88,15 @@ PCC.Temperature=25
PCC.Vdd=3.6 PCC.Vdd=3.6
PD5.Mode=Asynchronous PD5.Mode=Asynchronous
PD5.Signal=USART2_TX PD5.Signal=USART2_TX
PD6.Locked=true
PD6.Mode=Asynchronous
PD6.Signal=USART2_RX
PD7.GPIOParameters=GPIO_Speed,PinState,GPIO_Label
PD7.GPIO_Label=CRYPTO_BUSY
PD7.GPIO_Speed=GPIO_SPEED_FREQ_VERY_HIGH
PD7.Locked=true
PD7.PinState=GPIO_PIN_SET
PD7.Signal=GPIO_Output
PD8.GPIOParameters=GPIO_Label PD8.GPIOParameters=GPIO_Label
PD8.GPIO_Label=STLK_RX [STM32F103CBT6_PA3] PD8.GPIO_Label=STLK_RX [STM32F103CBT6_PA3]
PD8.Locked=true PD8.Locked=true
...@@ -165,14 +107,6 @@ PD9.GPIO_Label=STLK_TX [STM32F103CBT6_PA2] ...@@ -165,14 +107,6 @@ PD9.GPIO_Label=STLK_TX [STM32F103CBT6_PA2]
PD9.Locked=true PD9.Locked=true
PD9.Mode=Asynchronous PD9.Mode=Asynchronous
PD9.Signal=USART3_RX PD9.Signal=USART3_RX
PG11.GPIOParameters=GPIO_Label
PG11.GPIO_Label=RMII_TX_EN [LAN8742A-CZ-TR_TXEN]
PG11.Locked=true
PG11.Signal=ETH_TX_EN
PG13.GPIOParameters=GPIO_Label
PG13.GPIO_Label=RMII_TXD0 [LAN8742A-CZ-TR_TXD0]
PG13.Locked=true
PG13.Signal=ETH_TXD0
PG6.GPIOParameters=GPIO_Label PG6.GPIOParameters=GPIO_Label
PG6.GPIO_Label=USB_PowerSwitchOn [STMPS2151STR_EN] PG6.GPIO_Label=USB_PowerSwitchOn [STMPS2151STR_EN]
PG6.Locked=true PG6.Locked=true
...@@ -216,7 +150,7 @@ ProjectManager.StackSize=0x400 ...@@ -216,7 +150,7 @@ ProjectManager.StackSize=0x400
ProjectManager.TargetToolchain=Makefile ProjectManager.TargetToolchain=Makefile
ProjectManager.ToolChainLocation= ProjectManager.ToolChainLocation=
ProjectManager.UnderRoot=false ProjectManager.UnderRoot=false
ProjectManager.functionlistsort=1-MX_GPIO_Init-GPIO-false-LL-true,2-SystemClock_Config-RCC-false-LL-false,3-MX_UART4_Init-UART4-false-LL-true,3-MX_USART2_UART_Init-USART2-false-LL-true,4-MX_USART3_UART_Init-USART3-false-LL-true ProjectManager.functionlistsort=1-MX_GPIO_Init-GPIO-false-LL-true,2-SystemClock_Config-RCC-false-LL-false,3-MX_USART2_UART_Init-USART2-false-LL-true,4-MX_USART3_UART_Init-USART3-false-LL-true
RCC.48MHZClocksFreq_Value=24000000 RCC.48MHZClocksFreq_Value=24000000
RCC.ADC12outputFreq_Value=72000000 RCC.ADC12outputFreq_Value=72000000
RCC.ADC34outputFreq_Value=72000000 RCC.ADC34outputFreq_Value=72000000
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment