10 2021 档案
摘要:1 /// Create a thread and add it to Active Threads. 2 osThreadId_t osThreadNew (osThreadFunc_t func, void *argument, const osThreadAttr_t *attr) { 3 o
阅读全文
摘要:1.系统启动(System Startup) mian函数不再以一个线程的形式运行,因此在main函数运行之前,RTX5不会干预系统的启动。main函数运行之后,推荐按照以下的流程初始化硬件并启动内核: (1)硬件的初始化和配置,包括外设,内存,引脚,时钟和中断系统。 (2)使用CMSIS-Core
阅读全文
摘要:CMSIS-RTOS2的一个新特性是能够创建一个“可连接的”(设置 osThreadJoinable 属性)线程A,并像标准线程一样执行。此外,也容许另外一个B线程通过 osThreadJoin() 函数加入此线程A,这将会导致加入的线程B被重新调度,并进入等待状态,直到被加入的线程A终止。如果被加
阅读全文
摘要:System Configuration OS_DYNAMIC_MEM_SIZE:全局动态内存大小,默认值32768,要根据所使用的控制器型号进行具体设置,不能超过控制器的RAM大小。 OS_TICK_FREQ:内核滴答时钟频率,默认1000Hz,建议采用默认值。如果采用更快的处理器,可考虑设置更快
阅读全文
摘要:内存池是线程安全的固定大小的内存块。它们的运行速度比动态分配的堆快得多,而且不会出现碎片问题。由于是线程安全的,因此可以从线程和ISR访问它们。 内存池可以看作是固定大小的可用(未使用)内存块的链表。从池中分配内存(使用osMemoryPoolAlloc),只需从列表中解链一个块,并将控制权交给用户
阅读全文
摘要:消息传递是线程之间的另一种基本通信模型。在消息传递模型中,一个线程显式地发送数据,而另一个线程接收数据。操作更像是某种I/O,而不是直接访问要共享的信息。在 CMSIS-RTOS 中,这种机制称为消息队列。和fifo的操作类似,数据从一个线程传递到另一个线程。使用消息队列功能,您可以控制、发送、接收
阅读全文
摘要:信号量用于管理和保护对共享资源的访问。信号量非常类似于互斥锁。互斥锁一次只允许一个线程访问一个共享资源,而信号量可以用来允许固定数量的线程/ISR访问共享资源池。通过使用信号量,可以管理对一组相同外设的访问(例如多个DMA通道)。 信号量对象应该初始化为可用令牌的最大数量。可用资源的数量被指定为 o
阅读全文
摘要:互斥锁(Mutex)可用于同步资源访问。 互斥(通常称为Mutex)用于各种操作系统的资源管理。微控制器设备中的许多资源可以被重复使用,但一次只能被一个线程使用(例如通信通道、内存和文件)。互斥锁用于保护对共享资源的访问。创建一个互斥锁,然后在线程之间传递(它们可以获取和释放互斥锁)。 互斥锁是信号
阅读全文
摘要:软件定时器可以配置为一次性定时器one-shot、或者周期性定时器periodic。 RTX在线程osRtxTimerThread 中管理定时器,回调函数在此线程的控制下运行。 回调可以在专用计时器线程中执行,也可以在中断上下文中执行。因此,建议在回调函数中只使用ISR可调用函数。回调函数的优先级继
阅读全文
摘要:事件标志组用于线程间同步,每一个事件标志组都有31个时间标志位(除最高位)。 osEventFlagsId_t osEventFlagsNew (const osEventFlagsAttr_t *attr): 创建一个事件标志组,返回时间标志ID 或者 NULL。不可在中断中调用。 osEvent
阅读全文
摘要:线程标志组是在线程创建的时候,一起创建的一种专用事件标志组,包含在线程控制块内。线程标志组可以用于线程同步,而不需要花费额外的资源。 uint32_t osThreadFlagsSet (osThreadId_t thread_id, uint32_t flags) 设置线程thread_id的标志
阅读全文
摘要:osStatus_t osDelay (uint32_t ticks):相对时间延时 osStatus_t osDelayUntil (uint32_t ticks):绝对时间延时 1 static void 2 _Led1Task(void *argument) 3 { 4 (void)argum
阅读全文
摘要:Thread states RUNNING:thread正在运行 READY:线程准备就绪,等待执行 BLOCKED:线程处于阻塞状态,可能在延时、等待时间的发生或者挂起 TERMINATED:终止状态,资源还未释放 INACTIVE:线程还未创建或者已经终止,并且资源已经释放 1 enum osT
阅读全文
摘要:创建RTX5项目工程比较简单,RTX5源码已经内置在keil安装目录下。下面一步一步创建工程。 1.Create a new project,选择一个器件,在Manage Run-TIme Environment 窗口选择 CMSIS::CORE and CMSIS::RTOS2 (API)::Ke
阅读全文
浙公网安备 33010602011771号