0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

构建嵌入式解决方案的各种CPU架构的软件注意事项

星星科技指导员 来源:嵌入式计算设计 作者:Jaya Kathuria 2022-10-13 10:02 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

感知、组织、分析、呈现和决策信息需要软件。几十年来,我们一直在使用各种平台以不同级别的能力来执行此任务。现在,我们拥有非常小的设备,这些设备由单节电池运行,具有1990年代后期基于80486的个人计算机的功率,下一个问题是显而易见的 - 软件。有了裸机的实时操作系统(RTOS)和像Linux这样的真实操作系统可供选择,我们将遇到无线电和计算机中探索的类似问题,但从软件的角度来看。

从可扩展的软件架构开始是任何嵌入式应用所必需的。在最终确定嵌入式应用程序的编程体系结构之前,必须考虑将来可能调用的增强软件。许多工程师认为这是事后的想法,因为他们习惯于在操作系统之上编写代码。

另一个重要的考虑因素是成本。随着系统功能的增加,对更快的处理器、更多的代码内存和 RAM 的需求也在增加。下面的图 1 显示了嵌入式系统的典型功能与成本关系图,尽管在可能的硬件选择方面,不同层之间的界限是模糊的:

pYYBAGNHcfqAVKiQAAEC0-aoI1I531.png

在以下情况下,首选裸机编程:

该应用程序很简单,可以在低端处理器上实现。

应用程序需要提取每个周期的CPU功率,并且操作系统引入的开销是不可接受的。

安全性和安全性与硬件密切相关,其中系统按照确切的期望执行和运行,并且系统一直处于这种状态。

硬件成本受到限制,并且需要出色的效率。

许多嵌入式应用程序是无限循环,其中它们执行一个任务,然后执行另一个任务,依此类推,重复相同的功能。这些任务中的大多数都是相互依赖的。裸机编程对于代码应该是可预测的、可理解的、并且应该易于调试的情况并不理想。拥有调度程序使嵌入式工程师的生活更加简单 - 每个软件模块都可以独立设计,然后使用调度程序的帮助与其他软件模块链接和调度。因此,随着代码复杂性的增加以及系统需要功能强大的微处理器/微控制器,RTOS是首选。当MCU集成更多内存和外设时,实时操作系统成为必需品。复杂的物联网应用可能需要更多的中断源、更多的功能和更多的标准通信接口——主要是无线。在如此复杂的解决方案中可能需要RTOS。

实时操作系统可以充分利用功能丰富的MCU,特别是当提供中间件可以处理复杂任务时,否则将需要真正的操作系统。但是,在软件方面,有许多不重叠的复杂性和功能领域。具有添加中间件的RTOS可以接近通用操作系统的功能。例如,中间件可以添加文件系统、网络、图形和复杂输入支持等功能,尽管与本地支持这些功能的真正操作系统相比,需要增加开发工作。一些远程操作系统甚至支持 POSIX API,这些 API 可以在一定程度上重用来自 Linux/Unix 应用程序的代码。

但是,当应用程序复杂性增加到超过特定限制时,通用嵌入式操作系统就会显现出来。这时,处理器会说:“给我一个MMU,我就可以解决你所有的问题。由于其代码大小和主存储器要求,昂贵的SRAM和NOR存储器变得不切实际。大多数嵌入式版本的通用操作系统需要至少 16-32 MB 的主内存和 64+MB 的代码存储才能正常运行。幸运的是,应用处理器和通用操作系统能够处理更便宜、更慢的存储器,如DRAM和NAND闪存。

当您迁移到嵌入式通用操作系统时,您不会丢失“实时功能”。它们能够以略高的延迟级别运行实时应用程序,具有不同级别的确定性(“软实时”)。但大多数应用程序不需要“硬实时”功能。在嵌入式操作系统上运行的经过良好验证的应用程序可以像在中间件的帮助下在RTOS上运行的类似应用程序一样防弹和确定性。

由于持续的硅扩展以及大量工程师对合适的操作系统更满意,应用处理器和内存的成本每年都在降低,许多本来会使用RTOS的应用程序现在发现应用处理器+适当的操作系统组合具有成本效益,并且还缩短了上市时间。

审核编辑:郭婷

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 嵌入式
    +关注

    关注

    5209

    文章

    20657

    浏览量

    337070
  • cpu
    cpu
    +关注

    关注

    68

    文章

    11327

    浏览量

    225901
  • RTOS
    +关注

    关注

    25

    文章

    870

    浏览量

    123214
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    Parasoft C/C++test:嵌入式安全关键行业的一体化软件测试解决方案

    缝融入 DevOps 的自动化测试工具。Parasoft C/C++test 正是为解决这一痛点而生,它是面向嵌入式安全关键行业的集成软件测试解决方案,凭借全面的自动化能力与深度流程适配能力,成为行业内高质量开发与合规落地的首选
    的头像 发表于 03-06 09:42 383次阅读

    C语言嵌入式系统编程注意事项-内存操作

    C语言嵌入式系统编程注意事项之内存操作 在嵌入式系统的编程中,常常要求在特定的内存单元读写内容,汇编有对应的MOV指令,而除C/C++以外的其它编程语言基本没有直接访问绝对地址的能力 数据指针 在
    发表于 01-04 07:31

    RZ/A3M芯片:性能卓越的嵌入式解决方案

    RZ/A3M芯片:性能卓越的嵌入式解决方案嵌入式系统设计领域,选择一款合适的芯片对于产品的成功至关重要。Renesas的RZ/A3M芯片凭借其丰富的功能和出色的性能,成为了众多工程师的热门选择
    的头像 发表于 12-26 17:25 709次阅读

    嵌入式系统软件架构通常划分

    嵌入式系统的软件架构通常划分如下分层设计: 应用层:环境温度监测、报警触发逻辑。 中间件层:支持MQTT协议的网络通信模块,用于将温度数据上传至云端。 操作系统层:基于FreeRTOS进行多任务管理
    发表于 12-01 07:20

    CW32嵌入式软件开发的必备知识

    嵌入式软件开发作为计算机科学和电子工程的交叉领域,要求开发人员具备一系列的专业知识和技能。 而基于CW32的嵌入式软件开发必备知识包括以下部分: 1 、编程语言 熟练掌握C(C++
    发表于 11-28 07:48

    嵌入式软件分层架构设计原则

    嵌入式软件分层架构的设计原则如下: 模块化和可扩展性:每一层应当保持松耦合,这样当硬件变化或某些功能扩展时,只需要修改对应的层次,而不影响整体架构。 硬件无关性:上层代码应当尽量避免直
    发表于 11-28 07:05

    嵌入式和FPGA的区别

    ,芯片内部的门电路连接在出厂时就已固定,无法更改,它们的功能是通过软件编程也就是嵌入式软件来实现的。 FPGA(现场可编程门阵列) 则是一种可编程逻辑器件,其硬件结构可以通过编程来配置,实现
    发表于 11-19 06:55

    嵌入式软件测试与专业测试工具的必要性深度解析

    故障,最终召回成本高达数百万欧元。主流测试工具与技术方案嵌入式软件测试工具市场提供了多样化的解决方案,满足不同测试需求:功能测试工具 ‌ETest Studio‌:国产化黑盒测试工具
    发表于 09-28 17:42

    嵌入式达到什么水平才能就业?

    (三)实战经验拥有2-3 个完整嵌入式项目经验:项目需包含需求分析、方案设计、代码开发、测试优化全流程,能清晰阐述项目难点与解决方案能独立排查项目中的软硬联调问题:比如通过示波器查看信号波形定位
    发表于 09-15 10:20

    emWin AppWizard 开发注意事项有哪些?

    emWin AppWizard 开发注意事项
    发表于 09-04 06:18

    是德示波器MSOX3052T在嵌入式系统中的应用

    混合信号示波器,凭借其创新的硬件架构与智能分析功能,为嵌入式系统调试提供了全新的解决方案。本文将从技术特性、应用场景及实战案例三个维度,深入探讨该示波器在嵌入式系统开发中的关键作用。
    的头像 发表于 08-27 17:38 798次阅读
    是德示波器MSOX3052T在<b class='flag-5'>嵌入式</b>系统中的应用

    单元测试工具TESSY现已支持ABIX HiperSIM,助力MELEXIS MLX16 汽车嵌入式系统的软件验证

    TESSY现已支持ABIX HiperSIM,为基于MELEXIS MLX16架构的汽车嵌入式系统提供高效、可靠的软件验证解决方案。自动化测试+高保真仿真,助力提升
    的头像 发表于 07-17 13:39 967次阅读
    单元测试工具TESSY现已支持ABIX HiperSIM,助力MELEXIS MLX16 汽车<b class='flag-5'>嵌入式</b>系统的<b class='flag-5'>软件</b>验证

    请问从哪里可以获取CCG5 软件开发及Layout注意事项?

    我们准备开发一款雷电4的拓展坞 请问从哪里可以获取CCG5 软件开发及Layout注意事项
    发表于 05-30 06:21

    瑞芯微RK3288解决方案:高性能、高扩展性的嵌入式系统设计理念与应用分析

    。本文将深入剖析基于RK3288的处理方案,重点阐述其在硬件架构软件平台、扩展性设计以及应用场景等方面的优势,并探讨其所蕴含的嵌入式系统设计理念。一、RK328
    的头像 发表于 05-08 15:39 1269次阅读
    瑞芯微RK3288<b class='flag-5'>解决方案</b>:高性能、高扩展性的<b class='flag-5'>嵌入式</b>系统设计理念与应用分析

    设置射频网络分析仪的测试条件有哪些注意事项

    噪声≈12dB)。 优化建议: 使用专业软件(如Keysight VEE)自动化处理数据,避免人为误差。 五、典型场景的注意事项总结 [td]测试场景关键注意事项典型问题与解决方案
    发表于 05-06 16:02