嵌入式开发:优化 RTOS 的 7 个技巧
实时操作系统 (RTOS) 正在进入越来越多的系统。习惯于裸机开发或使用高度资源受限系统的嵌入式开发人员经常抱怨系统性能或内存使用情况。开发人员可以遵循以下七个技巧来帮助优化其 RTOS 的性能和代码大小。
1. 最小化应用程序中的任务
将应用程序分解为看似同时运行的单独任务“小程序”的能力是非常有益的。但是,不熟悉 RTOS 开发的开发人员有时可能会有点过分热心并创建比应用程序所需的任务更多的任务。一些额外的任务有什么害处?在应用程序中创建的每个任务都需要创建任务控制块 (TCB) 来管理任务。TCB 包含至少几十个用于跟踪任务的不同变量。(参见 uCOS/III 这里的 TCB 示例。)可以想象 哪个公司小程序 ,TCB 不使用大量内存,但是随着越来越多的任务添加,内存使用量迅速膨胀。出于这个原因,想要尽量减少他们使用的代码空间的开发人员应该尽量减少他们应用程序中的任务数量。
2. 使用内存块池代替字节池
内存字节池本质上是一个堆。开发人员可以在程序执行期间动态请求内存,就像他们使用 malloc 一样。在许多情况下,使用堆或字节池会导致影响实时系统性能的未定义行为。为了确保系统及时运行,嵌入式开发人员可以改用块池小程序开发 微信小程序的价格 ,它以确定性的方式运行,也没有碎片问题。
3. 不要创建和销毁对象
创建任务、信号量、消息队列和其他 RTOS 对象通常会导致动态内存分配。创建和销毁 RTOS 对象将使用 malloc 和 free,这同样是不确定的,可能会导致性能问题。与创建和销毁对象相关的开销小程序开发,特别是如果经常这样做,可能会成为系统的障碍,更不用说它如何增加代码的复杂性并使程序难以遵循。如果可能,在应用程序初始化期间分配所有对象,并让它们在应用程序的整个生命周期中持续存在。这样 代驾小程序定制 ,对象的行为就好像它们是静态分配的,而不是动态分配的。
4.考虑使用事件标志
事件标志可用于同步任务 做一款app多少钱 小程序定制哪里做 ,类似于使用信号量同步任务的方式。从性能角度比较事件标志和信号量时,事件标志通常使用更少的内存并且执行得更快。嵌入式开发人员应考虑比较其 RTOS 的内存占用和执行时间,以确定他们可以从应用程序中挤出几个额外字节或微秒的位置。
5. 最小化 RTOS 对象
大多数 RTOS 对象都需要一个控制块。应用程序中的任务、信号量、消息队列等越多,内存使用量就越大。通过限制在运行时创建的 RTOS 对象的数量小程序开发,可以最大限度地减少内存使用。
6.优化任务栈
任务堆栈因在应用程序中消耗最多的内存而臭名昭著。许多开发人员只是猜测一个值而不是进行测量。许多 RTOS 会建议任务的默认堆栈大小约为 1 kB。是不是太多了?太少了?没有测量就无法判断,所以开发人员只是猜测。结果是分配了过多的内存并浪费了堆栈空间。开发人员应利用与 RTOS 相关的堆栈监控功能来确定其最小、最大和平均堆栈使用量。从最大值开始,额外的 25% 将是确定筹码大小的安全经验法则。
7.关闭未使用的功能
RTOS 是极其丰富和复杂的软件系统。它们包含许多并非每个应用程序或开发人员都可以使用的功能。熟悉 RTOS 配置文件对于最大限度地减少内存使用和代码大小非常有帮助。配置文件允许开发人员启用和禁用功能。
使用 RTOS 不一定需要增强型微控制器或大量内存。嵌入式开发人员构建和使用他们的 RTOS 的方式可以确定它是否在资源受限的环境中表现良好或被标记为臃肿的代码。这七个技巧只是帮助您开始优化 RTOS 的一些技巧。
发现、改变
探知、求新
共享,感恩一路相伴
昱远品牌形象已完成全面升级
点击访问新官网