explorer

万丈高楼平地起,勿在浮沙筑高台

0%

  • kernel 版本:v5.4
  • 参考文档: /Documentation/input/devices/rotary-encoder.rst

分析 Linux kernel 中编码器驱动的实现,从而应用到单片机上。

此处所指的旋转编码器,是用手拧的那种编码器。

阅读全文 »

我们在编写一段代码时,在需要其频繁运行或处理一大堆数据时,总会有一些疑问:

  1. 这段代码的单次运行时间有多长,能否再优化?
  2. 这段代码会占用多少内存,是否会触发 Stack overflow 或 Out of memory?

如果仅仅是凭感觉来估算,真实解决往往是大相径庭,我们需要科学方法来量化代码的时间及空间复杂度。

实际上,代码的准确执行时间是无法计算的,这根据运行的软硬件环境都有关系。
但是不管环境如何,其趋势是可预测的。

阅读全文 »

Qt 5.15 是 Qt5 系列的最后一个 LTS,但是在 Qt 5.15.2 之后,需要付费用户才能获取其官方源码了。

而 KDE 是基于 Qt5 开发的,所以他们宣布以开源的方式继续维护 5.15 分支,直到 KDE 切换到 Qt6 分支。

这对于我们普通用户来讲就是福音了,我们可以编译 KDE 维护的 5.15 。

阅读全文 »

理解在用户空间中使用定时器。

Linux 提供了 3 种定时方法:

  1. socket 选项 SO_RECVTIMEO 和 SO_SNDTIMEO
  2. SIGALRM 信号
  3. I/O 复用系统调用的超时参数
阅读全文 »

理解进程可能会收到的信号,以及捕捉该信号。

阅读全文 »