嵌入式系统5大值得关注的特性

简介: 无论嵌入式系统多么简单或复杂,开发人员都应密切关注五个关键特性。一些是显而易见的,例如RAM和ROM使用。然而,还有其他人经常被开发人员看过,这很容易成为设计周期中的一个主要问题。一、 系统时序 询问任何开发人员系统中断或其他系统功能的最小,最大和平均执行时间,并且百分之九十的时间答案是空白的。
  无论嵌入式系统多么简单或复杂,开发人员都应密切关注五个关键特性。一些是显而易见的,例如RAM和ROM使用。然而,还有其他人经常被开发人员看过,这很容易成为设计周期中的一个主要问题。

一、 系统时序

  询问任何开发人员系统中断或其他系统功能的最小,最大和平均执行时间,并且百分之九十的时间答案是空白的。在了解嵌入式系统的实时性能时,许多开发人员只是交叉指责并希望获得最佳效果。微控制器已经变得非常快速和强大,但它们绝不是通用计算设备,其中时间可以完全被忽略。开发人员需要了解他们的系统如何响应,例如,如果多个中断同时触发,或者如果用户一次性地混淆所有按钮。
  幸运的是,现代微控制器提供了许多工具,使开发人员能够了解他们的系统时序和响应。例如,ARM微控制器具有跟踪功能,允许开发人员定期对PC计数器进行采样,并重建系统时序和执行路径。利用这些工具可以让开发人员深入了解他们的系统,并为他们提供关于他们的系统如何执行的真实数据,而不是希望和祈祷系统按开发人员认为的方式执行代码。

二、执行顺序

  理解指令执行顺序对于开发人员来说与了解系统时序一样重要。了解系统分支或跳转的位置以及执行各种功能或中断的时间和顺序至关重要。系统变得如此复杂,以至于我们可以认为我们了解正在发生的事情,我们需要提取跟踪数据并直观地看到代码执行。这通常会揭示出与我们预期完全不同的故事。
  开发人员需要调查并熟悉他们的微控制器跟踪工具。这些现代工具提供了几年前无法实现的视觉上引人入胜且富有洞察力的图表。在编代码之前可以设置跟踪和错误捕获工具。

三、代码大小

  大多数开发人员,如果被问及GPIO或SPI驱动程序将在他们的系统上占用多少代码空间,甚至没有地方去寻找答案!他们所知道的是,他们最后使用的应用程序有GPIO和SPI,最终的应用程序使用了大约47 kB的闪存空间。
  代码大小可能会根据所使用的编译器甚至使用的优化级别和标志而大不相同。如今在大多数情况下,监控代码大小变得不那么重要了,因为闪存相当便宜且供应商已经制造根据代码大小,在同一个微控制器系列中的不同部件之间切换非常容易。但是,跟踪驱动程序等项目的详细信息仍然非常有用,以便于将来的项目规划和零件选择。

四、RAM使用

  RAM不是代码存储器,而是嵌入式软件开发的关键因素。微控制器提供超过100kB的闪存空间并且同时仅提供16kB RAM的情况并不少见。这意味着RAM空间仍然非常宝贵。在混合中投入RTOS,情况可能很快变得更糟。在基于RTOS的系统中,开发人员为磁盘堆栈空间分配不同数量的RAM并不罕见,因为很难估计恰当的大小。因此,当开发人员创建和实现他们的软件时,他们需要监视他们的RAM空间。

五、 能源消耗

  电池供电的设备无疑具有能耗作为系统设计的关键要求。但是,有权访问电网的系统通常会忽略能源,因为它不是关键要求。然而,鉴于能源成本上升和自然资源的限制,开发商仍应继续监控其设计的电力需求,以了解其能源足迹以及如何最大限度地减少其使用的能源。通过这种监控,电池供电的设备显然可以在更换电池或为设备充电之间获得更长的使用寿命。
相关文章
|
自然语言处理 索引
大模型开发: 解释自然语言处理(NLP)中的词嵌入。
**词嵌入技术在NLP中将文本转为数值表示,捕获词汇的语义和语法关系。过程包括:词汇索引、训练嵌入矩阵(如Word2Vec、GloVe、BERT)、文本向量化及向量输入到NLP模型(如情感分析、命名实体识别)。词嵌入是连接文本与机器理解的关键桥梁。**
424 2
|
安全 编译器 Swift
苹果重磅发布Swift 6:在 Swift 6 中如何实现并发开发?相比Swift 5.5 有哪些重磅升级?
Swift 6 强化了并发编程,引入结构化并发、任务、执行器、隔离、同步原语、类型化错误处理和取消超时功能。对比Swift 5.5,它默认启用全面并发检查,改进错误处理,增加了隔离区域、类型化抛出、包迭代等新特性,优化了性能并更新了库。
449 2
|
开发框架 安全 Java
Java的发展历程和特点
Java的发展历程和特点
263 5
|
机器学习/深度学习 人工智能 自然语言处理
谷歌工程师Alex Irpan:2028年有10%概率实现AGI
【2月更文挑战第20天】谷歌工程师Alex Irpan:2028年有10%概率实现AGI
317 6
谷歌工程师Alex Irpan:2028年有10%概率实现AGI
|
前端开发 关系型数据库 定位技术
WEBGIS系统整体设计
WEBGIS系统整体设计
295 6
WEBGIS系统整体设计
|
机器学习/深度学习 算法 数据可视化
Transformer要变Kansformer?用了几十年的MLP迎来挑战者KAN
【5月更文挑战第15天】KANs,一种基于Kolmogorov-Arnold表示定理的新型神经网络,以其独特结构挑战传统的MLP。KANs在边而非节点上使用可学习激活函数,展现出超越MLP的准确性和更快的扩展性。其可解释性优势利于科学应用,但训练速度较慢,未来优化有望改善。KANs在科学任务和潜在的Transformer集成中展示出广阔的应用前景。[链接](https://arxiv.org/pdf/2404.19756)
525 5
|
JavaScript
Hexo个人博客之Next-8.20主题下载及美化
Hexo个人博客之Next-8.20主题下载及美化
|
Linux 程序员 图形学
C++语言在现代软件开发中的应用与实践
C++语言在现代软件开发中的应用与实践
302 2
|
存储 人工智能 算法
探索人工智能伦理:技术发展与社会责任的平衡
随着人工智能(AI)技术的飞速进步,其对社会、经济以及人类生活的影响日益加深。本文将探讨AI技术发展中的伦理问题,分析数据隐私、算法偏见和自动化失业等关键议题。通过引用最新的科研研究和统计数据,文章旨在揭示AI技术背后的潜在风险,并提出相应的策略来促进科技与社会价值的和谐共存。
唯一性约束:unique
唯一性约束:unique。
296 3

热门文章

最新文章