arm-linux 使用 ntp 同步时间
NTP,全称网络时间协议(Network Time Protocol),是用来同步网络中各个计算机的时间的协议。使用 UDP 作为其通信链路,端口号为123。 获取源码 直接下载即可。 https://www.ntp.org 交叉编译 cd ntp export LD=arm-linux-gnueabihf-ld export CC=arm-linux-gnueabihf-gcc #...
NTP,全称网络时间协议(Network Time Protocol),是用来同步网络中各个计算机的时间的协议。使用 UDP 作为其通信链路,端口号为123。 获取源码 直接下载即可。 https://www.ntp.org 交叉编译 cd ntp export LD=arm-linux-gnueabihf-ld export CC=arm-linux-gnueabihf-gcc #...
spdlog 是一个快速、可扩展的 c++ 日志库,它提供了简单易用的接口和灵活的配置选项。spdlog 支持多种日志级别、多线程安全,可以将日志输出到终端、文件或者其他自定义的目标。它具有高性能和低开销的特点,适用于各种规模的应用程序和系统,有很多知名的项目都用到了 spdlog,比如 fastDDS,下面记录一下我在工作中是怎么用的。 获取源码 如果要将源码添加进你的工程里,请从 ...
常用的 rtos 开发工具: MDK: 用户量最多的 IDE; stm32CubeIDE: 集 stm32CubeMX 为一体的 IDE; stm32CubeMX: 用于配置开发板的工具,可和 MDK、stm32CubeIDE、rtthread studio 等组合开发; rtthread studio: 用于 rtthread。 FreeRT...
线程池可以避免频繁地创建和销毁线程,从而减少了系统资源的消耗。它可以控制并发线程的数量,避免资源过度占用,并提供任务队列来存储等待执行的任务。线程池还可以根据需要动态调整线程的数量,以适应系统的负载情况。通过使用线程池,我们可以更好地管理线程的生命周期,提高程序的稳定性和可维护性。 代码实现 #include <vector> #include <condition_...
tcpdump 是一个常用的网络抓包工具,用于监控和分析网络流量。它可以捕获经过网络接口的数据包,并以可读的格式显示各个字段的详细信息,如源IP地址、目标 IP 地址、端口号、协议类型等。tcpdump 支持多种过滤条件,可以根据需要选择特定的协议、IP 地址、端口等进行过滤,以便更精确地捕获和分析所需的网络流量。tcpdump 是网络管理员、安全专家和开发人员等的常用工具,用于故障排除、网...
在 rust 语言中,有时候使用 ref 来创建一个引用,有时候使用 & 来创建一个引用,二者有什么区别? 其实在 rust 2018 版本中,通常不需要显式地使用 ref 关键字,直接使用 & 来借用值,ref 主要在 rust 的早期版本中更常用,但在现代 rust 中,直接使用 & 更加普遍和推荐。不过,ref 在某些复杂的模式匹配场景中仍然可以使用,请看下面的...
设计模式是解决软件设计中常见问题的可复用方案,分为三大类:创建型模式(5种)关注对象的高效创建与初始化,如单例、工厂;结构型模式(7种)处理对象间的组合与接口适配,如代理、装饰器;行为型模式(11种)管理对象间的通信与协作,如观察者、策略。这些模式通过解耦代码、提高复用性和增强扩展性,帮助开发者构建灵活、可维护的系统,例如通过适配器整合旧接口,利用责任链处理多级请求,或通过状态模式实现行为动...
todo
在 linux 环境开发中,有时候需要开机自动执行某个命令,但是由于执行该命令需要 root 权限,所以会执行失败,下面分享一种免密执行的实现方式。 以 sudo ifmetric wlan0 0(切换 wlan0 的路由优先级为最高级别)为例 终端运行 sudo visudo 修改 /etc/sudoers 配置,添加如下代码 my_username ALL = NOPASSWD:...
todo