GDB 观察断点

GDB 观察断点

GDB 观察断点(GDB Watch Command) 观察断点是一种特殊的断点,通过变量名来观察。 watch <value> 观察某个变量。 可以用info watch来查看watch详情。

JTAG 接口简介

JTAG 接口简介

什么是 JTAG: 维基百科:JTAG Wiki 接口定义: TDI 测试数据输入 TDO 测试数据输出 TCK 测试时钟 TMS 测试模式选择 TRST 测试复位(可选) 芯片连接图示: 对于有些芯片,例如 ESP32-C3,已经将Adapter集成进入了芯片模块中,所以不需要额外再去连接Ad

流数据缓冲区(Stream Buffer)

流数据缓冲区(Stream Buffer)

流数据 最典型的流数据就是音频数据。 Stream Buffer API 函数官方文档 Stream Buffer API [[FreeRTOS_Reference_Manual_V10.0.0.pdf#page=348&selection=4,0,4,17|FreeRTOS_Reference_M

消息同步(Notitication Sync)

消息同步(Notitication Sync)

什么是任务通知 任务通知是一种轻量汲任务间通信和同步机制。任务通知允许一个任务向另一个任务发送简单的数值消息或者通知事件。任务通知提供了比信号量、队列等其他同步机制更高效的性能,非常适用于快速和频繁的任务间通信。 官方函数文档 2.14 xTaskNotify() [[FreeRTOS_Refere

事件组同步(Event Group Sync)

事件组同步(Event Group Sync)

什么是事件组同步 如果有三个任务Task A,Task B,Task C`,它们需要在同一时刻继续执行,那么可以用事件组里来同步它们: Task A设置在事件组中的第一个位 --> 0x01 --> 0001 Task B设置在事件组中的第二个位 --> 0x02 --> 0010 Task C设置

事件组等待(Event Wait)

事件组等待(Event Wait)

官方函数文档 304 6.3 xEventGroupCreate() [[FreeRTOS_Reference_Manual_V10.0.0.pdf#page=304&selection=0,3,4,19|FreeRTOS_Reference_Manual_V10.0.0, page 304]] F

递归互斥锁

递归互斥锁

什么是递归互斥锁 递归互斥锁允许同一个任务获取相同的互斥锁,而不会发生死锁。这在一个任务需要在不同的函数中多次锁定相同资源时很有用。 如何工作? 获取锁(xSemaphoreTakeRecursive()): 当一个任务第一次调用此函数时,如果互斥锁是空闲的,它将获得互斥锁,并将锁计数(lock c

计数型信号量(Count Semaphore)

计数型信号量(Count Semaphore)

计数型信号量 好比一个停车场,停车场里面有 10 个车位,当车进入的时候,车位被占用一个,计数器减一;车开出去的时候,车位被是释放,计数器加一。这就是计数型的信号量。当信号量为零时,则表名停车场内已经没有可用车位。 官方函数文档 4.11 uxSemaphoreGetCount() [[FreeRT

任务的挂起和恢复

任务的挂起和恢复

官方文档参考 2.33 vTaskSuspend() [[FreeRTOS_Reference_Manual_V10.0.0.pdf#page=151&selection=2,0,4,14|FreeRTOS_Reference_Manual_V10.0.0, page 151]] 任务的状态: 执行