企业资质

厦门莫格电气自动化有限公司

普通会员8
|
企业等级:普通会员
经营模式:
所在地区:福建 厦门
联系卖家:
手机号码:
公司官网:
企业地址:
企业概况

厦门莫格电气自动化有限公司是一家专业提供工业自动化领域的备件服务商,产品品种齐全、价格合理,公司实力雄厚,重信用、守合同、保证产品质量,以多品种经营特色和薄利多销的原则,赢得了广大客户的信任。我们主营PLC可编程控制器模块,DCS卡件,ESD系统卡件,振动监测系统卡件,汽轮机控制系统模块,燃气发电机......

IMASO11、SPNIS21

产品编号:166762806                    更新时间:2018-10-18
价格: ¥999.00
厦门莫格电气自动化有限公司

厦门莫格电气自动化有限公司

  • 主营业务:PLC可编程控制器模块,DCS卡件,ESD系统卡件,振动监测...
  • 公司官网:
  • 公司地址:

联系人名片:

联系时务必告知是在"产品网"看到的

产品详情

厦门莫格电气自动化有限公司销售

ABB  IMASO11、SPNIS21

欢迎来电咨询!

IMASO11、SPNIS21

IMASO11、SPNIS21

IMASO11、SPNIS21

您迈开询价的一小步,我还您成功的一大步。

 

 尽管许多嵌入式工程师充满了希望和梦想,但高可靠性的代码不是一蹴而就的。它是一个艰苦的过程,需要开发人员维护和管理系统的每个比特和字节。当一个应用程序被确认为“成功”的那一刻,通常会有一种如释重负的感觉,但仅仅因为软件在受控条件下的那一刻运行正常并不意味着明天或一年后还会运行正常。    

  从规范完善的开发周期到严格执行和系统检查,开发高可靠性嵌入式系统的技术有许多种。本文介绍了7个易操作且可以长久使用的技巧,它们对于确保系统更加可靠地运行并捕获异常行为大有帮助。    

  技巧1——用已知值填充ROM    

  软件开发人员往往都是非常乐观的一群人,只要让他们的代码忠实地长时间地运行就可以了,仅此而已。微控制器跳出应用程序空间并在非预想的代码空间中执行这种情况似乎是相当少有的。然而,这种情况发生的机会并不比缓存溢出或错误指针失去引用少。它确实会发生!发生这种情况后的系统行为将是不确定的,因为默认情况下内存空间都是0xFF,或者由于内存区通常没有写过,其中的值可能只有上帝才知道。    

  不过有相当完备的linker或IDE技巧可以用来帮助识别这样的事件并从中***系统。技巧就是使用FILL命令对未用ROM填充已知的位模式。要填充未使用的内存,有很多不同的可能组合可以使用,但如果是想建立更加可靠的系统,***明显的选择是在这些位置放置ISRfaulthandler。如果系统出了某些差错,处理器开始执行程序空间以外的代码,就会触发ISR,并在决定校正行动之前提供储存处理器、寄存器和系统状态的机会。    

  技巧2——检查应用程序的CRC    

  对嵌入式工程师来说一个很大的好处是,我们的IDE和工具链可以自动产生应用程序或内存空间校验和(Checksum),从而根据这个校验和验证应用程序是否完好。有趣的是,在许多这些案例中,只有在将程序代码加载到设备时,才会用到校验和。    

  然而,如果CRC或校验和保持在内存中,那么验证应用程序在启动时(或甚至对长时间运行的系统定期验证)是否仍然完好是确保意外之事不会发生的***途径。现在一个编程过的应用程序发生改变的概率是很小的,但考虑每年交付的数十亿个微控制器以及可能恶劣的工作环境,应用程序崩溃的机会并不是零。更有可能的是,系统中的一个缺陷可能导致某一扇区发生闪存写入或闪存擦除,从而***应用程序的完整性。    

  技巧3——在启动时执行RAM检查    

  为了建立一个更加可靠和扎实的系统,确保系统硬件正常工作非常重要。毕竟硬件会发生故障。(幸运的是软件永远不会发生故障,软件只会做代码要它做的事,不管是正确的还是错误的)。在启动时验证RAM的内部或外部没有问题,是确保硬件可以如预期般运作的一个好方法。    

  有许多不同的方法可用于执行RAM检查,但常用的方法是写入一个已知的模式,然后等上一小段时间再回读。结果应该是所读就是所写。真相是,在大多数情况下RAM检查是通过的,这也是我们想要的结果。但也有***的可能性检查不通过,这时就为系统标示出硬件问题提供了***的机会。    

  技巧4——使用堆栈监视器    

  对许多的嵌入式开发者而言,堆栈似乎是一股相当神秘的力量。当奇怪的事情开始发生,工程师终于被难倒了,他们开始思考,也许堆栈中发生了什么事。结果是盲目地调整堆栈的大小和位置等等。但该错误往往是与堆栈无关的,但怎能如此确定?毕竟,有多少工程师真的实际执行过***坏情况下的堆栈大小分析?    

  堆栈大小是在编译时就静态分配好的,但堆栈是以动态的方式使用的。随着代码的执行,应用程序需要的变量、返回的地址和其它信息被不断存储在堆栈中。这种机制导致堆栈在其分配的内存中不断增长。然而,这种增长有时会超出编译时确定的容量极限,导致堆栈***相邻内存区域的数据。    

  ***确保堆栈正常工作的一种方法是实现堆栈监视器,将它作为系统“***”代码的一部分(有多少工程师会这样做?)。堆栈监视器会在堆栈和“其它”内存区域之间创建一个缓冲区域,并填充已知的位模式。然后监视器会不断的监视图案是否有任何变化。如果该位模式发生了改变,那就意味着堆栈增长得太大了,即将要把系统推向黑暗地狱!此时监视器可以记录事件的发生、系统状态以及任何其它有用的数据,供日后用于问题的诊断。    

  大多数实时操作系统(RTOS)或实现了内存保护单元(MPU)的微控制器系统中都提供有堆栈监视器。可怕的是,这些功能默认都是关闭状态,或者经常被开发人员有意关闭。在网络上快速搜寻一下可以发现,很多人建议关闭实时操作系统中的堆栈监视器以节省56字节的闪存空间。等等,这可是得不偿失的做法! 

4351B
3HA***296-1
1762-L40BXBR
1747-L524
SAFT181
SAFT183
SAMT11
6FX1138-6BL01
6FX1144-2BA00
ADI12-16
DAI12-8C
PIO-32/32L
MAT6400
5X00119G01
100-D180
 MC-PSRX04
PSCCM22AAN
L5201-2-02
L5209-2-01
THROTTLE CONTROL VALVE 253B-2-50-2
WH5-2FF
TM-745I
IM21-14EX-CDTRI
25CLPT-.5
ICSE08B5 24VDC5W
2711P-T6C20D
SGDS-01A12A
140ACI03000
140CPS11100
140CPS11410
140CPU11303
140CRA93100
140DAI74000
6ES7315-2AG10-0AB0
3604E
3BSE018103R1
6RA8232-1DB0
2840A18G01
2840A21G01
7379A31G04
7379A62G02
PS-M06D12S5-NJ1L(S
1606-XL240DR
1756-OW16I
X460-24X
1756-OW16I
9032A
MCS 20-3X400-500/24
5K36MN339
MPB.533.00 PLM500
3HAB5956-1
3HAB8101-8
3HAB9669-1
3HAC3462-1
P0914YM
PCA66-CXB
1X00024H01 WH1-2FF
3BSE032401R1
CIMR-AB4A0208
SC904-001-01
PS465
PS477
CP6000
A00SC23-Z06-028
6ES7416-3FR05-0AB0
ATV12H075M3
IBRC6062R
6SN1145-1BA02-OCA1
FBM207B端子
FBM207端子
FBM237
DDS3.1-W30-DA01
DDS3.1-W50-DA01
TVM2.1-50-220/300-W1
KPS-600/20ESC
FBM205 P0916NN
WH1-2FF
6ES5441-7LA13
DSA-MTR60D
XBTGT2120
6RA7075-6DV62-0
3604E/EN
4000094-310
9662-810
JANCD-JSP04-1
MC-4/11/10/400
1746-IB16
1746-OB16
6ES7214-2BD23-0XB8
6GK7243-1EX01-0XE0
1747-L40C
MP4-74523
CDP312
ULT-95
MPS 20 85057
FI20160-1
1606-XL240E
1756-A7
1756-EN2TR
1756-L72
1756-N2
1756-PA72
1769-ECR
1769-IF4
1769-IQ16
1769-L32E
1769-OB16
1769-PA4
1783-ETAP
1783-US08T
1784-CF64
1794-AENTR
1794-IB32
1794-IE8
1794-OB16
1794-OE4
1794-TB3
MVI56-PDPMV1
1769-IF16C
1756-L62
1794-ACN15
1794-IR8
1756-IB32 B
1756-IF16
6SN1118-0DJ21-0AA1
6SN1123-1AA01-0FA1
MP4-74523
1785-BCM/C
1785-L80E/E
BRC300
IEMMU21
IMASO11
IMFEC12
6NH9720-3AA00
6NH9860-1AA00
***2315D
PS-M06D12S5-NJ1L
608701018
140DDI35300
140XTS02000
6SN1111-0AA01-1AA1
1769-L23E-QB1B

厦门莫格电气自动化有限公司电话:传真:联系人:

地址:主营产品:PLC可编程控制器模块,DCS卡件,ESD系统卡件,振动监测...

Copyright © 2025 版权所有: 产品网店铺主体:厦门莫格电气自动化有限公司

免责声明:以上所展示的信息由企业自行提供,内容的真实性、准确性和合法性由发布企业负责。产品网对此不承担任何保证责任。