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

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

3天内不再提示

嵌入式系统开发技术指南

PCB线路板打样 来源:LONG 2019-08-08 08:58 次阅读

在过去的几年中,我注意到嵌入式系统开发人员和团队之间的趋势非常令人不安。趋势包括开发功能(最好)但不是为生产环境构建或测试的嵌入式系统。这种趋势导致灾难。

这种“简单功能”趋势的主要原因似乎是由于三个因素:利用示例代码,匆忙的开发周期,以及缺乏理解它需要什么构建生产嵌入式系统。利用示例代码的第一个因素实际上是启动嵌入式软件开发的关键一步。示例代码有助于启动和运行嵌入式系统,以及获得对目标硬件的重要见解。许多微控制器供应商为开发人员提供了有关如何设置外设和与微控制器交互的急需的示例代码。

但是,许多开发人员通常不会考虑这个示例代码。首先,示例代码只是一个例子;它不适合生产。它只是如何设置和与各种外围设备交互的指南。然而开发人员将采用代码,一旦将示例代码引入系统,它通常会保留在系统中。

仔细检查来自不同微控制器供应商的示例代码,经常会发现免责声明所提供的代码不能保证适用于任何目的。它甚至不能用于任何目的,而只是“原样”提供。只要阅读免责声明,就应该让嵌入式软件开发人员在考虑采用该代码时感到不安。该软件的制作人没有足够的信心支持他们的榜样,那么是什么让人们认为示例代码产品已经准备就绪?

检查硬件寄存器标志时,通常可以看到功能示例代码的一个很好的例子。图1显示了类似于人们通常会发现的内容。

图1 - 示例代码硬件寄存器标记检查

一个问题使用图1中的代码是 while 循环假设操作最终会成功完成。在理想条件下,这可能是真的,但如果硬件出现故障会怎样?也许振荡器正在漂移,因此无法实现同步。也许写入闪存失败了。当流氓出现故障的外部传感器导致总线停机时,硬件检查可能在通信总线标志上,从而无法完成传输。在这些情况下,使用图1中的代码的结果将是无限循环,需要外部力量(例如看门狗定时器)的干预。即使这样,看门狗定时器也会重置系统,但不能保证系统不会在循环中结束,进入永久复位的永久循环。

为生产环境编写的软件应该适应失败的可能性。某些场景的解决方案(如图1中的 while 循环)可能是基于系统节拍向循环添加超时,或者可能建立最大数字标志检查。这些将阻止系统进入无限循环或永久复位循环。

图2中的示例演示了如何将附加条件添加到 while 循环中,以便系统退出发生故障时的循环。这些添加不是使系统挂起等待救援的无限循环,而是生成错误代码,该错误代码警告调用例程感兴趣的硬件标志已超时。然后,系统可以在不调用最后一个监视器的情况下采取纠正措施。

图2 - 生产代码硬件寄存器标记检查

导致构建功能性而非生产意图嵌入式系统趋势的第二个因素是匆忙的开发周期。开发嵌入式系统会给企业带来巨大的管理成本,这使得企业希望昨天进入市场。此外,初创企业,小型企业和销售团队因乐观地设定生产日期而不考虑开发强大的生产就绪系统所需的实际工作而臭名昭着。许多工程师要么在这种情况下拒绝接受管理,要么他们确实发现他们的担忧被置若罔闻。最终结果是角落被切割以试图满足不切实际的最后期限,这导致设计仅包含仅在一系列非常受控的条件下工作的功能代码。

有助于发布功能性而非生产意图的嵌入式系统的最终因素是缺乏对如何构建生产意图嵌入式系统的理解。嵌入式软件和系统工程师需求量大,供不应求。这种情况导致公司在校外或从不同学科的工程师(如网络或应用程序开发)中担任重要角色。结果是如何正确地构建和实现健壮的嵌入式系统的知识差距,这些嵌入式系统不需要每天更新修补程序错误并修复安全问题。

但是,绿色和跨学科的工程师并非完整的故事,导致人们对生产嵌入式系统的真正缺乏了解。经常会要求训练有素且经验丰富的工程师开发原型或概念证明。为了向管理人员演示,工程师们提供了一个基于功能性示例代码的漂亮功能原型。演示很顺利,但该系统只能在受控条件下工作。但由于演示进展顺利,管理层希望立即运送系统,而不是理解仍需要做很多工作才能使系统生产准备就绪。

嵌入式系统正在进入我们生活的每一个角落。对于在受控条件下操作的一些设备,仅使用功能代码可能是好的。但随着物联网和自主智能社会的快速发展,运输功能而非生产代码的危险趋势是等待发生的事故。

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

    关注

    4981

    文章

    18273

    浏览量

    288338
  • PCB打样
    +关注

    关注

    17

    文章

    2965

    浏览量

    21383
  • 华强PCB
    +关注

    关注

    8

    文章

    1831

    浏览量

    27459
  • 华强pcb线路板打样

    关注

    5

    文章

    14629

    浏览量

    42574
收藏 人收藏

    评论

    相关推荐

    嵌入式Linux系统开发技术详解——基于ARM

    嵌入式Linux系统开发技术详解——基于ARM,一共6个部分,给大家参考
    发表于 06-24 21:19

    嵌入式视频教程之嵌入式系统开发对人才的技能要求

    `  如今嵌入式系统的发展前景让很多年轻人逐渐的了解和熟知嵌入式开发技术,也让年轻人们向往嵌入式系统开发
    发表于 06-15 13:10

    嵌入式视频教程之嵌入式系统开发对人才的技能要求

     如今嵌入式系统的发展前景让很多年轻人逐渐的了解和熟知嵌入式开发技术,也让年轻人们向往嵌入式系统开发
    发表于 06-23 10:44

    嵌入式系统开发技术

    请问谁有全国计算机等级考试三级教程——嵌入式系统开发技术(2017年版)的PDF啊~~~急求!!!
    发表于 07-30 17:12

    嵌入式Linux系统开发技术详解--基于ARM(完整版)》电子版

    本帖最后由 圣诞节快乐1 于 2017-12-29 14:30 编辑 《嵌入式Linux系统开发技术详解--基于ARM》本书以嵌入式Linux
    发表于 12-29 14:29

    STM32嵌入式系统开发实战指南

    STM32嵌入式系统开发实战指南
    发表于 04-03 09:51

    arm嵌入式系统开发

    arm嵌入式系统开发
    发表于 05-09 09:59

    ARM嵌入式Linux系统开发详解

    了Linux技术的*发展,全部采用当前最流行和稳定的Linux发行版或者相关工具,是Linux爱好者学习Linux的好帮手。《Linux典藏大系:ARM嵌入式Linux系统开发详解(第2版)》是获得了
    发表于 09-14 08:57

    嵌入式系统和实时系统开发的关键工艺

    和实时系统的关键特性,并探讨在选择或开发硬件和软件组件的基础上开发高效嵌入式系统的解决方案,同时详细说明
    发表于 07-11 07:53

    嵌入式系统和实时系统开发的关键工艺是什么?

    和实时系统的关键特性,并探讨在选择或开发硬件和软件组件的基础上开发高效嵌入式系统的解决方案,同时详细说明
    发表于 08-23 06:45

    嵌入式Linux系统开发技术

    ARM开发板(初期买2410足够),学驱动开发啥的。学完了以后,做几个驱动,就可以做项目了。更多资源: http://www.superedu.com.cn/xuexi/jdsp/?op321嵌入式Linux
    发表于 05-12 00:59

    嵌入式系统开发要素的选择原则是什么

    本文详细阐述了在嵌入式系统开发嵌入式处理器、嵌入式操作系统、调试器、仿真器以及开发人员的
    发表于 04-28 06:26

    嵌入式系统开发工具有哪些

    嵌入式系统开发上期回顾嵌入式系统开发工具(一)文件编程Linux文件(二)进程线程编程(三)TCP/UDP上期回顾嵌入式
    发表于 12-22 06:37

    嵌入式系统开发技术的相关资料分享

    嵌入式系统开发技术(02)嵌入式处理器嵌入式处理器的结构、特点、分类分类结构冯·诺依曼储存结构哈佛储存结构哈佛储存结构ARM处理器概述特点
    发表于 12-22 07:42

    嵌入式系统开发的基础知识

    # 嵌入式系统开发的基础知识(2)版权声明:未经博主允许,所有转载皆算侵。 准备结合“全国计算机等级考试三级嵌入式系统开发技术考试大纲”,将
    发表于 12-22 06:13