Logo

串口通信

1. UARTUART(Universal asynchronous receiver / transmitter) 是一种简单的异步全双工串口通信协议,用于两个设备之间相互通信。他只需要连接三根线,分别为 RX, TX 与 GDN。假设 A 与 B 需要通过 UART 进行通信,在 A 与 B 都...

Linux Semaphore

在 Linux 中信号量(Semaphore)可以认为是一个不可以小于零的计数器,用来在不同的进程或者线程中同步行为。...

Linux Signal

Linux 中信号有点类似与硬件中的中断,提供了一种处理异步事件的方法。应用程序并不需要特意的去配置就可以接收信号并作出默认的行为,当然应用程序也可以忽略或者注册回调函数来处理特定信号。...

FreeRTOS-Kernel 调度算法

FreeRTOS Kernel 允许多个 Task 并行,这里的 Task 有点类似于 Linux 的线程,然后 FreeRTOS Kernel 会对这些 Task 进行调度。目前 FreeRTOS Kernel 提供了三种调度算法,他们各有优劣可以根据实际情况选择对应的调度算法。...

拔掉网线后 TCP 链路会发生什么

现在有一个场景,假设机器 A 启动了一个 TCP Server,机器 B 启动了一个 TCP Client,并且 TCP Client 与 TCP Server 创建好了连接。此时将 A 的网线拔掉会出现什么情况呢?为了先得出直观的结构,可以先做一个简单的实验测试一下...

Linux I/O Multiplxing

I/O 多路复用可以复用线程的处理能力,让单个线程也可以处理大量并发请求。目前 Linux 提供了三种 I/O 多路复用方式,分别为 SELECT,POLL,EPOLL。...

C++ Copy Elision

在 C++ 中想要传入函数的参数不被复制,可以通过引用或者指针的方式传入。如果说想要返回的产生也不被复制呢?当然可以直接将返回的对象作为入参以引用或者指针的形式传入,实际上直接返回也可以不复制,在C++返回参数不被复制被称为 Copy Elision。...

Debian 环境搭建

记录一下 Debian 虚拟机环境搭建...

关闭文件描述符

Socket 文件描述符符的关闭看上去挺简单的,但是实际上还是有不少地方需要注意的。...

非杜塞 I/O

当我们谈及到 IO 多路复用的时候通常会提及到的一个概念是非杜塞IO,网上的教程中在使用IO多路复用的时候通常会先将对于的socket设置为非杜塞的,但是这样子做的原因却很少被提及。...