tag 标签: 系统时间

相关博文
  • 热度 18
    2015-7-4 13:46
    1477 次阅读|
    0 个评论
    /************** 命令行下的系统时间设置 ******************/      SylixOS 中的时钟分为系统时钟和硬件时钟,在其对应的 shell 命令也是两个不同的命令 date 和 hwclock 。      Sylixos 设备的控制台中输入 help date 命令,会得到该命令的使用方法 # help date set system current time. eg. date -s 23:28:25    date -s 20110217 date 使用 help hwclock 也可以得到 hwclock 的使用方法。      我们先对系统时间进行设置,首先使用 date 命令查看当前的系统时间   # date Sat Jun 27 11:50:39 2015     /*  可以看到当前的系统时间  */ 我们将时间更改下,这么分开设置了时间和日期   # date -s 22:02:12 Sat Jun 27 22:02:12 2015 # date -s 20120222 Wed Feb 22 22:02:21 2012        可以看到当前时间是 2012 年 2 月 22 号 22 点 02 分 21 秒,此时使用 hwclock 查看 rtc 时间,   # hwclock --show Sun Jun 07 11:57:29 2015  /* 时间仍然是设置前的时间,与系统时间并不一致*/     再执行同步命令,会发现当前硬件时间与系统时间保持了一致。   # hwclock --systohc # hwclock --show Thu Feb 02 22:05:36 2012 /************** 程序中的系统时间设置 ******************/           对系统时间的操作使用 POSIX 的函数 clock_gettime 和 clock_settime 就可以进行设置,这里给出一个简单的实例,首先读取当前时间,随后将系统时间增加一天,并写入硬件时钟。   以下是代码片段: void setting_time(void){     struct timespec stime;     if( clock_gettime( CLOCK_REALTIME, stime) == -1 ) {            perror( "getclock" );     }     /*      * 增加一天      */     stime.tv_sec += (60*60)*24L;     stime.tv_nsec = 0;     if( clock_settime( CLOCK_REALTIME, stime) == -1 ) {            perror( "setclock" );     }     /*      *将系统时间同步到rtc上。      */     sysToRtc(); }   
相关资源
  • 所需E币: 5
    时间: 2019-12-25 12:16
    大小: 79KB
    上传者: rdg1993
    时间管理第5章时间管理15.0任务延时函数,OSTimeDly()15.1按时分秒延时函数OSTimeDlyHMSM()35.2让处在延时期的任务结束延时,OSTimeDlyResume()45.3系统时间,OSTimeGet()和OSTimeSet()6时间管理在3.10节时钟节拍中曾提到,µC/OS-Ⅱ(其它内核也一样)要求用户提供定时中断来实现延时与超时控制等功能。这个定时中断叫做时钟节拍,它应该每秒发生10至100次。时钟节拍的实际频率是由用户的应用程序决定的。时钟节拍的频率越高,系统的负荷就越重。3.10节讨论了时钟的中断服务子程序和节时钟节函数OSTimeTick——该函数用于通知µC/OS-Ⅱ发生了时钟节拍中断。本章主要讲述五个与时钟节拍有关的系统服务:•OSTimeDly()•OSTimeDlyHMSM()•OSTimeDlyResume()•OSTimeGet()•OSTimeSet()本章所提到的函数可以在OS_TIME.C文件中找到。1任务延时函数,OSTimeDly()µC/OS-Ⅱ提供了这样一个系统服务:申请该服务的任务可以延时一段时间,这段时间的长短是用时钟节拍的数目来确定的。实现这个系统服务的函数叫做OSTimeDly()。调用该函数会使µC/OS-Ⅱ进行一次任务调度,并且执行下一个优先级最高的就绪态任务。任务调用OSTimeDly()后,一旦规定的时间期满或者有其它的任务通过调用OSTimeDlyResume()取消了延时,它就会马上进入就绪状态。注意,……