From 283c2fb94ffa84df37b8f70cda5d9845d32a4818 Mon Sep 17 00:00:00 2001 From: Chen Wang Date: Wed, 23 Apr 2025 16:29:54 +0800 Subject: [PATCH] bsp: k230: fix some cpp_check warnings Signed-off-by: Chen Wang --- bsp/k230/board/board.c | 2 +- bsp/k230/drivers/interdrv/uart/drv_uart.c | 12 +++++++++++- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/bsp/k230/board/board.c b/bsp/k230/board/board.c index 3afcc4d351..2c60af119a 100644 --- a/bsp/k230/board/board.c +++ b/bsp/k230/board/board.c @@ -64,7 +64,7 @@ void init_bss(void) unsigned int *dst; dst = &__bss_start; - while (dst < &__bss_end) + while ((rt_ubase_t)dst < (rt_ubase_t)&__bss_end) { *dst++ = 0; } diff --git a/bsp/k230/drivers/interdrv/uart/drv_uart.c b/bsp/k230/drivers/interdrv/uart/drv_uart.c index d5528241b8..03dbe1734a 100644 --- a/bsp/k230/drivers/interdrv/uart/drv_uart.c +++ b/bsp/k230/drivers/interdrv/uart/drv_uart.c @@ -129,7 +129,17 @@ static void _uart_init(void *uart_base) dlh = bdiv >> 12; dll = (bdiv - (dlh << 12)) / 16; dlf = bdiv - (dlh << 12) - dll * 16; - if(dlh == 0 && dll == 0) + // dlh can be 0 only if bdiv < 4096 (since we're shifting right by 12 bits) + // bdiv = UART_CLK / UART_DEFAULT_BAUDRATE + // = 50000000 / 115200 + // = 434.027 + // so when dlh is 0, + // dll = (bdiv - (dlh << 12)) / 16 + // = (434.027 - 0) / 16 + // = 27.626 + // which means dll can not reach 0, + // so we use 1 as the minimum value for dll + if((dlh == 0) && (dll < 1)) { dll = 1; dlf = 0;