summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChen Wang <[email protected]>2025-04-23 16:29:54 +0800
committerRbb666 <[email protected]>2025-04-24 14:34:25 +0800
commit283c2fb94ffa84df37b8f70cda5d9845d32a4818 (patch)
tree26fc9e385d6cd38a952ee461ef880eb3b7fa490b
parent919adbce38fe9127f0c28b98236ffe9a1c759aa0 (diff)
bsp: k230: fix some cpp_check warnings
Signed-off-by: Chen Wang <[email protected]>
-rw-r--r--bsp/k230/board/board.c2
-rw-r--r--bsp/k230/drivers/interdrv/uart/drv_uart.c12
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;