• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright (C) 2022 Beken Corporation
2 //
3 // Licensed under the Apache License, Version 2.0 (the "License");
4 // you may not use this file except in compliance with the License.
5 // You may obtain a copy of the License at
6 //
7 //     http://www.apache.org/licenses/LICENSE-2.0
8 //
9 // Unless required by applicable law or agreed to in writing, software
10 // distributed under the License is distributed on an "AS IS" BASIS,
11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 // See the License for the specific language governing permissions and
13 // limitations under the License.
14 
15 #include <os/mem.h>
16 #include "uart_hw.h"
17 #include "uart_statis.h"
18 
19 #if CONFIG_UART_STATIS
20 
21 #define TAG "uart_statis"
22 
23 static uart_statis_t s_uart_statis[SOC_UART_ID_NUM_PER_UNIT] = {0};
24 
uart_statis_init(void)25 bk_err_t uart_statis_init(void)
26 {
27 	os_memset(&s_uart_statis, 0, sizeof(s_uart_statis));
28 	return BK_OK;
29 }
30 
uart_statis_id_init(uart_id_t id)31 bk_err_t uart_statis_id_init(uart_id_t id)
32 {
33 	os_memset(&s_uart_statis[id], 0, sizeof(s_uart_statis[id]));
34 	s_uart_statis[id].kfifo_status.size = CONFIG_KFIFO_SIZE;
35 	return BK_OK;
36 }
37 
uart_statis_get_statis(uart_id_t id)38 uart_statis_t* uart_statis_get_statis(uart_id_t id)
39 {
40 	return &(s_uart_statis[id]);
41 }
42 
uart_statis_dump(uart_id_t id)43 void uart_statis_dump(uart_id_t id)
44 {
45 	BK_LOGI(TAG, "dump uart statis:\r\n");
46 	BK_LOGI(TAG, "uart_isr_cnt:     %d\r\n", s_uart_statis[id].uart_isr_cnt);
47 	BK_LOGI(TAG, "rx_isr_cnt:       %d\r\n", s_uart_statis[id].rx_isr_cnt);
48 	BK_LOGI(TAG, "rx_fifo_cnt:      %d\r\n", s_uart_statis[id].rx_fifo_cnt);
49 	BK_LOGI(TAG, "recv_timeout_cnt: %d\r\n", s_uart_statis[id].recv_timeout_cnt);
50 	BK_LOGI(TAG, "kfifo_size:       %d\r\n", s_uart_statis[id].kfifo_status.size);
51 	BK_LOGI(TAG, "kfifo_in:         %d\r\n", s_uart_statis[id].kfifo_status.in);
52 	BK_LOGI(TAG, "kfifo_out:        %d\r\n", s_uart_statis[id].kfifo_status.out);
53 	BK_LOGI(TAG, "kfifo_last_value: %x\r\n", s_uart_statis[id].kfifo_status.last_value);
54 	BK_LOGI(TAG, "kfifo_put_cnt:    %d\r\n", s_uart_statis[id].kfifo_status.put_cnt);
55 	BK_LOGI(TAG, "kfifo_full_cnt:   %d\r\n", s_uart_statis[id].kfifo_status.full_cnt);
56 	BK_LOGI(TAG, "kfifo_empty_cnt:  %d\r\n", s_uart_statis[id].kfifo_status.empty_cnt);
57 }
58 
59 #endif
60