尽管许多嵌入式工程师充满了希望和梦想,但高可靠性的代码不是一蹴而就的。它是一个艰苦的过程,需要开发人员维护和管理系统的每个比特和字节。当一个应用程序被确认为“成功”的那一刻,通常会有一种如释重负的感觉,但仅仅因为软件在受控条件下的那一刻运行正常并不意味着明天或一年后还会运行正常。
从规范完善的开发周期到严格执行和系统检查,开发高可靠性嵌入式系统的技术有许多种。本文介绍了7个易操作且可以长久使用的技巧,它们对于确保系统更加可靠地运行并捕获异常行为大有帮助。
技巧1——用已知值填充ROM
软件开发人员往往都是非常乐观的一群人,只要让他们的代码忠实地长时间地运行就可以了,仅此而已。微控制器跳出应用程序空间并在非预想的代码空间中执行这种情况似乎是相当少有的。然而,这种情况发生的机会并不比缓存溢出或错误指针失去引用少。它确实会发生!发生这种情况后的系统行为将是不确定的,因为默认情况下内存空间都是0xFF,或者由于内存区通常没有写过,其中的值可能只有上帝才知道。
不过有相当完备的linker或IDE技巧可以用来帮助识别这样的事件并从中恢复系统。技巧就是使用FILL命令对未用ROM填充已知的位模式。要填充未使用的内存,有很多不同的可能组合可以使用,但如果是想建立更加可靠的系统,好明显的选择是在这些位置放置ISR fault handler。如果系统出了某些差错,处理器开始执行程序空间以外的代码,就会触发ISR,并在决定校正行动之前提供储存处理器、寄存器和系统状态的机会。
ET200SPIM155-6PN/36ES7155-6AU30-0CN0
ET200SPAI8XI2-/4 6ES7134-6GF00-0AA1
ET200SP16DI24VDC6ES7131-6BH01-0BA0
ET200SP8DI 24VDC6ES7131-6BF01-0AA0
ET200SP6ES7131-6BF01-0BA0
ET200SPDI8x 24VDC 6ES7131-6BF00-0DA0
ET200SPDI8x24VDC 6ES7131-6BF00-0CA0
ET200SP8DI 6ES7131-6TF00-0CA0
ET200SP 24V DC/2A 6ES7132-6BD20-0BA0
ET200SP24.230V AC/2A6ES7132-6FD00-0BB1
ET200SP24V/2A DC6ES7132-6BD20-0CA0
ET200SPDQ4x 24VDC/2AHigh6ES7132-6BD20-0DA0
ET200SPDQ8x 24VDC/05A 6ES7132-6BF00-0CA0
ET200SP8DI24VDC 6ES7131-6BF61-0AA0
ET200SP2BU15-P16+A0+2* A06ES7193-6BP60-0DA0
ET200SPA02BU15-P16+A0+2B6ES7193-6BP60-0BA0
免责声明:
AMIKON我们销售新产品和停产产品,独立渠道购买此类特色产品。阿米控不是本网站特色产品的授权分*销*商、经销商或代表。本网站上使用的所有产品名称/产品图片、商标、品牌和徽标均为其各自所有者的财产。带有这些名称,图片、商标、品牌和徽标的产品描述、描写或销售仅用于识别目的,并不表示与任何权利持有人有任何关联或授权。