minor clean up. ch32v307 has issue with uart LOG=2 (skipping characters)

This commit is contained in:
hathach 2023-01-12 15:34:29 +07:00
parent 3cf21c66b6
commit 160d64b00a
3 changed files with 35 additions and 35 deletions

View File

@ -77,34 +77,34 @@ void uart_sync(void)
void usart_printf_init(uint32_t baudrate) void usart_printf_init(uint32_t baudrate)
{ {
GPIO_InitTypeDef GPIO_InitStructure; GPIO_InitTypeDef GPIO_InitStructure;
USART_InitTypeDef USART_InitStructure; USART_InitTypeDef USART_InitStructure;
tx_produce = 0; tx_produce = 0;
tx_consume = 0; tx_consume = 0;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1 | RCC_APB2Periph_GPIOA, ENABLE); RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1 | RCC_APB2Periph_GPIOA, ENABLE);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9; GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
GPIO_Init(GPIOA, &GPIO_InitStructure); GPIO_Init(GPIOA, &GPIO_InitStructure);
USART_InitStructure.USART_BaudRate = baudrate; USART_InitStructure.USART_BaudRate = baudrate;
USART_InitStructure.USART_WordLength = USART_WordLength_8b; USART_InitStructure.USART_WordLength = USART_WordLength_8b;
USART_InitStructure.USART_StopBits = USART_StopBits_1; USART_InitStructure.USART_StopBits = USART_StopBits_1;
USART_InitStructure.USART_Parity = USART_Parity_No; USART_InitStructure.USART_Parity = USART_Parity_No;
USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None; USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;
USART_InitStructure.USART_Mode = USART_Mode_Tx; USART_InitStructure.USART_Mode = USART_Mode_Tx;
USART_Init(USART1, &USART_InitStructure); USART_Init(USART1, &USART_InitStructure);
USART_ITConfig(USART1, USART_IT_TC, ENABLE); USART_ITConfig(USART1, USART_IT_TC, ENABLE);
USART_Cmd(USART1, ENABLE); USART_Cmd(USART1, ENABLE);
NVIC_InitTypeDef NVIC_InitStructure = {0}; NVIC_InitTypeDef NVIC_InitStructure = { 0 };
NVIC_InitStructure.NVIC_IRQChannel = USART1_IRQn; NVIC_InitStructure.NVIC_IRQChannel = USART1_IRQn;
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1; NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1;
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 3; NVIC_InitStructure.NVIC_IRQChannelSubPriority = 3;
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&NVIC_InitStructure); NVIC_Init(&NVIC_InitStructure);
} }

View File

@ -106,17 +106,22 @@ void board_init(void) {
volatile uint32_t system_ticks = 0; volatile uint32_t system_ticks = 0;
/* Small workaround to support HW stack save/restore */ /* Small workaround to support HW stack save/restore */
void SysTick_Handler(void) __attribute__((naked)); void SysTick_Handler (void) __attribute__((naked));
void SysTick_Handler(void) { void SysTick_Handler (void)
__asm volatile ("call SysTick_Handler_impl; mret"); {
__asm volatile ("call SysTick_Handler_impl; mret");
} }
__attribute__((used)) void SysTick_Handler_impl(void) { __attribute__((used)) void SysTick_Handler_impl (void)
SysTick->SR=0; {
SysTick->SR = 0;
system_ticks++; system_ticks++;
} }
uint32_t board_millis(void) { return system_ticks; } uint32_t board_millis (void)
{
return system_ticks;
}
#endif #endif

View File

@ -13,8 +13,6 @@ CH32V307_SDK_SRC = $(CH32V307_SDK)/EVT/EXAM/SRC
include $(TOP)/$(BOARD_PATH)/board.mk include $(TOP)/$(BOARD_PATH)/board.mk
SKIP_NANOLIB = 1
CFLAGS += \ CFLAGS += \
-flto \ -flto \
-march=rv32imac \ -march=rv32imac \
@ -30,9 +28,6 @@ CFLAGS += \
-Xlinker --gc-sections \ -Xlinker --gc-sections \
-DBOARD_TUD_MAX_SPEED=OPT_MODE_HIGH_SPEED -DBOARD_TUD_MAX_SPEED=OPT_MODE_HIGH_SPEED
LDFLAGS += \
-Xlinker --gc-sections --specs=nano.specs --specs=nosys.specs
SRC_C += \ SRC_C += \
src/portable/wch/ch32v307/dcd_usbhs.c \ src/portable/wch/ch32v307/dcd_usbhs.c \
$(CH32V307_SDK_SRC)/Core/core_riscv.c \ $(CH32V307_SDK_SRC)/Core/core_riscv.c \