RTX5 | 配置文件RTX_Config.h(二)
文章目录
- 一、前言
- 二、Thread Configuration
- 2.1、Object specific Memory allocation(对象特定的内存分配)
- 2.1.1、Number of user Threads(用户线程的数量)
- 2.1.2、Number of user Threads with default Stack size(使用默认堆栈大小的用户线程的数量)
- 2.1.3、Total Stack size[bytes] for user Threads with user-provided Stack size(提供给用户线程的总堆栈大小)
- 2.2、Default Thread Stack size(线程的默认堆栈大小)
- 2.3、Idle Thread Stack size(空闲线程的堆栈大小)
- 2.4、Idle Thread TrustZone Module Identifier(空闲线程信任区域模块标识符)
- 2.5、Stack overrun checking (堆栈溢出检查)
- 2.6、Stack usage watermark(堆栈使用水印)
- 2.7、Processor mode for Thread execution(线程执行的处理器模式)
一、前言
上一次学习System Configuration之后,接着继续学习RTX_Config.h剩下的内容。
RTX5 | 配置文件RTX_Config.h(一)
二、Thread Configuration
2.1、Object specific Memory allocation(对象特定的内存分配)
Object specific Memory allocation为每一个RTX5的对象创建一个专用的固定大小的内存块,可以有效防止内存碎片化,并简化内存不足情况的处理。并且,在专用的内存里创建对象与删除对象的时间都是完全确定的。
默认的配置下,不勾选Object Specific Memory allocation。此时,当我们创建RTX5的对象时,会在全局内存池里申请一段内存。有线程对象,有消息队列对象,有信号量对象等等,按申请内存的时间顺序一个个放入Global Memory Pool(全局内存池)里。这种情况下,内存肯定会有一点乱。
2.1.1、Number of user Threads(用户线程的数量)
定义同一时间上最多可以运行多少个用户线程。实际测试一下,当前我的程序创建了4个线程。接着,我将Number of user Thread设置3,看看效果如何。
2.1.2、Number of user Threads with default Stack size(使用默认堆栈大小的用户线程的数量)
系统的默认是3072Byte。不建议使用默认的堆栈大小,每一个线程都应该有合适的内存大小。
2.1.3、Total Stack size[bytes] for user Threads with user-provided Stack size(提供给用户线程的总堆栈大小)
使用默认值0,应该是不设置的意思。(毕竟,我一直使用默认值0也能顺利创建多个线程)
2.2、Default Thread Stack size(线程的默认堆栈大小)
创建线程时不指定堆栈大小,就会使用Default Thread Stack Size的值来创建线程。
2.3、Idle Thread Stack size(空闲线程的堆栈大小)
看空闲线程的设计需要多大的内存,默认的空闲线程只需256KB。
2.4、Idle Thread TrustZone Module Identifier(空闲线程信任区域模块标识符)
Armv8-M/v8.1-M架构的单片机才有。
2.5、Stack overrun checking (堆栈溢出检查)
一定要勾选,堆栈真的很容易溢出。
2.6、Stack usage watermark(堆栈使用水印)
使用水印模式初始化线程堆栈以分析堆栈使用情况。 启用此选项会显着增加线程创建的执行时间。我觉得没必要勾选这一项,在DEBUG模式下,使用Keil的RTX RTOS也能看到堆栈的使用情况。
2.7、Processor mode for Thread execution(线程执行的处理器模式)
必须使用privileged mode,不然功能可能会受到限制:
RTX5 | 配置文件RTX_Config.h(二)相关推荐
- RTX5 | 配置文件RTX_Config.h(三)
文章目录 一.前言 二.Timer Configuration 2.1.Object specific Memory allocation(对象特定的内存分配) 2.2.Timer Thread Pr ...
- RTX5 | 配置文件RTX_Config.h(一)
文章目录 一.前言 二.System Configuration(系统设置) 2.1.Global Dynamic memory size(内存池的大小) 2.2.Kernel Tick Freque ...
- CMSIS-RTOS2 入门教程 [2]——RTX_Config.h配置
RTX_Config.h配置 配置RTX v5 系统配置 时钟节拍 与 时间片 循环调度算法 ISR FIFO队列 对象内存使用计数器 线程配置 配置线程数和堆栈空间 栈溢出检查 堆栈使用水印 线程执 ...
- FreeRTOS系统配置文件FreeRTOSConfig.h
实际使用FreeRTOS的时候,我们时常需要根据自己需求来配置FreeRTOS,而且不同架构的MCU在使用的时候配置也不同,FreeRTOS的系统配置文件FreeRTOSConfig.h可以完成Fre ...
- lwip【4】 lwIP配置文件opt.h和lwipopts.h初步分析之一
在这里先说一下这两个配置lwip协议栈文件opt.h和lwipopts.h的关系: opt.h是lwip"出厂"时原装的配置文件,它的作者是瑞士科学院的Adam等 ...
- SpringBoot 配置文件 application.properties(二)
mvc spring.mvc.async.request-timeout 设定async请求的超时时间,以毫秒为单位,如果没有设置的话,以具体实现的超时时间为准,比如tomcat的servlet3的话 ...
- Fabric 各种配置文件梳理(二)
1.docker-compose网络服务配置文件 Fabric使用了容器技术,所以需要一个简化的方式来集中化管理这些容器节点.我们使用docker-compose工具来实现一步到位的节点容器管理,而且 ...
- nginx配置文件讲解(二)
原文:http://www.blogjava.net/xiaomage234/archive/2011/09/08/358247.html 配置环境: 三台CentOS5.3,一台做nginx代理,2 ...
- redis配置文件样例(二)
原文:https://raw.githubusercontent.com/antirez/redis/2.8/redis.conf 主从备份.使用slaveof创建一个Redis实例作为另一个Redi ...
最新文章
- java.lang.IllegalArgumentException: No view found for id 0x7f07005f (xx) for for fragment xxFragment
- netcore 图片 文件大小_NetCore 3.0文件上传和大文件上传的限制详解
- 【计算几何】【分类讨论】Gym - 101173C - Convex Contour
- Unity--------------------万向锁的概念
- python读取pdf表格_【Python 库】解析PDF文本及表格——pdfminer、tabula、pdfplumber 的用法及对比...
- 生产者消费者问题Java三种实现
- boost::gil模块数字扩展中的 resample_pixels() 示例
- 销户c语言,c – 如何在注销时优雅地退出QApplication?
- Gitlab 从 12.1 版本开始将不再支持 MySQL !!!
- python圣经是哪本_我的圣经:17年前的那本《Python 2.1 宝典》
- 使用福禄克CFP光纤测试仪进行Tier 1和Tier 2光纤测试
- 将hustoj 数据从Ubuntu 14.04 成功迁移到 ubuntu 16.04
- Kettle PDI工具连接Mysql时报Driver class ‘org.gjt.mm.mysql.Driver‘ could not be found, make sure the ‘MySQL
- matlab自动运行,自动运行matlab的方法步骤
- 前端ui组件(1):日程排班—11个优秀JavaScript 日历插件
- 网络摄像机·监控摄像机 镜头驱动芯片 MS41909
- Datadog——Monitor as a service(笔记)
- IDC数据中心机房气体灭火系统知识
- flashback使用
- WebRtc视频特效
热门文章
- [Selenium] 操作新弹出窗口之验证标题和内容
- This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its 错误解决办法
- Essential Grouping高性能的数据分组引擎介绍及下载
- Dos批处理检测NetFramework,并自动安装后运行指定程序(转)
- jqGrid细节备注—jqGrid中自定义格式,URL格式
- web developer tips (78):使用文档大纲导航
- vm8中装了redhat9 在安装vmwaretools的时候老是出现gcc位置错误
- 我们就要想办法的s9t9
- 《XIM 企业即时通讯软件》
- 2005年最具钱途的人才:软件研发炙手可热