diff options
| author | Chen Wang <[email protected]> | 2025-04-23 16:29:54 +0800 |
|---|---|---|
| committer | Rbb666 <[email protected]> | 2025-04-24 14:34:25 +0800 |
| commit | 283c2fb94ffa84df37b8f70cda5d9845d32a4818 (patch) | |
| tree | 26fc9e385d6cd38a952ee461ef880eb3b7fa490b | |
| parent | 919adbce38fe9127f0c28b98236ffe9a1c759aa0 (diff) | |
bsp: k230: fix some cpp_check warnings
Signed-off-by: Chen Wang <[email protected]>
| -rw-r--r-- | bsp/k230/board/board.c | 2 | ||||
| -rw-r--r-- | 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; |
