摘要: 内存池是线程安全的固定大小的内存块。它们的运行速度比动态分配的堆快得多,而且不会出现碎片问题。由于是线程安全的,因此可以从线程和ISR访问它们。 内存池可以看作是固定大小的可用(未使用)内存块的链表。从池中分配内存(使用osMemoryPoolAlloc),只需从列表中解链一个块,并将控制权交给用户 阅读全文
posted @ 2021-10-04 22:28 Ivan0512 阅读(973) 评论(0) 推荐(0)
摘要: 消息传递是线程之间的另一种基本通信模型。在消息传递模型中,一个线程显式地发送数据,而另一个线程接收数据。操作更像是某种I/O,而不是直接访问要共享的信息。在 CMSIS-RTOS 中,这种机制称为消息队列。和fifo的操作类似,数据从一个线程传递到另一个线程。使用消息队列功能,您可以控制、发送、接收 阅读全文
posted @ 2021-10-04 19:49 Ivan0512 阅读(3340) 评论(0) 推荐(0)
摘要: 信号量用于管理和保护对共享资源的访问。信号量非常类似于互斥锁。互斥锁一次只允许一个线程访问一个共享资源,而信号量可以用来允许固定数量的线程/ISR访问共享资源池。通过使用信号量,可以管理对一组相同外设的访问(例如多个DMA通道)。 信号量对象应该初始化为可用令牌的最大数量。可用资源的数量被指定为 o 阅读全文
posted @ 2021-10-04 18:52 Ivan0512 阅读(2383) 评论(0) 推荐(0)
摘要: 互斥锁(Mutex)可用于同步资源访问。 互斥(通常称为Mutex)用于各种操作系统的资源管理。微控制器设备中的许多资源可以被重复使用,但一次只能被一个线程使用(例如通信通道、内存和文件)。互斥锁用于保护对共享资源的访问。创建一个互斥锁,然后在线程之间传递(它们可以获取和释放互斥锁)。 互斥锁是信号 阅读全文
posted @ 2021-10-04 18:16 Ivan0512 阅读(1802) 评论(0) 推荐(0)