1.第三方库选择
由于项目里要实现板子上电后自动同步时间的功能,由于精度要求不太高,因此选择了NTP网络授时(还有GPS授时等)。
新塘这款芯片自带的SDK,kernel是2.6.35,busybox是1.15的,没有ntp功能。
关于ntp的开源实现有很多种选择。这里列出三种常用的方案。我采用的是最后一种方案。因为它代码量很少,编译起来非常方便,而且完成了我想要的同步时间的功能。如果Linux内核版本比较高,一般自带的busybox都已经有ntp的功能了,只要勾选即可。至于ntp,这是个比较大的开源项目,而且到现在还在更新,我只需要同步时间的功能,它对我来说太复杂了,而且初期编译的时候出现问题,编译后下载到板子上运行还有问题(虽然不是这个开源项目本身的问题,但是这的确导致我最终选择了ntpclient)。大家可以根据项目需求来选取合适的第三方库。
ntpclient的用法很简单,如下。其中-h是设定ntp服务器地址;-d是显示详细信息;-s是直接设置时间,当然在pc上,得有管理员权限。
./ntpclient -h 120.25.115.20 -d -s
第三方库 | 优势 | 为什么选/不选 | 资源地址 |
---|---|---|---|
ntp | 功能齐全吧 | 一开始编译不过/无法运行 | ntp |