以前,我们连嵌入式是什么都不知道,如今,嵌入式培训的火热也推动着嵌入式行业的发展。可以看到的是,嵌入式的出现对科技发展有着重大的意义。嵌入式从规范完善的开发周期到严格执行和系统检查,开发高可靠性嵌入式系统的技术有许多种,嵌入式的学习路线大同小异。这里小编推荐几个方法确保系统更加可靠地运行并捕获异常行为。
1、用已知值填充ROM
软件开发人员往往都是非常乐观的一群人,只要让他们的代码忠实地长时间地运行就可以了,仅此而已。微控制器跳出应用程序空间并在非预想的代码空间中执行这种情况似乎是相当少有的。然而,这种情况发生的机会并不比缓存溢出或错误指针失去引用少。技巧就是使用FILL命令对未用ROM填充已知的位模式。要填充未使用的内存,有很多不同的可能组合可以使用,但如果是想建立更加可靠的系统,明显的选择是在这些位置放置ISRfaulthandler。如果系统出了某些差错,处理器开始执行程序空间以外的代码,就会触发ISR,并在决定校正行动之前提供储存处理器、寄存器和系统状态的机会。
2、检查应用程序的CRC
对嵌入式工程师来说一个很大的好处是,IDE和工具链可以自动产生应用程序或内存空间校验和Checksum,从而根据这个校验和验证应用程序是否完好。然而,如果CRC或校验和保持在内存中,那么验证应用程序在启动时(或甚至对长时间运行的系统定期验证)是否仍然完好是确保意外之事不会发生的极好途径。现在一个编程过的应用程序发生改变的概率是很小的,但考虑每年交付的数十亿个微控制器以及可能恶劣的工作环境,应用程序崩溃的机会并不是零。更有可能的是,系统中的一个缺陷可能导致某一扇区发生闪存写入或闪存擦除,从而破坏应用程序的完整性。
3、在启动时执行RAM检查
为了建立一个更加可靠和扎实的系统,确保系统硬件正常工作非常重要。毕竟硬件会发生故障。在启动时验证RAM的内部或外部没有问题,是确保硬件可以如预期般运作的一个好方法。有许多不同的方法可用于执行RAM检查,常用的方法是写入一个已知的模式,然后等上一小段时间再回读。
4、使用堆栈监视器
对许多的嵌入式开发者而言,堆栈似乎是一股相当神秘的力量。随着代码的执行,应用程序需要的变量、返回的地址和其它信息被不断存储在堆栈中。这种机制导致堆栈在其分配的内存中不断增长。然而,这种增长有时会超出编译时确定的容量极限,导致堆栈破坏相邻内存区域的数据。确保堆栈正常工作的一种方法是实现堆栈监视器,将它作为系统“保健”代码的一部分。堆栈监视器会在堆栈和“其它”内存区域之间创建一个缓冲区域,并填充已知的位模式。然后监视器会不断的监视图案是否有任何变化。如果该位模式发生了改变,那就意味着堆栈增长得太大了,即将要把系统推向黑暗地狱!此时监视器可以记录事件的发生、系统状态以及任何其它有用的数据,供日后用于问题的诊断。
嵌入式学习过程中找到技巧会使得整个学习都变的有趣,继续关注粤嵌官网,在下期,我们还将分享嵌入式开发学习路线集锦(下)哦!如果你有兴趣了解嵌入式培训,请点击在线咨询,总会有你意想不到的惊喜!