为了建立一个更加可靠和扎实的系统,确保系统硬件正常工作非常重要。毕竟硬件会发生故障。(幸运的是软件永远不会发生故障,软件只会做代码要它做的事,不管是正确的还是错误的)。在启动时验证RAM的内部或外部没有问题,是确保硬件可以如预期般运作的一个好方法。
有许多不同的方法可用于执行RAM检查,但常用的方法是写入一个已知的模式,然后等上一小段时间再回读。结果应该是所读就是所写。真相是,在大多数情况下 RAM检查是通过的,这也是我们想要的结果。但也有极小的可能性检查不通过,这时就为系统标示出硬件问题提供了极好的机会。
技巧4——使用堆栈监视器
对许多的嵌入式开发者而言,堆栈似乎是一股相当神秘的力量。当奇怪的事情开始发生,工程师终于被难倒了,他们开始思考,也许堆栈中发生了什么事。结果是盲目地调整堆栈的大小和位置等等。但该错误往往是与堆栈无关的,但怎能如此确定?毕竟,有多少工程师真的实际执行过好坏情况下的堆栈大小分析?
堆栈大小是在编译时就静态分配好的,但堆栈是以动态的方式使用的。随着代码的执行,应用程序需要的变量、返回的地址和其它信息被不断存储在堆栈中。这种机制导致堆栈在其分配的内存中不断增长。然而,这种增长有时会超出编译时确定的容量极限,导致堆栈破坏相邻内存区域的数据。
G110 0.12kW6SL3211-0AB11-2UA1/2UB1/2UA1/2UB1
G1106SL3211-0AB11-2BA1/2BB1/2BA1/2BB1 0.12kW
G1106SL3211-0AB22-2UA1/2UB1/0UA1/0UB1/
G110 0.25kW6SL3211-0AB12-5UA1/5UB1/5UA1/5UB1
G120C PN 6SL3210-1KE/11/12/13/14/15-8/2/3/UF2
G120C 6SL3210-1KE17/18/21/22-5/8/3/7/6UF1
G120C 6SL3210-1KE28/31/32//4/1/7/UB1 KW
G120C 6SL3210-1KE/11/12/13/14/15-8/3/2AB2
G120C 6SL3210-1KE23/24/26/27/28-2/8/4/0/4UF1
G120C 6SL3210-1KE31/32-1/4/7UF1
G120C6SL3243/3244-0BB30/0BB00-1HA3/PA3/FA0/BA1/PA1
G120C 6SL3210-1KE/11/12/13/14/15-8/3/2/UP2
G120C 6SL3210-1KE17/18/21/22/23-5/8/3/7/6/2UP1
G120C 6SL3210-1PE21/22/23/24/26-1/4/8/7/3/5/0UL0
G120C 6SL3210-1PE27/28/31/32-5/8/1/5UL0
G120C3KW 6SL3210-1KE17/18/21-5AB1/8BA1/3BA1/7BA1
G120C6SL3210-1PE11/12/13/14/16/18-8/3/2/1/0UL1
G120C6SL3210-1KE/17/18/21/5/8/3/7/UB1
免责声明:
AMIKON我们销售新产品和停产产品,独立渠道购买此类特色产品。阿米控不是本网站特色产品的授权分*销*商、经销商或代表。本网站上使用的所有产品名称/产品图片、商标、品牌和徽标均为其各自所有者的财产。带有这些名称,图片、商标、品牌和徽标的产品描述、描写或销售仅用于识别目的,并不表示与任何权利持有人有任何关联或授权。