① 用STM32CubeMx创建的FreeRTOS可以运行多少个实例
我第一次使用STM32CubeMx,创建了一个简单的FreeRTOS代码。硬件平台是STM32F103RCT6。根据原代码,在freertos.c文件内的函数 MX_FREERTOS_Init(void)内,调用osThreadCreate创建线程,默认生成的StartDefaultTask线程。我按照StartDefaultTask的代码,在 MX_FREERTOS_Init(void)内用osThreadCreate创建另外两个线程,分别为LEDTask和MeasureTempTask。当三个线程同时创建的话,OS跑不起来,连StartDefaultTask都没有执行。如果,只创建其中任意的两个线程,OS就可以跑起来。FreeRTOS本身可以执行多个线程,但STM32CubeMx好像是用CMSIS来重新封装FreeRTOS,是不是CMSIS限制了执行线程的数量?另外,我测试过,如果在StartDefaultTask线程内,创建另外的两个线程,OS除了执行StartDefaultTask线程外,只执行另外创建的第一个线程。
② stm32编译时出现 error: #35: #error directive: "Please select first the target STM32F10x device used
我以前做工程的时候也出现过这样的错误,我用的MDK3.5,你现在用该是用MDK4.12了吧,不管什么版本的吧,做工程的时候得先选择你的CPU型号,如果没有选择应该会出现如上的错误,选择错误的话,会根绝你的工程弹出不同的提示,比如,ROM 不足,FLASH ERROR等错误。还有一种可能就是你的初始化文件,我指的是MDK里DEBUG的初始化文件选择有问题。你先试试吧,如果不行,可以说一下你的CPU型号,和MDK版本号,以及工程的特殊性,大家也好帮你分析!
③ CMSIS-RTOS RTX 临界中断该怎么处理
仿真器一般在DEBUG可以执行,可以单步运行、查看寄存器值等,那是比较早期单片机无法多次烧写使用的多,现在的单片机芯片一般都支持串口烧写,并且可重复烧写次数一般大于10000次以上,所以大部分人都省略了仿真器
④ 怎么找不到cmsisi-rtos系统时钟处理函数
第一个问题:跟RTOS调度机制无关,调用有返回值的函数,可以选择不接受返回参数第二个问题:使用了OSTimeDly延时的任务,在延时时间未到时就进入阻塞状态,你想让它进入就绪状态就调用OSTimeDlyResume,延时结束后系统调度程序会让该任务进入就绪状态的第三个问题:调用OSTimeDly的任务A可以理解成任务A主动进入阻塞状态,放弃当前资源,任务调度程序就切换到任务B执行,待A的延时时间到了时又会切会到任务A继续执行,所以是执行任务调度执行下一个任务的过程中起到了对该任务的延时的作用
⑤ stm32cube 的freertos 为什么不是 cmsis-rtos v2 接口
这个不应该吧,基本的FreeRTOS怎么可能占32K,是你的keil没有许可码吧,32K绝对是装的下的, 应该FreeRTOS只有十几K(我只用 用过RTT,FreeRTOS是官方自带的我编译过没有那么大);Flash选64或者128的就够了。
⑥ 为什么要用CMSIS RTOS
1、集成在keil中,没有所谓移植概念。针对任何MCU都可以一键添加(试想一下,如果你将来用的不是STM32,那么移植OS是不是还是那么容易);2、占用资源极小。大约5kB,而且针对cortex系列ARM官方优化,效率不言自明;3、组件丰富。常用中间件USB/network/GUI/文件系统等,ARM官方已经准备好,只需要在keil中一键添加,同样没有移植概念;4、仿真非常方便。在keil的debug模式中,轻松查看任务的CPU、内存占用,还有各任务的运行时间、运行状态,各任务之间如何抢占,非常直观,不需要像其他RTOS那样调用专用的查看函数;5、CMSIS RTOS是ARM现在热推的物联网操作系统mbedOS的基础,搞懂这个RTOS API,mbedOS更容易上手,物联网是大势所趋,ARM的在这个浪潮中的地位众所周知(软银收购ARM的核心原因),物联网以后估计会产生大量的相关工作机会;6、使用极简单。再次提醒,CMSIS RTOS只是一套API,有兴趣的可以去研究它封装OS源码,没兴趣的,看看API拿来就用;7、免费!这点和freeRTOS一样,比uc/oS更有潜力,不过freeRTOS是个人开源项目,后续升级维护缺乏商业模式,而ARM刚从软银那里搞来大笔钱,估计后续发展推广更为强劲,话说回来,如果freeRTOS真的非常优秀,ARM也可以对它进行封装。
⑦ cmsis-rtos 线程实例数 是什么意思
核心数二就是1个内核的CPU。CPU的线程就好像是两条流水线在工作一样,在做多任务的时候,有超线程的会比单线程的工作程度快!!
⑧ 移植操作系统是不是必须要cmsis
”嵌入式系统“和”操作系统“不是一个概念。如果你说的是操作系统,可以的。一般微控制器用在工业控制领域,需要对外界事件快速做出反应,一般安装的是实时操作系统。常见的有VxWorks(NASA的航天设备用的)uClinux(有些路由器里面的),FreeRTOS,…
⑨ 在学习freertos之前,应学习哪些东西
学习FreeRTOS前的准备工作这里只要做好两点就可以了。1, 从官网下载最新的程序包2, 官网有FreeRTOS每个函数的API说明,已经相应API的例子,其实源码的.h文件里面也有大部分函数的使用例子 教程计划1 先把自己做的这几个例子讲解一下,关键是分析一下源码,源码必须得分析,要不知其然不知其所以然。2 然后把官方的这几个例子讲解一下,说这几个例子的主要目的是充分学习官方是如何使用这个RTOS的,非常有参考价值。3 针对我们板子自己的外设,做一套完整的,基于FreeRTOS的底层驱动,让这些驱动能够更加有效的在FreeRTOS下面工作。在学习freertos之前,应学习哪些东西