diff options
| author | xqyjlj <[email protected]> | 2023-07-17 20:11:58 +0800 |
|---|---|---|
| committer | GitHub <[email protected]> | 2023-07-17 20:11:58 +0800 |
| commit | 0eb75ced70a514051fcc6a8f1d232e195b15b4a0 (patch) | |
| tree | a025fe349198fa0fe6f972ea1100ac31ba64787a /bsp | |
| parent | b424169e1742c1b19d039f9871dd3c672ea7b729 (diff) | |
[time]时钟框架重构 (#7794)
Diffstat (limited to 'bsp')
| -rw-r--r-- | bsp/qemu-virt64-aarch64/.config | 2 | ||||
| -rw-r--r-- | bsp/qemu-virt64-aarch64/applications/mnt.c | 11 | ||||
| -rw-r--r-- | bsp/qemu-virt64-aarch64/drivers/board.c | 3 | ||||
| -rw-r--r-- | bsp/qemu-virt64-aarch64/drivers/drv_rtc.c | 4 | ||||
| -rw-r--r-- | bsp/qemu-virt64-aarch64/drivers/drv_timer.c | 46 | ||||
| -rw-r--r-- | bsp/qemu-virt64-aarch64/drivers/drv_timer.h | 16 | ||||
| -rw-r--r-- | bsp/qemu-virt64-aarch64/rtconfig.h | 1 | ||||
| -rw-r--r-- | bsp/qemu-virt64-riscv/.config | 12 | ||||
| -rw-r--r-- | bsp/qemu-virt64-riscv/applications/mnt.c | 15 | ||||
| -rw-r--r-- | bsp/qemu-virt64-riscv/rtconfig.h | 8 |
10 files changed, 43 insertions, 75 deletions
diff --git a/bsp/qemu-virt64-aarch64/.config b/bsp/qemu-virt64-aarch64/.config index c6de1d3c7a..44f181b385 100644 --- a/bsp/qemu-virt64-aarch64/.config +++ b/bsp/qemu-virt64-aarch64/.config @@ -204,7 +204,7 @@ CONFIG_RT_USING_FDTLIB=y # CONFIG_FDT_USING_DEBUG is not set CONFIG_RT_USING_RTC=y # CONFIG_RT_USING_ALARM is not set -# CONFIG_RT_USING_SOFT_RTC is not set +CONFIG_RT_USING_SOFT_RTC=y # CONFIG_RT_USING_SDIO is not set # CONFIG_RT_USING_SPI is not set # CONFIG_RT_USING_WDT is not set diff --git a/bsp/qemu-virt64-aarch64/applications/mnt.c b/bsp/qemu-virt64-aarch64/applications/mnt.c index 6a226db6d8..262c19c4f7 100644 --- a/bsp/qemu-virt64-aarch64/applications/mnt.c +++ b/bsp/qemu-virt64-aarch64/applications/mnt.c @@ -22,6 +22,17 @@ int mnt_init(void) { rt_kprintf("file system initialization done!\n"); } + else + { + if (dfs_mount("virtio-blk0", "/", "ext", 0, RT_NULL) == 0) + { + rt_kprintf("file system initialization done!\n"); + } + else + { + rt_kprintf("file system initialization fail!\n"); + } + } } return 0; diff --git a/bsp/qemu-virt64-aarch64/drivers/board.c b/bsp/qemu-virt64-aarch64/drivers/board.c index ce8b88151d..7e8dc364da 100644 --- a/bsp/qemu-virt64-aarch64/drivers/board.c +++ b/bsp/qemu-virt64-aarch64/drivers/board.c @@ -14,6 +14,7 @@ #include <rthw.h> #include <rtthread.h> #include <mmu.h> +#include <gtimer.h> #ifdef RT_USING_SMART #include <lwp_arch.h> @@ -98,6 +99,8 @@ void rt_hw_board_init(void) /* initialize hardware interrupt */ rt_hw_interrupt_init(); + rt_hw_gtimer_init(); + /* support debug feature before components init */ rt_hw_uart_init(); rt_console_set_device(RT_CONSOLE_DEVICE_NAME); diff --git a/bsp/qemu-virt64-aarch64/drivers/drv_rtc.c b/bsp/qemu-virt64-aarch64/drivers/drv_rtc.c index 019c5d5b0e..a899c2a6c9 100644 --- a/bsp/qemu-virt64-aarch64/drivers/drv_rtc.c +++ b/bsp/qemu-virt64-aarch64/drivers/drv_rtc.c @@ -115,8 +115,8 @@ int rt_hw_rtc_init(void) rtc_device.device.user_data = RT_NULL; /* register a rtc device */ - rt_device_register(&rtc_device.device, "rtc", RT_DEVICE_FLAG_RDWR); - + rt_device_register(&rtc_device.device, "rtc0", RT_DEVICE_FLAG_RDWR); + rt_soft_rtc_set_source("rtc0"); return 0; } INIT_DEVICE_EXPORT(rt_hw_rtc_init); diff --git a/bsp/qemu-virt64-aarch64/drivers/drv_timer.c b/bsp/qemu-virt64-aarch64/drivers/drv_timer.c deleted file mode 100644 index 99eaa7b18c..0000000000 --- a/bsp/qemu-virt64-aarch64/drivers/drv_timer.c +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Copyright (c) 2006-2022, RT-Thread Development Team - * - * SPDX-License-Identifier: Apache-2.0 - * - * Change Logs: - * Date Author Notes - * 2018-11-22 Jesven first version - */ - -#include <rthw.h> -#include <rtthread.h> -#include <stdint.h> -#include "cp15.h" -#include "board.h" -#include "gtimer.h" - -#define TIMER_IRQ 30 - -static rt_uint64_t timerStep = 0; - -static void rt_hw_timer_isr(int vector, void *param) -{ - rt_hw_set_gtimer_val(timerStep); - rt_tick_increase(); -} - -void rt_hw_timer_enable(void) -{ - rt_hw_set_gtimer_val(timerStep); - rt_hw_interrupt_umask(TIMER_IRQ); - rt_hw_gtimer_enable(); -} - -int rt_hw_timer_init(void) -{ - rt_hw_interrupt_install(TIMER_IRQ, rt_hw_timer_isr, RT_NULL, "tick"); - __ISB(); - timerStep = rt_hw_get_gtimer_frq(); - __DSB(); - timerStep /= RT_TICK_PER_SECOND; - rt_hw_timer_enable(); - - return 0; -} -INIT_BOARD_EXPORT(rt_hw_timer_init); diff --git a/bsp/qemu-virt64-aarch64/drivers/drv_timer.h b/bsp/qemu-virt64-aarch64/drivers/drv_timer.h deleted file mode 100644 index 784d07ec63..0000000000 --- a/bsp/qemu-virt64-aarch64/drivers/drv_timer.h +++ /dev/null @@ -1,16 +0,0 @@ -/* - * Copyright (c) 2006-2022, RT-Thread Development Team - * - * SPDX-License-Identifier: Apache-2.0 - * - * Change Logs: - * Date Author Notes - * 2018-11-22 Jesven first version - */ - -#ifndef DRV_TIMER_H__ -#define DRV_TIMER_H__ - -void timer_init(int timer, unsigned int preload); - -#endif diff --git a/bsp/qemu-virt64-aarch64/rtconfig.h b/bsp/qemu-virt64-aarch64/rtconfig.h index 32757a23cc..5b71c996f6 100644 --- a/bsp/qemu-virt64-aarch64/rtconfig.h +++ b/bsp/qemu-virt64-aarch64/rtconfig.h @@ -133,6 +133,7 @@ #define RT_USING_FDT #define RT_USING_FDTLIB #define RT_USING_RTC +#define RT_USING_SOFT_RTC #define RT_USING_DEV_BUS #define RT_USING_VIRTIO #define RT_USING_VIRTIO10 diff --git a/bsp/qemu-virt64-riscv/.config b/bsp/qemu-virt64-riscv/.config index 571d1fdfe0..d3c3ff2f5a 100644 --- a/bsp/qemu-virt64-riscv/.config +++ b/bsp/qemu-virt64-riscv/.config @@ -84,7 +84,7 @@ CONFIG_RT_USING_DEVICE_OPS=y CONFIG_RT_USING_CONSOLE=y CONFIG_RT_CONSOLEBUF_SIZE=256 CONFIG_RT_CONSOLE_DEVICE_NAME="uart0" -CONFIG_RT_VER_NUM=0x50000 +CONFIG_RT_VER_NUM=0x50001 # CONFIG_RT_USING_STDC_ATOMIC is not set CONFIG_ARCH_CPU_64BIT=y CONFIG_RT_USING_CACHE=y @@ -122,10 +122,12 @@ CONFIG_FINSH_ARG_MAX=10 CONFIG_RT_USING_DFS=y CONFIG_DFS_USING_POSIX=y CONFIG_DFS_USING_WORKDIR=y +# CONFIG_RT_USING_DFS_MNTTABLE is not set +CONFIG_DFS_FD_MAX=32 +CONFIG_RT_USING_DFS_V1=y +# CONFIG_RT_USING_DFS_V2 is not set CONFIG_DFS_FILESYSTEMS_MAX=4 CONFIG_DFS_FILESYSTEM_TYPES_MAX=4 -CONFIG_DFS_FD_MAX=32 -# CONFIG_RT_USING_DFS_MNTTABLE is not set CONFIG_RT_USING_DFS_ELMFAT=y # @@ -174,7 +176,7 @@ CONFIG_RT_SERIAL_RB_BUFSZ=64 # CONFIG_RT_USING_HWTIMER is not set CONFIG_RT_USING_CPUTIME=y CONFIG_RT_USING_CPUTIME_RISCV=y -CONFIG_CPUTIME_TIMER_FREQ=300000000 +CONFIG_CPUTIME_TIMER_FREQ=10000000 # CONFIG_RT_USING_I2C is not set # CONFIG_RT_USING_PHY is not set CONFIG_RT_USING_PIN=y @@ -190,7 +192,7 @@ CONFIG_RT_USING_RANDOM=y # CONFIG_RT_USING_FDT is not set CONFIG_RT_USING_RTC=y # CONFIG_RT_USING_ALARM is not set -# CONFIG_RT_USING_SOFT_RTC is not set +CONFIG_RT_USING_SOFT_RTC=y # CONFIG_RT_USING_SDIO is not set # CONFIG_RT_USING_SPI is not set # CONFIG_RT_USING_WDT is not set diff --git a/bsp/qemu-virt64-riscv/applications/mnt.c b/bsp/qemu-virt64-riscv/applications/mnt.c index d3849c569a..ccf2b39809 100644 --- a/bsp/qemu-virt64-riscv/applications/mnt.c +++ b/bsp/qemu-virt64-riscv/applications/mnt.c @@ -19,9 +19,20 @@ int mnt_init(void) if (rt_device_find("virtio-blk0")) { /* mount virtio-blk as root directory */ - if (dfs_mount("virtio-blk0", "/", "elm", 0, RT_NULL) != 0) + if (dfs_mount("virtio-blk0", "/", "elm", 0, RT_NULL) == 0) { - LOG_E("virtio-blk0 mount failed\n"); + rt_kprintf("file system initialization done!\n"); + } + else + { + if (dfs_mount("virtio-blk0", "/", "ext", 0, RT_NULL) == 0) + { + rt_kprintf("file system initialization done!\n"); + } + else + { + rt_kprintf("file system initialization fail!\n"); + } } } diff --git a/bsp/qemu-virt64-riscv/rtconfig.h b/bsp/qemu-virt64-riscv/rtconfig.h index 2d174cf9d7..7780e1d51d 100644 --- a/bsp/qemu-virt64-riscv/rtconfig.h +++ b/bsp/qemu-virt64-riscv/rtconfig.h @@ -53,7 +53,7 @@ #define RT_USING_CONSOLE #define RT_CONSOLEBUF_SIZE 256 #define RT_CONSOLE_DEVICE_NAME "uart0" -#define RT_VER_NUM 0x50000 +#define RT_VER_NUM 0x50001 #define ARCH_CPU_64BIT #define RT_USING_CACHE #define RT_USING_HW_ATOMIC @@ -83,9 +83,10 @@ #define RT_USING_DFS #define DFS_USING_POSIX #define DFS_USING_WORKDIR +#define DFS_FD_MAX 32 +#define RT_USING_DFS_V1 #define DFS_FILESYSTEMS_MAX 4 #define DFS_FILESYSTEM_TYPES_MAX 4 -#define DFS_FD_MAX 32 #define RT_USING_DFS_ELMFAT /* elm-chan's FatFs, Generic FAT Filesystem Module */ @@ -117,12 +118,13 @@ #define RT_SERIAL_RB_BUFSZ 64 #define RT_USING_CPUTIME #define RT_USING_CPUTIME_RISCV -#define CPUTIME_TIMER_FREQ 300000000 +#define CPUTIME_TIMER_FREQ 10000000 #define RT_USING_PIN #define RT_USING_NULL #define RT_USING_ZERO #define RT_USING_RANDOM #define RT_USING_RTC +#define RT_USING_SOFT_RTC #define RT_USING_VIRTIO #define RT_USING_VIRTIO10 #define RT_USING_VIRTIO_BLK |
