summaryrefslogtreecommitdiff
path: root/bsp
diff options
context:
space:
mode:
Diffstat (limited to 'bsp')
-rw-r--r--bsp/simulator/.config8
-rw-r--r--bsp/simulator/Kconfig13
-rw-r--r--bsp/simulator/applications/mnt.c2
-rw-r--r--bsp/simulator/drivers/SConscript2
-rw-r--r--bsp/simulator/drivers/drv_rtc.c52
-rwxr-xr-xbsp/simulator/rtconfig.h4
6 files changed, 42 insertions, 39 deletions
diff --git a/bsp/simulator/.config b/bsp/simulator/.config
index c021694d72..98f45eb99c 100644
--- a/bsp/simulator/.config
+++ b/bsp/simulator/.config
@@ -164,7 +164,9 @@ CONFIG_RT_SERIAL_RB_BUFSZ=64
# CONFIG_RT_USING_MTD_NOR is not set
# CONFIG_RT_USING_MTD_NAND is not set
# CONFIG_RT_USING_PM is not set
-# CONFIG_RT_USING_RTC 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_SDIO is not set
# CONFIG_RT_USING_SPI is not set
# CONFIG_RT_USING_WDT is not set
@@ -705,8 +707,10 @@ CONFIG_NETDEV_IPV6=0
CONFIG_SOC_SIMULATOR=y
#
-# Onboard Peripheral Drivers
+# Peripheral Drivers
#
CONFIG_RT_USING_DFS_WINSHAREDIR=y
+CONFIG_BSP_USING_RTC=y
+# CONFIG_BSP_USING_ALARM is not set
CONFIG_BSP_USING_SOCKET=y
# CONFIG_BSP_USING_LVGL is not set
diff --git a/bsp/simulator/Kconfig b/bsp/simulator/Kconfig
index 31c1f75628..f30daf163b 100644
--- a/bsp/simulator/Kconfig
+++ b/bsp/simulator/Kconfig
@@ -24,13 +24,24 @@ config SOC_SIMULATOR
select RT_USING_USER_MAIN
default y
-menu "Onboard Peripheral Drivers"
+menu "Peripheral Drivers"
config RT_USING_DFS_WINSHAREDIR
bool "Enable shared file system between Windows"
select RT_USING_POSIX_FS
default y
+ config BSP_USING_RTC
+ bool "Enable RTC"
+ select RT_USING_RTC
+ default y
+
+ config BSP_USING_ALARM
+ bool "Enable RTC alarm"
+ select RT_USING_ALARM
+ depends on BSP_USING_RTC
+ default n
+
config BSP_USING_SOCKET
bool "Enable BSD Socket"
select RT_USING_POSIX_FS
diff --git a/bsp/simulator/applications/mnt.c b/bsp/simulator/applications/mnt.c
index d7e49b854f..a4a559404e 100644
--- a/bsp/simulator/applications/mnt.c
+++ b/bsp/simulator/applications/mnt.c
@@ -42,7 +42,7 @@ static int mnt_init(void)
else
{
LOG_W("[sd0] File System on SD ('sd0') initialization failed!");
- LOG_W("[sd0] Try to format and re-mount again...");
+ LOG_W("[sd0] Try to format and re-mount...");
if (dfs_mkfs("elm", "sd0") == 0)
{
if (dfs_mount("sd0", "/sd", "elm", 0, 0) == 0)
diff --git a/bsp/simulator/drivers/SConscript b/bsp/simulator/drivers/SConscript
index e5d9b6ad08..34f7103810 100644
--- a/bsp/simulator/drivers/SConscript
+++ b/bsp/simulator/drivers/SConscript
@@ -38,6 +38,8 @@ else:
LIBPATH.append(os.path.abspath(os.path.join(cwd, '../SDL2/lib/x86')))
CPPPATH.append(os.path.abspath(os.path.join(cwd, '../SDL2/include')))
+if GetDepend('BSP_USING_RTC') == False:
+ SrcRemove(src, 'drv_rtc.c')
if GetDepend('RT_USING_DFS') == False or GetDepend('RT_USING_DFS_ELMFAT') == False:
SrcRemove(src, 'sd_sim.c')
if GetDepend('RT_USING_DFS') == False or GetDepend('RT_USING_MTD_NAND') == False:
diff --git a/bsp/simulator/drivers/drv_rtc.c b/bsp/simulator/drivers/drv_rtc.c
index 8543b4c926..4f6f3a6e37 100644
--- a/bsp/simulator/drivers/drv_rtc.c
+++ b/bsp/simulator/drivers/drv_rtc.c
@@ -6,19 +6,15 @@
* Change Logs:
* Date Author Notes
* 2021-04-13 armink the first version
+ * 2022-05-17 Meco Man improve and beautify
*/
#include <sys/time.h>
-#include <string.h>
-#include <rtthread.h>
#include <rtdevice.h>
-#ifdef RT_USING_RTC
-
static struct rt_device rtc_dev;
-#ifdef RT_USING_ALARM
-
+#ifdef BSP_USING_ALARM
static struct rt_rtc_wkalarm wkalarm;
static struct rt_timer alarm_time;
@@ -42,15 +38,15 @@ static void soft_rtc_alarm_update(struct rt_rtc_wkalarm *palarm)
rt_timer_stop(&alarm_time);
}
}
-
-#endif
+#endif /* BSP_USING_ALARM */
static void get_rtc_timeval(struct timeval *tv)
{
struct tm newtime = { 0 };
SYSTEMTIME sys_time;
- GetSystemTime(&sys_time);
+ GetSystemTime(&sys_time); /* get RTC from Windows */
+
newtime.tm_year = sys_time.wYear - 1900;
newtime.tm_mon = sys_time.wMonth - 1;
newtime.tm_mday = sys_time.wDay;
@@ -62,9 +58,8 @@ static void get_rtc_timeval(struct timeval *tv)
tv->tv_usec = sys_time.wMilliseconds * 1000UL;
}
-static rt_err_t soft_rtc_control(rt_device_t dev, int cmd, void *args)
+static rt_err_t windows_rtc_control(rt_device_t dev, int cmd, void *args)
{
- __time32_t *t;
struct tm newtime;
RT_ASSERT(dev != RT_NULL);
@@ -83,22 +78,24 @@ static rt_err_t soft_rtc_control(rt_device_t dev, int cmd, void *args)
get_rtc_timeval((struct timeval *) args);
break;
}
+#ifdef BSP_USING_ALARM
case RT_DEVICE_CTRL_RTC_SET_TIME:
{
-#ifdef RT_USING_ALARM
soft_rtc_alarm_update(&wkalarm);
-#endif
break;
}
-#ifdef RT_USING_ALARM
case RT_DEVICE_CTRL_RTC_GET_ALARM:
+ {
*((struct rt_rtc_wkalarm *)args) = wkalarm;
break;
+ }
case RT_DEVICE_CTRL_RTC_SET_ALARM:
+ {
wkalarm = *((struct rt_rtc_wkalarm *)args);
soft_rtc_alarm_update(&wkalarm);
break;
-#endif
+ }
+#endif /* BSP_USING_ALARM */
default:
return -RT_ERROR;
}
@@ -114,22 +111,16 @@ const static struct rt_device_ops soft_rtc_ops =
RT_NULL,
RT_NULL,
RT_NULL,
- soft_rtc_control
+ windows_rtc_control
};
#endif
-int rt_win_rtc_init(void)
+int rt_windows_rtc_init(void)
{
- static rt_bool_t init_ok = RT_FALSE;
-
- if (init_ok)
- {
- return 0;
- }
/* make sure only one 'rtc' device */
RT_ASSERT(!rt_device_find("rtc"));
-#ifdef RT_USING_ALARM
+#ifdef BSP_USING_ALARM
rt_timer_init(&alarm_time,
"alarm",
alarm_timeout,
@@ -149,18 +140,11 @@ int rt_win_rtc_init(void)
rtc_dev.close = RT_NULL;
rtc_dev.read = RT_NULL;
rtc_dev.write = RT_NULL;
- rtc_dev.control = soft_rtc_control;
+ rtc_dev.control = windows_rtc_control;
#endif
-
- /* no private */
- rtc_dev.user_data = RT_NULL;
+ rtc_dev.user_data = RT_NULL; /* no private */
rt_device_register(&rtc_dev, "rtc", RT_DEVICE_FLAG_RDWR);
-
- init_ok = RT_TRUE;
-
return 0;
}
-INIT_BOARD_EXPORT(rt_win_rtc_init);
-
-#endif /* RT_USING_RTC */
+INIT_BOARD_EXPORT(rt_windows_rtc_init);
diff --git a/bsp/simulator/rtconfig.h b/bsp/simulator/rtconfig.h
index 23d4fd1866..61324fe133 100755
--- a/bsp/simulator/rtconfig.h
+++ b/bsp/simulator/rtconfig.h
@@ -98,6 +98,7 @@
#define RT_USING_SERIAL_V1
#define RT_SERIAL_USING_DMA
#define RT_SERIAL_RB_BUFSZ 64
+#define RT_USING_RTC
/* Using USB */
@@ -217,9 +218,10 @@
#define SOC_SIMULATOR
-/* Onboard Peripheral Drivers */
+/* Peripheral Drivers */
#define RT_USING_DFS_WINSHAREDIR
+#define BSP_USING_RTC
#define BSP_USING_SOCKET
#include "rtconfig_project.h"