RTX笔记1 - 创建RTX5工程
2021/10/1 23:40:43
本文主要是介绍RTX笔记1 - 创建RTX5工程,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
创建RTX5项目工程比较简单,RTX5源码已经内置在keil安装目录下。下面一步一步创建工程。
1.Create a new project,选择一个器件,在Manage Run-TIme Environment 窗口选择 CMSIS::CORE and CMSIS::RTOS2 (API)::Keil RTX5,可以选择添加LIB库到工程,也可以选择将Source源码添加到工程。如果选中RTX5之后,下方输出栏提示需要其他的组件,可以点击Resolve一键处理,自动添加需要的组件到工程中。
2.在RTX_Config.h中配置RTX5。注意:全局动态内存大小是RTX所能使用的内存大小,不能超过所选器件的RAM大小,不然编译不通过。
3.Cortex-M的中断使用
在Cortex-M处理器中,RTX5使用下面三个中断。
Handler | Priority | Interrupt/Exception |
---|---|---|
SysTick | lowest | Kernel system timer interrupt to generate periodic timer ticks |
PendSV | lowest | PendSV (request for system-level service) when calling certain RTX functions from Handler mode |
SVC | lowest+1 | Supervisor Call used to enter the RTOS kernel from Thread mode |
其他设备中断用户可以正常使用,对于 Cortex-M3/M4/M7 /M23/M33/M35P 处理器,RTX内核不会关闭中断。
Usage of interrupt priority grouping
- 中断优先级分组应该在调用osKernelStart()函数之前使用CMSIS-Core函数NVIC_SetPriorityGrouping进行配置。RTX内核使用优先级组的值来设置SysTick和PendSV中断的优先级
- RTX内核为上表中列出的中断/异常设置优先级,并使用最低的两个优先级级别。
- 不要改变RTX内核使用的优先级。如果无法避免,请确保SysTick/PendSV的抢占优先级低于SVC。
- 允许的优先级组值为0 ~ 6。优先级组值7将导致RTX失败,因为只有一个优先级级别可用。
- 主堆栈用于运行RTX功能。因此,需要为RTX内核执行配置足够的堆栈。
Code Example
osKernelInitialize(); // initialize RTX NVIC_SetPriorityGrouping (3); // setup priority grouping tread_id = osThreadNew(tread_func, NULL, NULL); // create some threads osKernelStart (); // start RTX kernel
RTX5教程:RTX教程已内置在keil安装目录中,../Keil_v5/ARM/Pack/ARM/CMSIS/5.8.0/CMSIS/Documentation/RTOS2/html/rtx5_impl.html
这篇关于RTX笔记1 - 创建RTX5工程的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-10-01基于Python+Vue开发的医院门诊预约挂号系统
- 2024-10-01基于Python+Vue开发的旅游景区管理系统
- 2024-10-01RestfulAPI入门指南:打造简单易懂的API接口
- 2024-10-01初学者指南:了解和使用Server Action
- 2024-10-01Server Component入门指南:搭建与配置详解
- 2024-10-01React 中使用 useRequest 实现数据请求
- 2024-10-01使用 golang 将ETH账户的资产平均分散到其他账户
- 2024-10-01JWT用户校验课程:从入门到实践
- 2024-10-01Server Component课程入门指南
- 2024-09-30Dnd-Kit学习:新手快速入门指南