随笔分类 - CMSIS-RTOS
摘要:信号量Semaphores 和信号类似,信号量也是一种同步多个线程的方式,简单来讲,信号量就是装有一些令牌的容器。当一个线程在执行过程中,就可能遇到一个系统调用来获取信号量令牌,如果这个信号量包含多个令牌,线程就会继续执行,同时信号量令牌的数量就会减一。如果此时信号量中没有令牌,线程就会被置于等待状
阅读全文
摘要:RTOS中断处理Interrupt Handling 在RTOS中使用信号来触发线程间的行为是比较简单和高效的,而对于Cortex-M微控制器来讲,从中断源获取信号来触发线程同样是一种重要的方式。虽然在中断服务程序ISR中运行一段代码也可以,但在RTOS系统中,在中断运行的时间越短越好,因为太长的时
阅读全文
摘要:虚拟定时器Virtual Timers CMSIS-RTOS API里有几个向下计数的虚拟定时器,它们实现计数完成时用户的回调功能。每个定时器都可以配置成单次计数或重复计数模式,它们可以在定义定时器结构体的时候被创建: 在上面的代码中给定时器定义了一个名字timer0,并同时定义了回调函数led_f
阅读全文
摘要:时间管理 Time Management 此RTOS除了可以把你的应用代码作为线程运行,它还可以提供一些时间服务功能,使用这些功能你就可以访问RTOS的一些系统调用。 时间延迟Time Delay 在所有的时间服务功能中,最基本的一个就是延时函数。它可以在你的应用中提供非常简单易用的延时功能。也许你
阅读全文
摘要:创建线程Creating Threads 一旦RTOS开始运行,就会有很多系统调用来管理和控制活跃的线程。默认情况下,main()函数自动被创建为第一个可运行的线程。在第一个例子里我们使用main()函数创建了其他线程,并且随后让main()结束运行。然而我们还可以让main当成一个真正的threa
阅读全文
摘要:以下列表简要概述了所有CMSIS-RTOS功能。标有$的函数是可选的。特定的CMSIS-RTOS实现可能无法提供所有功能,但osFeatureXXXX定义明确指出了这一点。 内核信息和控制 osKernelInitialize:初始化RTOS内核。 osKernelStart:启动RTOS内核。 o
阅读全文
摘要:CMSIS-RTOS实现通常作为库提供。要将RTOS功能添加到现有的基于CMSIS的应用程序,需要添加RTOS库(通常是配置文件)。RTOS库的可用功能在头文件cmsis_os.h中定义,该文件特定于每个CMSIS-RTOS实现。 根据CMSIS-RTOS实现,执行可以从main函数开始作为第一个线
阅读全文
摘要:CMSIS-RTOS API是基于Arm®Cortex®-M处理器的设备的通用RTOS接口。CMSIS-RTOS为需要RTOS功能的软件组件提供标准化API,从而为用户和软件行业带来了巨大的好处。 CMSIS-RTOS提供许多应用程序或技术(如UML或Java(JVM))所需的基本功能。 CMSIS
阅读全文