Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
混口饭吃,
rt-thread
提交
b2046515
R
rt-thread
项目概览
混口饭吃,
/
rt-thread
与 Fork 源项目一致
Fork自
Mr_Pangza / rt-thread
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
R
rt-thread
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
未验证
提交
b2046515
编写于
2月 20, 2021
作者:
B
Bernard Xiong
提交者:
GitHub
2月 20, 2021
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #4333 from mysterywolf/pthread
[pthread][libc][time] 修改pthread与libc的时间函数若干问题
上级
e5969210
598aa86f
变更
16
显示空白变更内容
内联
并排
Showing
16 changed file
with
623 addition
and
340 deletion
+623
-340
bsp/fh8620/rtconfig.h
bsp/fh8620/rtconfig.h
+3
-1
bsp/ls1cdev/.config
bsp/ls1cdev/.config
+282
-35
bsp/ls1cdev/rtconfig.h
bsp/ls1cdev/rtconfig.h
+68
-4
bsp/mini2440/drivers/board.c
bsp/mini2440/drivers/board.c
+6
-0
bsp/zynq7000/rtconfig.h
bsp/zynq7000/rtconfig.h
+4
-2
components/libc/compilers/armlibc/libc_syms.c
components/libc/compilers/armlibc/libc_syms.c
+0
-7
components/libc/compilers/common/sys/time.h
components/libc/compilers/common/sys/time.h
+36
-0
components/libc/compilers/common/time.c
components/libc/compilers/common/time.c
+196
-1
components/libc/compilers/common/unistd.c
components/libc/compilers/common/unistd.c
+26
-1
components/libc/compilers/newlib/libc_syms.c
components/libc/compilers/newlib/libc_syms.c
+0
-4
components/libc/pthreads/pthread.c
components/libc/pthreads/pthread.c
+1
-1
components/libc/pthreads/pthread_internal.h
components/libc/pthreads/pthread_internal.h
+1
-2
components/libc/time/SConscript
components/libc/time/SConscript
+0
-12
components/libc/time/clock_time.c
components/libc/time/clock_time.c
+0
-188
components/libc/time/clock_time.h
components/libc/time/clock_time.h
+0
-52
components/libc/time/posix_sleep.c
components/libc/time/posix_sleep.c
+0
-30
未找到文件。
bsp/fh8620/rtconfig.h
浏览文件 @
b2046515
...
...
@@ -111,6 +111,8 @@
// <section name="LIBC" description="C Runtime library setting" default="always" >
// <bool name="RT_USING_LIBC" description="Using C library" default="true" />
#define RT_USING_LIBC
// <bool name="RT_USING_POSIX" description="Using POSIX library" default="true" />
#define RT_USING_POSIX
// <bool name="RT_USING_PTHREADS" description="Using POSIX threads library" default="true" />
#define RT_USING_PTHREADS
// <bool name="RT_USING_CPLUSPLUS" description="Support C++ programming language" default="true" />
...
...
@@ -118,7 +120,7 @@
// </section>
// <section name="RT_USING_DFS" description="Device file system" default="true" >
//
#define RT_USING_DFS
#define RT_USING_DFS
// <bool name="DFS_USING_WORKDIR" description="Using working directory" default="true" />
#define DFS_USING_WORKDIR
// <integer name="DFS_FILESYSTEMS_MAX" description="The maximal number of mounted file system" default="4" />
...
...
bsp/ls1cdev/.config
浏览文件 @
b2046515
...
...
@@ -7,6 +7,8 @@
# RT-Thread Kernel
#
CONFIG_RT_NAME_MAX
=
10
# CONFIG_RT_USING_ARCH_DATA_TYPE is not set
# CONFIG_RT_USING_SMP is not set
CONFIG_RT_ALIGN_SIZE
=
8
# CONFIG_RT_THREAD_PRIORITY_8 is not set
CONFIG_RT_THREAD_PRIORITY_32
=
y
...
...
@@ -15,6 +17,7 @@ CONFIG_RT_THREAD_PRIORITY_MAX=32
CONFIG_RT_TICK_PER_SECOND
=
1000
CONFIG_RT_USING_OVERFLOW_CHECK
=
y
CONFIG_RT_USING_HOOK
=
y
CONFIG_RT_USING_IDLE_HOOK
=
y
CONFIG_RT_IDLE_HOOK_LIST_SIZE
=
4
CONFIG_IDLE_THREAD_STACK_SIZE
=
1024
# CONFIG_RT_USING_TIMER_SOFT is not set
...
...
@@ -50,6 +53,7 @@ CONFIG_RT_USING_MEMHEAP=y
CONFIG_RT_USING_SMALL_MEM
=
y
# CONFIG_RT_USING_SLAB is not set
# CONFIG_RT_USING_MEMHEAP_AS_HEAP is not set
# CONFIG_RT_USING_USERHEAP is not set
# CONFIG_RT_USING_MEMTRACE is not set
CONFIG_RT_USING_HEAP
=
y
...
...
@@ -62,6 +66,9 @@ CONFIG_RT_USING_INTERRUPT_INFO=y
CONFIG_RT_USING_CONSOLE
=
y
CONFIG_RT_CONSOLEBUF_SIZE
=
128
CONFIG_RT_CONSOLE_DEVICE_NAME
=
"uart2"
CONFIG_RT_VER_NUM
=
0
x40003
# CONFIG_RT_USING_CPU_FFS is not set
# CONFIG_ARCH_CPU_STACK_GROWS_UPWARD is not set
#
# RT-Thread Components
...
...
@@ -116,12 +123,17 @@ CONFIG_RT_DFS_ELM_USE_LFN_0=y
# CONFIG_RT_DFS_ELM_USE_LFN_2 is not set
# CONFIG_RT_DFS_ELM_USE_LFN_3 is not set
CONFIG_RT_DFS_ELM_USE_LFN
=
0
CONFIG_RT_DFS_ELM_LFN_UNICODE_0
=
y
# CONFIG_RT_DFS_ELM_LFN_UNICODE_1 is not set
# CONFIG_RT_DFS_ELM_LFN_UNICODE_2 is not set
# CONFIG_RT_DFS_ELM_LFN_UNICODE_3 is not set
CONFIG_RT_DFS_ELM_LFN_UNICODE
=
0
CONFIG_RT_DFS_ELM_MAX_LFN
=
64
CONFIG_RT_DFS_ELM_DRIVES
=
2
CONFIG_RT_DFS_ELM_MAX_SECTOR_SIZE
=
512
# CONFIG_RT_DFS_ELM_USE_ERASE is not set
CONFIG_RT_DFS_ELM_REENTRANT
=
y
# CONFIG_RT_USING_DFS_DEVFS is not set
CONFIG_RT_USING_DFS_DEVFS
=
y
# CONFIG_RT_USING_DFS_ROMFS is not set
# CONFIG_RT_USING_DFS_RAMFS is not set
# CONFIG_RT_USING_DFS_UFFS is not set
...
...
@@ -133,35 +145,41 @@ CONFIG_RT_DFS_ELM_REENTRANT=y
#
CONFIG_RT_USING_DEVICE_IPC
=
y
CONFIG_RT_PIPE_BUFSZ
=
512
# CONFIG_RT_USING_SYSTEM_WORKQUEUE is not set
CONFIG_RT_USING_SERIAL
=
y
CONFIG_RT_SERIAL_USING_DMA
=
y
CONFIG_RT_SERIAL_RB_BUFSZ
=
64
CONFIG_RT_USING_CAN
=
y
# CONFIG_RT_CAN_USING_HDR is not set
# CONFIG_RT_USING_HWTIMER is not set
# CONFIG_RT_USING_CPUTIME is not set
CONFIG_RT_USING_I2C
=
y
# CONFIG_RT_I2C_DEBUG is not set
CONFIG_RT_USING_I2C_BITOPS
=
y
# CONFIG_RT_I2C_BITOPS_DEBUG is not set
# CONFIG_RT_USING_PHY is not set
CONFIG_RT_USING_PIN
=
y
# CONFIG_RT_USING_ADC is not set
# CONFIG_RT_USING_DAC is not set
# CONFIG_RT_USING_PWM is not set
# CONFIG_RT_USING_MTD_NOR is not set
# CONFIG_RT_USING_MTD_NAND is not set
# CONFIG_RT_USING_MTD is not set
# CONFIG_RT_USING_PM is not set
# CONFIG_RT_USING_RTC is not set
# CONFIG_RT_USING_SDIO is not set
CONFIG_RT_USING_SPI
=
y
# CONFIG_RT_USING_QSPI is not set
CONFIG_RT_USING_SPI_MSD
=
y
# CONFIG_RT_USING_SFUD is not set
# CONFIG_RT_USING_W25QXX is not set
# CONFIG_RT_USING_GD is not set
# CONFIG_RT_USING_ENC28J60 is not set
# CONFIG_RT_USING_SPI_WIFI is not set
# CONFIG_RT_USING_WDT is not set
# CONFIG_RT_USING_AUDIO is not set
#
# Using WiFi
#
# CONFIG_RT_USING_SENSOR is not set
# CONFIG_RT_USING_TOUCH is not set
# CONFIG_RT_USING_HWCRYPTO is not set
# CONFIG_RT_USING_PULSE_ENCODER is not set
# CONFIG_RT_USING_INPUT_CAPTURE is not set
# CONFIG_RT_USING_WIFI is not set
#
...
...
@@ -175,7 +193,12 @@ CONFIG_RT_USING_SPI_MSD=y
#
CONFIG_RT_USING_LIBC
=
y
CONFIG_RT_USING_PTHREADS
=
y
# CONFIG_RT_USING_POSIX is not set
CONFIG_PTHREAD_NUM_MAX
=
8
CONFIG_RT_USING_POSIX
=
y
# CONFIG_RT_USING_POSIX_MMAP is not set
# CONFIG_RT_USING_POSIX_TERMIOS is not set
# CONFIG_RT_USING_POSIX_GETLINE is not set
# CONFIG_RT_USING_POSIX_AIO is not set
# CONFIG_RT_USING_MODULE is not set
#
...
...
@@ -187,13 +210,20 @@ CONFIG_RT_USING_PTHREADS=y
#
# CONFIG_RT_USING_SAL is not set
#
# Network interface device
#
# CONFIG_RT_USING_NETDEV is not set
CONFIG_NETDEV_USING_PING
=
y
#
# light weight TCP/IP stack
#
CONFIG_RT_USING_LWIP
=
y
CONFIG_RT_USING_LWIP141
=
y
# CONFIG_RT_USING_LWIP202 is not set
# CONFIG_RT_USING_LWIP210 is not set
# CONFIG_RT_USING_LWIP212 is not set
CONFIG_RT_LWIP_MEM_ALIGNMENT
=
4
CONFIG_RT_LWIP_IGMP
=
y
CONFIG_RT_LWIP_ICMP
=
y
# CONFIG_RT_LWIP_SNMP is not set
...
...
@@ -210,7 +240,7 @@ CONFIG_RT_LWIP_GWADDR="192.168.1.1"
CONFIG_RT_LWIP_MSKADDR
=
"255.255.255.0"
CONFIG_RT_LWIP_UDP
=
y
CONFIG_RT_LWIP_TCP
=
y
# CONFIG_RT_LWIP_RAW is not set
CONFIG_RT_LWIP_RAW
=
y
# CONFIG_RT_LWIP_PPP is not set
CONFIG_RT_MEMP_NUM_NETCONN
=
8
CONFIG_RT_LWIP_PBUF_NUM
=
4
...
...
@@ -230,20 +260,19 @@ CONFIG_RT_LWIP_ETHTHREAD_STACKSIZE=512
CONFIG_RT_LWIP_ETHTHREAD_MBOX_SIZE
=
8
# CONFIG_RT_LWIP_REASSEMBLY_FRAG is not set
CONFIG_LWIP_NETIF_STATUS_CALLBACK
=
1
CONFIG_LWIP_NETIF_LINK_CALLBACK
=
1
CONFIG_SO_REUSE
=
1
CONFIG_LWIP_SO_RCVTIMEO
=
1
CONFIG_LWIP_SO_SNDTIMEO
=
1
CONFIG_LWIP_SO_RCVBUF
=
1
CONFIG_LWIP_SO_LINGER
=
0
# CONFIG_RT_LWIP_NETIF_LOOPBACK is not set
CONFIG_LWIP_NETIF_LOOPBACK
=
0
# CONFIG_RT_LWIP_STATS is not set
# CONFIG_RT_LWIP_USING_HW_CHECKSUM is not set
CONFIG_RT_LWIP_USING_PING
=
y
# CONFIG_RT_LWIP_DEBUG is not set
#
# Modbus master and slave stack
#
# CONFIG_RT_USING_MODBUS is not set
#
# AT commands
#
...
...
@@ -258,39 +287,39 @@ CONFIG_LWIP_NETIF_LOOPBACK=0
#
# Utilities
#
# CONFIG_RT_USING_LOGTRACE is not set
# CONFIG_RT_USING_RYM is not set
# CONFIG_RT_USING_ULOG is not set
# CONFIG_RT_USING_UTEST is not set
#
# RT-Thread
online packages
# RT-Thread
MIPS CPU
#
# CONFIG_RT_USING_FPU is not set
#
#
system
packages
#
RT-Thread online
packages
#
#
# RT-Thread GUI Engine
#
# CONFIG_PKG_USING_GUIENGINE is not set
# CONFIG_PKG_USING_LWEXT4 is not set
# CONFIG_PKG_USING_PARTITION is not set
# CONFIG_PKG_USING_SQLITE is not set
# CONFIG_PKG_USING_RTI is not set
#
# IoT - internet of things
#
# CONFIG_PKG_USING_LORAWAN_DRIVER is not set
# CONFIG_PKG_USING_PAHOMQTT is not set
# CONFIG_PKG_USING_UMQTT is not set
# CONFIG_PKG_USING_WEBCLIENT is not set
# CONFIG_PKG_USING_WEBNET is not set
# CONFIG_PKG_USING_MONGOOSE is not set
# CONFIG_PKG_USING_MYMQTT is not set
# CONFIG_PKG_USING_KAWAII_MQTT is not set
# CONFIG_PKG_USING_BC28_MQTT is not set
# CONFIG_PKG_USING_WEBTERMINAL is not set
# CONFIG_PKG_USING_CJSON is not set
# CONFIG_PKG_USING_JSMN is not set
# CONFIG_PKG_USING_LIBMODBUS is not set
# CONFIG_PKG_USING_FREEMODBUS is not set
# CONFIG_PKG_USING_LJSON is not set
# CONFIG_PKG_USING_EZXML is not set
# CONFIG_PKG_USING_NANOPB is not set
# CONFIG_PKG_USING_GAGENT_CLOUD is not set
#
# Wi-Fi
...
...
@@ -305,9 +334,51 @@ CONFIG_LWIP_NETIF_LOOPBACK=0
# Wiced WiFi
#
# CONFIG_PKG_USING_WLAN_WICED is not set
# CONFIG_PKG_USING_RW007 is not set
# CONFIG_PKG_USING_COAP is not set
# CONFIG_PKG_USING_NOPOLL is not set
# CONFIG_PKG_USING_NETUTILS is not set
# CONFIG_PKG_USING_CMUX is not set
# CONFIG_PKG_USING_PPP_DEVICE is not set
# CONFIG_PKG_USING_AT_DEVICE is not set
# CONFIG_PKG_USING_ATSRV_SOCKET is not set
# CONFIG_PKG_USING_WIZNET is not set
#
# IoT Cloud
#
# CONFIG_PKG_USING_ONENET is not set
# CONFIG_PKG_USING_GAGENT_CLOUD is not set
# CONFIG_PKG_USING_ALI_IOTKIT is not set
# CONFIG_PKG_USING_AZURE is not set
# CONFIG_PKG_USING_TENCENT_IOT_EXPLORER is not set
# CONFIG_PKG_USING_JIOT-C-SDK is not set
# CONFIG_PKG_USING_UCLOUD_IOT_SDK is not set
# CONFIG_PKG_USING_JOYLINK is not set
# CONFIG_PKG_USING_NIMBLE is not set
# CONFIG_PKG_USING_OTA_DOWNLOADER is not set
# CONFIG_PKG_USING_IPMSG is not set
# CONFIG_PKG_USING_LSSDP is not set
# CONFIG_PKG_USING_AIRKISS_OPEN is not set
# CONFIG_PKG_USING_LIBRWS is not set
# CONFIG_PKG_USING_TCPSERVER is not set
# CONFIG_PKG_USING_PROTOBUF_C is not set
# CONFIG_PKG_USING_ONNX_PARSER is not set
# CONFIG_PKG_USING_ONNX_BACKEND is not set
# CONFIG_PKG_USING_DLT645 is not set
# CONFIG_PKG_USING_QXWZ is not set
# CONFIG_PKG_USING_SMTP_CLIENT is not set
# CONFIG_PKG_USING_ABUP_FOTA is not set
# CONFIG_PKG_USING_LIBCURL2RTT is not set
# CONFIG_PKG_USING_CAPNP is not set
# CONFIG_PKG_USING_RT_CJSON_TOOLS is not set
# CONFIG_PKG_USING_AGILE_TELNET is not set
# CONFIG_PKG_USING_NMEALIB is not set
# CONFIG_PKG_USING_AGILE_JSMN is not set
# CONFIG_PKG_USING_PDULIB is not set
# CONFIG_PKG_USING_BTSTACK is not set
# CONFIG_PKG_USING_LORAWAN_ED_STACK is not set
# CONFIG_PKG_USING_WAYZ_IOTKIT is not set
#
# security packages
...
...
@@ -315,10 +386,13 @@ CONFIG_LWIP_NETIF_LOOPBACK=0
# CONFIG_PKG_USING_MBEDTLS is not set
# CONFIG_PKG_USING_libsodium is not set
# CONFIG_PKG_USING_TINYCRYPT is not set
# CONFIG_PKG_USING_TFM is not set
# CONFIG_PKG_USING_YD_CRYPTO is not set
#
# language packages
#
# CONFIG_PKG_USING_LUA is not set
# CONFIG_PKG_USING_JERRYSCRIPT is not set
# CONFIG_PKG_USING_MICROPYTHON is not set
...
...
@@ -326,35 +400,208 @@ CONFIG_LWIP_NETIF_LOOPBACK=0
# multimedia packages
#
# CONFIG_PKG_USING_OPENMV is not set
# CONFIG_PKG_USING_MUPDF is not set
# CONFIG_PKG_USING_STEMWIN is not set
# CONFIG_PKG_USING_WAVPLAYER is not set
# CONFIG_PKG_USING_TJPGD is not set
# CONFIG_PKG_USING_HELIX is not set
# CONFIG_PKG_USING_AZUREGUIX is not set
# CONFIG_PKG_USING_TOUCHGFX2RTT is not set
#
# tools packages
#
# CONFIG_PKG_USING_CMBACKTRACE is not set
# CONFIG_PKG_USING_EASYFLASH is not set
# CONFIG_PKG_USING_EASYLOGGER is not set
# CONFIG_PKG_USING_SYSTEMVIEW is not set
# CONFIG_PKG_USING_IPERF is not set
# CONFIG_PKG_USING_RDB is not set
# CONFIG_PKG_USING_QRCODE is not set
# CONFIG_PKG_USING_ULOG_EASYFLASH is not set
# CONFIG_PKG_USING_ULOG_FILE is not set
# CONFIG_PKG_USING_LOGMGR is not set
# CONFIG_PKG_USING_ADBD is not set
# CONFIG_PKG_USING_COREMARK is not set
# CONFIG_PKG_USING_DHRYSTONE is not set
# CONFIG_PKG_USING_MEMORYPERF is not set
# CONFIG_PKG_USING_NR_MICRO_SHELL is not set
# CONFIG_PKG_USING_CHINESE_FONT_LIBRARY is not set
# CONFIG_PKG_USING_LUNAR_CALENDAR is not set
# CONFIG_PKG_USING_BS8116A is not set
# CONFIG_PKG_USING_GPS_RMC is not set
# CONFIG_PKG_USING_URLENCODE is not set
# CONFIG_PKG_USING_UMCN is not set
# CONFIG_PKG_USING_LWRB2RTT is not set
# CONFIG_PKG_USING_CPU_USAGE is not set
# CONFIG_PKG_USING_GBK2UTF8 is not set
# CONFIG_PKG_USING_VCONSOLE is not set
# CONFIG_PKG_USING_KDB is not set
#
# system packages
#
# CONFIG_PKG_USING_GUIENGINE is not set
# CONFIG_PKG_USING_CAIRO is not set
# CONFIG_PKG_USING_PIXMAN is not set
# CONFIG_PKG_USING_LWEXT4 is not set
# CONFIG_PKG_USING_PARTITION is not set
# CONFIG_PKG_USING_FAL is not set
# CONFIG_PKG_USING_FLASHDB is not set
# CONFIG_PKG_USING_SQLITE is not set
# CONFIG_PKG_USING_RTI is not set
# CONFIG_PKG_USING_LITTLEVGL2RTT is not set
# CONFIG_PKG_USING_CMSIS is not set
# CONFIG_PKG_USING_DFS_YAFFS is not set
# CONFIG_PKG_USING_LITTLEFS is not set
# CONFIG_PKG_USING_THREAD_POOL is not set
# CONFIG_PKG_USING_ROBOTS is not set
# CONFIG_PKG_USING_EV is not set
# CONFIG_PKG_USING_SYSWATCH is not set
# CONFIG_PKG_USING_SYS_LOAD_MONITOR is not set
# CONFIG_PKG_USING_PLCCORE is not set
# CONFIG_PKG_USING_RAMDISK is not set
# CONFIG_PKG_USING_MININI is not set
# CONFIG_PKG_USING_QBOOT is not set
#
# Micrium: Micrium software products porting for RT-Thread
#
# CONFIG_PKG_USING_UCOSIII_WRAPPER is not set
# CONFIG_PKG_USING_UCOSII_WRAPPER is not set
# CONFIG_PKG_USING_UC_CRC is not set
# CONFIG_PKG_USING_UC_CLK is not set
# CONFIG_PKG_USING_UC_COMMON is not set
# CONFIG_PKG_USING_UC_MODBUS is not set
# CONFIG_PKG_USING_PPOOL is not set
# CONFIG_PKG_USING_OPENAMP is not set
# CONFIG_PKG_USING_RT_PRINTF is not set
# CONFIG_PKG_USING_RT_MEMCPY_CM is not set
#
# peripheral libraries and drivers
#
# CONFIG_PKG_USING_SENSORS_DRIVERS is not set
# CONFIG_PKG_USING_REALTEK_AMEBA is not set
# CONFIG_PKG_USING_SHT2X is not set
# CONFIG_PKG_USING_SHT3X is not set
# CONFIG_PKG_USING_AS7341 is not set
# CONFIG_PKG_USING_STM32_SDIO is not set
# CONFIG_PKG_USING_ICM20608 is not set
# CONFIG_PKG_USING_U8G2 is not set
# CONFIG_PKG_USING_BUTTON is not set
# CONFIG_PKG_USING_PCF8574 is not set
# CONFIG_PKG_USING_SX12XX is not set
# CONFIG_PKG_USING_SIGNAL_LED is not set
# CONFIG_PKG_USING_LEDBLINK is not set
# CONFIG_PKG_USING_LITTLED is not set
# CONFIG_PKG_USING_LKDGUI is not set
# CONFIG_PKG_USING_NRF5X_SDK is not set
# CONFIG_PKG_USING_NRFX is not set
# CONFIG_PKG_USING_WM_LIBRARIES is not set
# CONFIG_PKG_USING_KENDRYTE_SDK is not set
# CONFIG_PKG_USING_INFRARED is not set
# CONFIG_PKG_USING_ROSSERIAL is not set
# CONFIG_PKG_USING_AGILE_BUTTON is not set
# CONFIG_PKG_USING_AGILE_LED is not set
# CONFIG_PKG_USING_AT24CXX is not set
# CONFIG_PKG_USING_MOTIONDRIVER2RTT is not set
# CONFIG_PKG_USING_AD7746 is not set
# CONFIG_PKG_USING_PCA9685 is not set
# CONFIG_PKG_USING_I2C_TOOLS is not set
# CONFIG_PKG_USING_NRF24L01 is not set
# CONFIG_PKG_USING_TOUCH_DRIVERS is not set
# CONFIG_PKG_USING_MAX17048 is not set
# CONFIG_PKG_USING_RPLIDAR is not set
# CONFIG_PKG_USING_AS608 is not set
# CONFIG_PKG_USING_RC522 is not set
# CONFIG_PKG_USING_WS2812B is not set
# CONFIG_PKG_USING_EMBARC_BSP is not set
# CONFIG_PKG_USING_EXTERN_RTC_DRIVERS is not set
# CONFIG_PKG_USING_MULTI_RTIMER is not set
# CONFIG_PKG_USING_MAX7219 is not set
# CONFIG_PKG_USING_BEEP is not set
# CONFIG_PKG_USING_EASYBLINK is not set
# CONFIG_PKG_USING_PMS_SERIES is not set
# CONFIG_PKG_USING_CAN_YMODEM is not set
# CONFIG_PKG_USING_LORA_RADIO_DRIVER is not set
# CONFIG_PKG_USING_QLED is not set
# CONFIG_PKG_USING_PAJ7620 is not set
# CONFIG_PKG_USING_AGILE_CONSOLE is not set
# CONFIG_PKG_USING_LD3320 is not set
# CONFIG_PKG_USING_WK2124 is not set
# CONFIG_PKG_USING_LY68L6400 is not set
# CONFIG_PKG_USING_DM9051 is not set
# CONFIG_PKG_USING_SSD1306 is not set
# CONFIG_PKG_USING_QKEY is not set
# CONFIG_PKG_USING_RS485 is not set
# CONFIG_PKG_USING_NES is not set
# CONFIG_PKG_USING_VIRTUAL_SENSOR is not set
# CONFIG_PKG_USING_VDEVICE is not set
# CONFIG_PKG_USING_SGM706 is not set
#
# miscellaneous packages
#
# CONFIG_PKG_USING_LIBCSV is not set
# CONFIG_PKG_USING_OPTPARSE is not set
# CONFIG_PKG_USING_FASTLZ is not set
# CONFIG_PKG_USING_MINILZO is not set
# CONFIG_PKG_USING_QUICKLZ is not set
# CONFIG_PKG_USING_LZMA is not set
# CONFIG_PKG_USING_MULTIBUTTON is not set
#
# example package: hello
#
# CONFIG_PKG_USING_FLEXIBLE_BUTTON is not set
# CONFIG_PKG_USING_CANFESTIVAL is not set
# CONFIG_PKG_USING_ZLIB is not set
# CONFIG_PKG_USING_DSTR is not set
# CONFIG_PKG_USING_TINYFRAME is not set
# CONFIG_PKG_USING_KENDRYTE_DEMO is not set
# CONFIG_PKG_USING_DIGITALCTRL is not set
# CONFIG_PKG_USING_UPACKER is not set
# CONFIG_PKG_USING_UPARAM is not set
#
# samples: kernel and components samples
#
# CONFIG_PKG_USING_KERNEL_SAMPLES is not set
# CONFIG_PKG_USING_FILESYSTEM_SAMPLES is not set
# CONFIG_PKG_USING_NETWORK_SAMPLES is not set
# CONFIG_PKG_USING_PERIPHERAL_SAMPLES is not set
# CONFIG_PKG_USING_HELLO is not set
# CONFIG_PKG_USING_VI is not set
# CONFIG_PKG_USING_KI is not set
# CONFIG_PKG_USING_NNOM is not set
# CONFIG_PKG_USING_LIBANN is not set
# CONFIG_PKG_USING_ELAPACK is not set
# CONFIG_PKG_USING_ARMv7M_DWT is not set
# CONFIG_PKG_USING_VT100 is not set
# CONFIG_PKG_USING_ULAPACK is not set
# CONFIG_PKG_USING_UKAL is not set
# CONFIG_PKG_USING_CRCLIB is not set
#
# games: games run on RT-Thread console
#
# CONFIG_PKG_USING_THREES is not set
# CONFIG_PKG_USING_2048 is not set
# CONFIG_PKG_USING_SNAKE is not set
# CONFIG_PKG_USING_TETRIS is not set
# CONFIG_PKG_USING_LWGPS is not set
# CONFIG_PKG_USING_TENSORFLOWLITEMICRO is not set
# CONFIG_PKG_USING_STATE_MACHINE is not set
CONFIG_SOC_LS1C300
=
y
CONFIG_RT_LS1C_OPENLOONGSON
=
y
# CONFIG_RT_LS1C_BAICAIBOARD is not set
# CONFIG_RT_USING_SELF_BOOT is not set
CONFIG_RT_USING_UART2
=
y
CONFIG_RT_USING_UART1
=
y
# CONFIG_RT_USING_UART3 is not set
CONFIG_RT_UART_RX_BUFFER_SIZE
=
64
CONFIG_RT_USING_GMAC_INT_MODE
=
y
# CONFIG_RT_USING_FPU is not set
# CONFIG_RT_USING_SPI0 is not set
# CONFIG_RT_USING_SPI1 is not set
CONFIG_RT_USING_I2C1
=
y
CONFIG_RT_USING_I2C2
=
y
CONFIG_USING_BXCAN0
=
y
CONFIG_USING_BXCAN1
=
y
CONFIG_NO_TOUCH
=
y
# CONFIG_TINA_USING_TOUCH is not set
bsp/ls1cdev/rtconfig.h
浏览文件 @
b2046515
...
...
@@ -41,7 +41,7 @@
#define RT_USING_CONSOLE
#define RT_CONSOLEBUF_SIZE 128
#define RT_CONSOLE_DEVICE_NAME "uart2"
#define RT_VER_NUM 0x4000
2
#define RT_VER_NUM 0x4000
3
/* RT-Thread Components */
...
...
@@ -75,6 +75,21 @@
#define DFS_FILESYSTEMS_MAX 2
#define DFS_FILESYSTEM_TYPES_MAX 2
#define DFS_FD_MAX 4
#define RT_USING_DFS_ELMFAT
/* elm-chan's FatFs, Generic FAT Filesystem Module */
#define RT_DFS_ELM_CODE_PAGE 936
#define RT_DFS_ELM_WORD_ACCESS
#define RT_DFS_ELM_USE_LFN_0
#define RT_DFS_ELM_USE_LFN 0
#define RT_DFS_ELM_LFN_UNICODE_0
#define RT_DFS_ELM_LFN_UNICODE 0
#define RT_DFS_ELM_MAX_LFN 64
#define RT_DFS_ELM_DRIVES 2
#define RT_DFS_ELM_MAX_SECTOR_SIZE 512
#define RT_DFS_ELM_REENTRANT
#define RT_USING_DFS_DEVFS
/* Device Drivers */
...
...
@@ -98,6 +113,7 @@
#define RT_USING_LIBC
#define RT_USING_PTHREADS
#define PTHREAD_NUM_MAX 8
#define RT_USING_POSIX
/* Network */
...
...
@@ -106,9 +122,51 @@
/* Network interface device */
#define NETDEV_USING_PING
/* light weight TCP/IP stack */
#define RT_USING_LWIP
#define RT_USING_LWIP141
#define RT_LWIP_MEM_ALIGNMENT 4
#define RT_LWIP_IGMP
#define RT_LWIP_ICMP
#define RT_LWIP_DNS
#define RT_LWIP_DHCP
#define IP_SOF_BROADCAST 1
#define IP_SOF_BROADCAST_RECV 1
/* Static IPv4 Address */
#define RT_LWIP_IPADDR "192.168.1.254"
#define RT_LWIP_GWADDR "192.168.1.1"
#define RT_LWIP_MSKADDR "255.255.255.0"
#define RT_LWIP_UDP
#define RT_LWIP_TCP
#define RT_LWIP_RAW
#define RT_MEMP_NUM_NETCONN 8
#define RT_LWIP_PBUF_NUM 4
#define RT_LWIP_RAW_PCB_NUM 4
#define RT_LWIP_UDP_PCB_NUM 4
#define RT_LWIP_TCP_PCB_NUM 3
#define RT_LWIP_TCP_SEG_NUM 40
#define RT_LWIP_TCP_SND_BUF 4096
#define RT_LWIP_TCP_WND 2048
#define RT_LWIP_TCPTHREAD_PRIORITY 12
#define RT_LWIP_TCPTHREAD_MBOX_SIZE 8
#define RT_LWIP_TCPTHREAD_STACKSIZE 4096
#define RT_LWIP_ETHTHREAD_PRIORITY 14
#define RT_LWIP_ETHTHREAD_STACKSIZE 512
#define RT_LWIP_ETHTHREAD_MBOX_SIZE 8
#define LWIP_NETIF_STATUS_CALLBACK 1
#define LWIP_NETIF_LINK_CALLBACK 1
#define SO_REUSE 1
#define LWIP_SO_RCVTIMEO 1
#define LWIP_SO_SNDTIMEO 1
#define LWIP_SO_RCVBUF 1
#define LWIP_SO_LINGER 0
#define LWIP_NETIF_LOOPBACK 0
#define RT_LWIP_USING_PING
/* AT commands */
...
...
@@ -153,6 +211,9 @@
/* system packages */
/* Micrium: Micrium software products porting for RT-Thread */
/* peripheral libraries and drivers */
...
...
@@ -161,16 +222,19 @@
/* samples: kernel and components samples */
/* games: games run on RT-Thread console */
#define SOC_LS1C300
#define RT_LS1C_BAICAIBOARD
#define RT_USING_SELF_BOOT
#define RT_SELF_BOOT_DEBUG
#define RT_LS1C_OPENLOONGSON
#define RT_USING_UART2
#define RT_USING_UART1
#define RT_UART_RX_BUFFER_SIZE 64
#define RT_USING_GMAC_INT_MODE
#define RT_USING_I2C1
#define RT_USING_I2C2
#define USING_BXCAN0
#define USING_BXCAN1
#define NO_TOUCH
#endif
bsp/mini2440/drivers/board.c
浏览文件 @
b2046515
...
...
@@ -125,4 +125,10 @@ void rt_hw_board_init(void)
#endif
}
void
rt_hw_us_delay
(
rt_uint32_t
us
)
{
}
/*@}*/
bsp/zynq7000/rtconfig.h
浏览文件 @
b2046515
...
...
@@ -107,12 +107,14 @@
// <section name="LIBC" description="C Runtime library setting" default="always" >
// <bool name="RT_USING_LIBC" description="Using C library" default="true" />
#define RT_USING_LIBC
// <bool name="RT_USING_POSIX" description="Using POSIX library" default="true" />
#define RT_USING_POSIX
// <bool name="RT_USING_PTHREADS" description="Using POSIX threads library" default="true" />
#define RT_USING_PTHREADS
// </section>
// <section name="RT_USING_DFS" description="Device file system" default="true" >
//
#define RT_USING_DFS
#define RT_USING_DFS
// <bool name="DFS_USING_WORKDIR" description="Using working directory" default="true" />
// #define DFS_USING_WORKDIR
// <integer name="DFS_FILESYSTEMS_MAX" description="The maximal number of mounted file system" default="4" />
...
...
@@ -133,7 +135,7 @@
// <bool name="RT_USING_DFS_UFFS" description="Using UFFS" default="false" />
// #define RT_USING_DFS_UFFS
// <bool name="RT_USING_DFS_DEVFS" description="Using devfs for device objects" default="true" />
//
#define RT_USING_DFS_DEVFS
#define RT_USING_DFS_DEVFS
// <bool name="RT_USING_DFS_NFS" description="Using NFS v3 client file system" default="false" />
// #define RT_USING_DFS_NFS
// <string name="RT_NFS_HOST_EXPORT" description="NFSv3 host export" default="192.168.1.5:/" />
...
...
components/libc/compilers/armlibc/libc_syms.c
浏览文件 @
b2046515
...
...
@@ -10,8 +10,6 @@
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
#include <time.h>
#include <rtm.h>
/* some export routines for module */
...
...
@@ -35,11 +33,6 @@ RTM_EXPORT(memchr);
RTM_EXPORT
(
toupper
);
RTM_EXPORT
(
atoi
);
#ifdef RT_USING_RTC
RTM_EXPORT
(
localtime
);
RTM_EXPORT
(
time
);
#endif
/* import the full stdio for printf */
#if defined(RT_USING_MODULE) && defined(__MICROLIB)
#error "[RT_USING_LIBC] Please use standard libc but not microlib."
...
...
components/libc/compilers/common/sys/time.h
浏览文件 @
b2046515
...
...
@@ -6,10 +6,12 @@
* Change Logs:
* Date Author Notes
* 2020-09-07 Meco Man combine gcc armcc iccarm
* 2021-02-12 Meco Man move all definitions located in <clock_time.h> to this file
*/
#ifndef _SYS_TIME_H_
#define _SYS_TIME_H_
#include <rtconfig.h>
#include <time.h>
#ifdef __cplusplus
...
...
@@ -53,6 +55,40 @@ time_t timegm(struct tm * const t);
int
gettimeofday
(
struct
timeval
*
tv
,
struct
timezone
*
tz
);
int
settimeofday
(
const
struct
timeval
*
tv
,
const
struct
timezone
*
tz
);
#ifdef RT_USING_POSIX
#include <sys/types.h>
/* posix clock and timer */
#define MILLISECOND_PER_SECOND 1000UL
#define MICROSECOND_PER_SECOND 1000000UL
#define NANOSECOND_PER_SECOND 1000000000UL
#define MILLISECOND_PER_TICK (MILLISECOND_PER_SECOND / RT_TICK_PER_SECOND)
#define MICROSECOND_PER_TICK (MICROSECOND_PER_SECOND / RT_TICK_PER_SECOND)
#define NANOSECOND_PER_TICK (NANOSECOND_PER_SECOND / RT_TICK_PER_SECOND)
#ifndef CLOCK_REALTIME
#define CLOCK_REALTIME 1
#endif
#define CLOCK_CPUTIME_ID 2
#ifndef CLOCK_PROCESS_CPUTIME_ID
#define CLOCK_PROCESS_CPUTIME_ID CLOCK_CPUTIME_ID
#endif
#ifndef CLOCK_THREAD_CPUTIME_ID
#define CLOCK_THREAD_CPUTIME_ID CLOCK_CPUTIME_ID
#endif
#ifndef CLOCK_MONOTONIC
#define CLOCK_MONOTONIC 4
#endif
int
clock_getres
(
clockid_t
clockid
,
struct
timespec
*
res
);
int
clock_gettime
(
clockid_t
clockid
,
struct
timespec
*
tp
);
int
clock_settime
(
clockid_t
clockid
,
const
struct
timespec
*
tp
);
int
clock_time_to_tick
(
const
struct
timespec
*
time
);
#endif
/* RT_USING_POSIX */
#ifdef __cplusplus
}
#endif
...
...
components/libc/compilers/common/time.c
浏览文件 @
b2046515
...
...
@@ -14,6 +14,9 @@
* 2021-02-11 Meco Man fix bug #3183 - align days[] and months[] to 4 bytes
* add difftime()
* 2021-02-12 Meco Man add errno
* 2012-12-08 Bernard <clock_time.c> fix the issue of _timevalue.tv_usec initialization,
* which found by Rob <rdent@iinet.net.au>
* 2021-02-12 Meco Man move all of the functions located in <clock_time.c> to this file
*/
#include <sys/time.h>
...
...
@@ -26,7 +29,7 @@
#define SPD 24*60*60
/* days per month -- nonleap! */
const
short
__spm
[
13
]
=
static
const
short
__spm
[
13
]
=
{
0
,
(
31
),
...
...
@@ -97,12 +100,14 @@ struct tm *gmtime_r(const time_t *timep, struct tm *r)
r
->
tm_isdst
=
0
;
return
r
;
}
RTM_EXPORT
(
gmtime_r
);
struct
tm
*
gmtime
(
const
time_t
*
t
)
{
static
struct
tm
tmp
;
return
gmtime_r
(
t
,
&
tmp
);
}
RTM_EXPORT
(
gmtime
);
/*TODO: timezone */
struct
tm
*
localtime_r
(
const
time_t
*
t
,
struct
tm
*
r
)
...
...
@@ -114,18 +119,21 @@ struct tm* localtime_r(const time_t* t, struct tm* r)
local_tz
=
*
t
+
utc_plus
*
3600
;
return
gmtime_r
(
&
local_tz
,
r
);
}
RTM_EXPORT
(
localtime_r
);
struct
tm
*
localtime
(
const
time_t
*
t
)
{
static
struct
tm
tmp
;
return
localtime_r
(
t
,
&
tmp
);
}
RTM_EXPORT
(
localtime
);
/* TODO: timezone */
time_t
mktime
(
struct
tm
*
const
t
)
{
return
timegm
(
t
);
}
RTM_EXPORT
(
mktime
);
char
*
asctime_r
(
const
struct
tm
*
t
,
char
*
buf
)
{
...
...
@@ -147,28 +155,33 @@ char* asctime_r(const struct tm *t, char *buf)
buf
[
24
]
=
'\n'
;
return
buf
;
}
RTM_EXPORT
(
asctime_r
);
char
*
asctime
(
const
struct
tm
*
timeptr
)
{
static
char
buf
[
25
];
return
asctime_r
(
timeptr
,
buf
);
}
RTM_EXPORT
(
asctime
);
char
*
ctime_r
(
const
time_t
*
tim_p
,
char
*
result
)
{
struct
tm
tm
;
return
asctime_r
(
localtime_r
(
tim_p
,
&
tm
),
result
);
}
RTM_EXPORT
(
ctime_r
);
char
*
ctime
(
const
time_t
*
tim_p
)
{
return
asctime
(
localtime
(
tim_p
));
}
RTM_EXPORT
(
ctime
);
double
difftime
(
time_t
tim1
,
time_t
tim2
)
{
return
(
double
)(
tim1
-
tim2
);
}
RTM_EXPORT
(
difftime
);
/**
* Returns the current time.
...
...
@@ -216,11 +229,13 @@ RT_WEAK time_t time(time_t *t)
return
time_now
;
}
RTM_EXPORT
(
time
);
RT_WEAK
clock_t
clock
(
void
)
{
return
rt_tick_get
();
}
RTM_EXPORT
(
clock
);
int
stime
(
const
time_t
*
t
)
{
...
...
@@ -246,6 +261,7 @@ int stime(const time_t *t)
return
-
1
;
#endif
/* RT_USING_RTC */
}
RTM_EXPORT
(
stime
);
time_t
timegm
(
struct
tm
*
const
t
)
{
...
...
@@ -320,6 +336,7 @@ time_t timegm(struct tm * const t)
i
=
60
;
return
((
day
+
t
->
tm_hour
)
*
i
+
t
->
tm_min
)
*
i
+
t
->
tm_sec
;
}
RTM_EXPORT
(
timegm
);
/* TODO: timezone */
int
gettimeofday
(
struct
timeval
*
tv
,
struct
timezone
*
tz
)
...
...
@@ -338,6 +355,7 @@ int gettimeofday(struct timeval *tv, struct timezone *tz)
return
-
1
;
}
}
RTM_EXPORT
(
gettimeofday
);
/* TODO: timezone */
int
settimeofday
(
const
struct
timeval
*
tv
,
const
struct
timezone
*
tz
)
...
...
@@ -352,3 +370,180 @@ int settimeofday(const struct timeval *tv, const struct timezone *tz)
return
-
1
;
}
}
RTM_EXPORT
(
settimeofday
);
#ifdef RT_USING_POSIX
static
struct
timeval
_timevalue
;
static
int
clock_time_system_init
()
{
time_t
time
;
rt_tick_t
tick
;
rt_device_t
device
;
time
=
0
;
device
=
rt_device_find
(
"rtc"
);
if
(
device
!=
RT_NULL
)
{
/* get realtime seconds */
rt_device_control
(
device
,
RT_DEVICE_CTRL_RTC_GET_TIME
,
&
time
);
}
/* get tick */
tick
=
rt_tick_get
();
_timevalue
.
tv_usec
=
(
tick
%
RT_TICK_PER_SECOND
)
*
MICROSECOND_PER_TICK
;
_timevalue
.
tv_sec
=
time
-
tick
/
RT_TICK_PER_SECOND
-
1
;
return
0
;
}
INIT_COMPONENT_EXPORT
(
clock_time_system_init
);
int
clock_getres
(
clockid_t
clockid
,
struct
timespec
*
res
)
{
int
ret
=
0
;
if
(
res
==
RT_NULL
)
{
rt_set_errno
(
EINVAL
);
return
-
1
;
}
switch
(
clockid
)
{
case
CLOCK_REALTIME
:
res
->
tv_sec
=
0
;
res
->
tv_nsec
=
NANOSECOND_PER_SECOND
/
RT_TICK_PER_SECOND
;
break
;
#ifdef RT_USING_CPUTIME
case
CLOCK_CPUTIME_ID
:
res
->
tv_sec
=
0
;
res
->
tv_nsec
=
clock_cpu_getres
();
break
;
#endif
default:
ret
=
-
1
;
rt_set_errno
(
EINVAL
);
break
;
}
return
ret
;
}
RTM_EXPORT
(
clock_getres
);
int
clock_gettime
(
clockid_t
clockid
,
struct
timespec
*
tp
)
{
int
ret
=
0
;
if
(
tp
==
RT_NULL
)
{
rt_set_errno
(
EINVAL
);
return
-
1
;
}
switch
(
clockid
)
{
case
CLOCK_REALTIME
:
{
/* get tick */
int
tick
=
rt_tick_get
();
tp
->
tv_sec
=
_timevalue
.
tv_sec
+
tick
/
RT_TICK_PER_SECOND
;
tp
->
tv_nsec
=
(
_timevalue
.
tv_usec
+
(
tick
%
RT_TICK_PER_SECOND
)
*
MICROSECOND_PER_TICK
)
*
1000
;
}
break
;
#ifdef RT_USING_CPUTIME
case
CLOCK_CPUTIME_ID
:
{
float
unit
=
0
;
long
long
cpu_tick
;
unit
=
clock_cpu_getres
();
cpu_tick
=
clock_cpu_gettime
();
tp
->
tv_sec
=
((
int
)(
cpu_tick
*
unit
))
/
NANOSECOND_PER_SECOND
;
tp
->
tv_nsec
=
((
int
)(
cpu_tick
*
unit
))
%
NANOSECOND_PER_SECOND
;
}
break
;
#endif
default:
rt_set_errno
(
EINVAL
);
ret
=
-
1
;
}
return
ret
;
}
RTM_EXPORT
(
clock_gettime
);
int
clock_settime
(
clockid_t
clockid
,
const
struct
timespec
*
tp
)
{
int
second
;
rt_tick_t
tick
;
rt_device_t
device
;
if
((
clockid
!=
CLOCK_REALTIME
)
||
(
tp
==
RT_NULL
))
{
rt_set_errno
(
EINVAL
);
return
-
1
;
}
/* get second */
second
=
tp
->
tv_sec
;
/* get tick */
tick
=
rt_tick_get
();
/* update timevalue */
_timevalue
.
tv_usec
=
MICROSECOND_PER_SECOND
-
(
tick
%
RT_TICK_PER_SECOND
)
*
MICROSECOND_PER_TICK
;
_timevalue
.
tv_sec
=
second
-
tick
/
RT_TICK_PER_SECOND
-
1
;
/* update for RTC device */
device
=
rt_device_find
(
"rtc"
);
if
(
device
!=
RT_NULL
)
{
/* set realtime seconds */
rt_device_control
(
device
,
RT_DEVICE_CTRL_RTC_SET_TIME
,
&
second
);
}
else
return
-
1
;
return
0
;
}
RTM_EXPORT
(
clock_settime
);
int
clock_time_to_tick
(
const
struct
timespec
*
time
)
{
int
tick
;
int
nsecond
,
second
;
struct
timespec
tp
;
RT_ASSERT
(
time
!=
RT_NULL
);
tick
=
RT_WAITING_FOREVER
;
if
(
time
!=
NULL
)
{
/* get current tp */
clock_gettime
(
CLOCK_REALTIME
,
&
tp
);
if
((
time
->
tv_nsec
-
tp
.
tv_nsec
)
<
0
)
{
nsecond
=
NANOSECOND_PER_SECOND
-
(
tp
.
tv_nsec
-
time
->
tv_nsec
);
second
=
time
->
tv_sec
-
tp
.
tv_sec
-
1
;
}
else
{
nsecond
=
time
->
tv_nsec
-
tp
.
tv_nsec
;
second
=
time
->
tv_sec
-
tp
.
tv_sec
;
}
tick
=
second
*
RT_TICK_PER_SECOND
+
nsecond
*
RT_TICK_PER_SECOND
/
NANOSECOND_PER_SECOND
;
if
(
tick
<
0
)
tick
=
0
;
}
return
tick
;
}
RTM_EXPORT
(
clock_time_to_tick
);
#endif
/* RT_USING_POSIX */
components/libc/compilers/common/unistd.c
浏览文件 @
b2046515
...
...
@@ -5,10 +5,13 @@
*
* Change Logs:
* Date Author Notes
* 2020-09-01 Meco Man First Version
* 2020-09-01 Meco Man first Version
* 2021-02-12 Meco Man move all functions located in <pthread_sleep.c> to this file
*/
#include <unistd.h>
#include <rtthread.h>
#include <rthw.h>
#ifdef RT_USING_POSIX_TERMIOS
#include "termios.h"
...
...
@@ -18,9 +21,31 @@ int isatty(int fd)
struct
termios
ts
;
return
(
tcgetattr
(
fd
,
&
ts
)
!=
-
1
);
/*true if no error (is a tty)*/
}
RTM_EXPORT
(
isatty
);
#endif
char
*
ttyname
(
int
fd
)
{
return
"/dev/tty0"
;
/*TODO: need to add more specific*/
}
RTM_EXPORT
(
ttyname
);
unsigned
int
sleep
(
unsigned
int
seconds
)
{
rt_tick_t
delta_tick
;
delta_tick
=
rt_tick_get
();
rt_thread_delay
(
seconds
*
RT_TICK_PER_SECOND
);
delta_tick
=
rt_tick_get
()
-
delta_tick
;
return
seconds
-
delta_tick
/
RT_TICK_PER_SECOND
;
}
RTM_EXPORT
(
sleep
);
int
usleep
(
useconds_t
usec
)
{
rt_thread_mdelay
(
usec
/
1000u
);
rt_hw_us_delay
(
usec
%
1000u
);
return
0
;
}
RTM_EXPORT
(
usleep
);
components/libc/compilers/newlib/libc_syms.c
浏览文件 @
b2046515
...
...
@@ -39,10 +39,6 @@ RTM_EXPORT(snprintf);
RTM_EXPORT
(
fwrite
);
#include <time.h>
RTM_EXPORT
(
localtime
);
RTM_EXPORT
(
time
);
#include <setjmp.h>
RTM_EXPORT
(
longjmp
);
RTM_EXPORT
(
setjmp
);
...
...
components/libc/pthreads/pthread.c
浏览文件 @
b2046515
...
...
@@ -13,6 +13,7 @@
#include <rthw.h>
#include <pthread.h>
#include <sched.h>
#include <sys/time.h>
#include "pthread_internal.h"
RT_DEFINE_SPINLOCK
(
pth_lock
);
...
...
@@ -687,4 +688,3 @@ int pthread_cancel(pthread_t thread)
return
0
;
}
RTM_EXPORT
(
pthread_cancel
);
components/libc/pthreads/pthread_internal.h
浏览文件 @
b2046515
...
...
@@ -13,6 +13,7 @@
#include <rtthread.h>
#include <pthread.h>
#include <sys/time.h>
struct
_pthread_cleanup
{
...
...
@@ -62,8 +63,6 @@ typedef struct _pthread_data _pthread_data_t;
_pthread_data_t
*
_pthread_get_data
(
pthread_t
thread
);
int
clock_time_to_tick
(
const
struct
timespec
*
time
);
void
posix_mq_system_init
(
void
);
void
posix_sem_system_init
(
void
);
void
pthread_key_system_init
(
void
);
...
...
components/libc/time/SConscript
已删除
100644 → 0
浏览文件 @
e5969210
# RT-Thread building script for component
from
building
import
*
cwd
=
GetCurrentDir
()
src
=
Glob
(
'*.c'
)
+
Glob
(
'*.cpp'
)
CPPPATH
=
[
cwd
]
group
=
DefineGroup
(
'libc'
,
src
,
depend
=
[
'RT_USING_PTHREADS'
],
CPPPATH
=
CPPPATH
)
Return
(
'group'
)
components/libc/time/clock_time.c
已删除
100644 → 0
浏览文件 @
e5969210
/*
* Copyright (c) 2006-2018, RT-Thread Development Team
*
* SPDX-License-Identifier: Apache-2.0
*
* Change Logs:
* Date Author Notes
* 2012-12-08 Bernard fix the issue of _timevalue.tv_usec initialization,
* which found by Rob <rdent@iinet.net.au>
*/
#include <rtthread.h>
#include <pthread.h>
#include "clock_time.h"
static
struct
timeval
_timevalue
;
int
clock_time_system_init
()
{
time_t
time
;
rt_tick_t
tick
;
rt_device_t
device
;
time
=
0
;
device
=
rt_device_find
(
"rtc"
);
if
(
device
!=
RT_NULL
)
{
/* get realtime seconds */
rt_device_control
(
device
,
RT_DEVICE_CTRL_RTC_GET_TIME
,
&
time
);
}
/* get tick */
tick
=
rt_tick_get
();
_timevalue
.
tv_usec
=
(
tick
%
RT_TICK_PER_SECOND
)
*
MICROSECOND_PER_TICK
;
_timevalue
.
tv_sec
=
time
-
tick
/
RT_TICK_PER_SECOND
-
1
;
return
0
;
}
INIT_COMPONENT_EXPORT
(
clock_time_system_init
);
int
clock_time_to_tick
(
const
struct
timespec
*
time
)
{
int
tick
;
int
nsecond
,
second
;
struct
timespec
tp
;
RT_ASSERT
(
time
!=
RT_NULL
);
tick
=
RT_WAITING_FOREVER
;
if
(
time
!=
NULL
)
{
/* get current tp */
clock_gettime
(
CLOCK_REALTIME
,
&
tp
);
if
((
time
->
tv_nsec
-
tp
.
tv_nsec
)
<
0
)
{
nsecond
=
NANOSECOND_PER_SECOND
-
(
tp
.
tv_nsec
-
time
->
tv_nsec
);
second
=
time
->
tv_sec
-
tp
.
tv_sec
-
1
;
}
else
{
nsecond
=
time
->
tv_nsec
-
tp
.
tv_nsec
;
second
=
time
->
tv_sec
-
tp
.
tv_sec
;
}
tick
=
second
*
RT_TICK_PER_SECOND
+
nsecond
*
RT_TICK_PER_SECOND
/
NANOSECOND_PER_SECOND
;
if
(
tick
<
0
)
tick
=
0
;
}
return
tick
;
}
RTM_EXPORT
(
clock_time_to_tick
);
int
clock_getres
(
clockid_t
clockid
,
struct
timespec
*
res
)
{
int
ret
=
0
;
if
(
res
==
RT_NULL
)
{
rt_set_errno
(
EINVAL
);
return
-
1
;
}
switch
(
clockid
)
{
case
CLOCK_REALTIME
:
res
->
tv_sec
=
0
;
res
->
tv_nsec
=
NANOSECOND_PER_SECOND
/
RT_TICK_PER_SECOND
;
break
;
#ifdef RT_USING_CPUTIME
case
CLOCK_CPUTIME_ID
:
res
->
tv_sec
=
0
;
res
->
tv_nsec
=
clock_cpu_getres
();
break
;
#endif
default:
ret
=
-
1
;
rt_set_errno
(
EINVAL
);
break
;
}
return
ret
;
}
RTM_EXPORT
(
clock_getres
);
int
clock_gettime
(
clockid_t
clockid
,
struct
timespec
*
tp
)
{
int
ret
=
0
;
if
(
tp
==
RT_NULL
)
{
rt_set_errno
(
EINVAL
);
return
-
1
;
}
switch
(
clockid
)
{
case
CLOCK_REALTIME
:
{
/* get tick */
int
tick
=
rt_tick_get
();
tp
->
tv_sec
=
_timevalue
.
tv_sec
+
tick
/
RT_TICK_PER_SECOND
;
tp
->
tv_nsec
=
(
_timevalue
.
tv_usec
+
(
tick
%
RT_TICK_PER_SECOND
)
*
MICROSECOND_PER_TICK
)
*
1000
;
}
break
;
#ifdef RT_USING_CPUTIME
case
CLOCK_CPUTIME_ID
:
{
float
unit
=
0
;
long
long
cpu_tick
;
unit
=
clock_cpu_getres
();
cpu_tick
=
clock_cpu_gettime
();
tp
->
tv_sec
=
((
int
)(
cpu_tick
*
unit
))
/
NANOSECOND_PER_SECOND
;
tp
->
tv_nsec
=
((
int
)(
cpu_tick
*
unit
))
%
NANOSECOND_PER_SECOND
;
}
break
;
#endif
default:
rt_set_errno
(
EINVAL
);
ret
=
-
1
;
}
return
ret
;
}
RTM_EXPORT
(
clock_gettime
);
int
clock_settime
(
clockid_t
clockid
,
const
struct
timespec
*
tp
)
{
int
second
;
rt_tick_t
tick
;
rt_device_t
device
;
if
((
clockid
!=
CLOCK_REALTIME
)
||
(
tp
==
RT_NULL
))
{
rt_set_errno
(
EINVAL
);
return
-
1
;
}
/* get second */
second
=
tp
->
tv_sec
;
/* get tick */
tick
=
rt_tick_get
();
/* update timevalue */
_timevalue
.
tv_usec
=
MICROSECOND_PER_SECOND
-
(
tick
%
RT_TICK_PER_SECOND
)
*
MICROSECOND_PER_TICK
;
_timevalue
.
tv_sec
=
second
-
tick
/
RT_TICK_PER_SECOND
-
1
;
/* update for RTC device */
device
=
rt_device_find
(
"rtc"
);
if
(
device
!=
RT_NULL
)
{
/* set realtime seconds */
rt_device_control
(
device
,
RT_DEVICE_CTRL_RTC_SET_TIME
,
&
second
);
}
else
return
-
1
;
return
0
;
}
RTM_EXPORT
(
clock_settime
);
components/libc/time/clock_time.h
已删除
100644 → 0
浏览文件 @
e5969210
/*
* Copyright (c) 2006-2018, RT-Thread Development Team
*
* SPDX-License-Identifier: Apache-2.0
*
* Change Logs:
* Date Author Notes
* 2017-12-31 Bernard the first version
*/
#ifndef CLOCK_TIME_H__
#define CLOCK_TIME_H__
#ifdef __cplusplus
extern
"C"
{
#endif
/* posix clock and timer */
#define MILLISECOND_PER_SECOND 1000UL
#define MICROSECOND_PER_SECOND 1000000UL
#define NANOSECOND_PER_SECOND 1000000000UL
#define MILLISECOND_PER_TICK (MILLISECOND_PER_SECOND / RT_TICK_PER_SECOND)
#define MICROSECOND_PER_TICK (MICROSECOND_PER_SECOND / RT_TICK_PER_SECOND)
#define NANOSECOND_PER_TICK (NANOSECOND_PER_SECOND / RT_TICK_PER_SECOND)
#ifndef CLOCK_REALTIME
#define CLOCK_REALTIME 1
#endif
#define CLOCK_CPUTIME_ID 2
#ifndef CLOCK_PROCESS_CPUTIME_ID
#define CLOCK_PROCESS_CPUTIME_ID CLOCK_CPUTIME_ID
#endif
#ifndef CLOCK_THREAD_CPUTIME_ID
#define CLOCK_THREAD_CPUTIME_ID CLOCK_CPUTIME_ID
#endif
#ifndef CLOCK_MONOTONIC
#define CLOCK_MONOTONIC 4
#endif
int
clock_getres
(
clockid_t
clockid
,
struct
timespec
*
res
);
int
clock_gettime
(
clockid_t
clockid
,
struct
timespec
*
tp
);
int
clock_settime
(
clockid_t
clockid
,
const
struct
timespec
*
tp
);
#ifdef __cplusplus
}
#endif
#endif
components/libc/time/posix_sleep.c
已删除
100644 → 0
浏览文件 @
e5969210
/*
* Copyright (c) 2006-2018, RT-Thread Development Team
*
* SPDX-License-Identifier: Apache-2.0
*
* Change Logs:
* Date Author Notes
* 2020-12-16 Meco Man add usleep
*/
#include <rtthread.h>
#include <rthw.h>
#include <unistd.h>
unsigned
int
sleep
(
unsigned
int
seconds
)
{
rt_tick_t
delta_tick
;
delta_tick
=
rt_tick_get
();
rt_thread_delay
(
seconds
*
RT_TICK_PER_SECOND
);
delta_tick
=
rt_tick_get
()
-
delta_tick
;
return
seconds
-
delta_tick
/
RT_TICK_PER_SECOND
;
}
int
usleep
(
useconds_t
usec
)
{
rt_thread_mdelay
(
usec
/
1000u
);
rt_hw_us_delay
(
usec
%
1000u
);
return
0
;
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录