嵌入式系统是否要使用堆栈监视器
扫描二维码
随时随地手机看文章
本文中,小编将对嵌入式系统予以介绍,如果你想对它的详细情况有所认识,或者想要增进对它的了解程度,不妨请看以下内容哦。
一、嵌入式系统的特点
1.嵌入式系统通常是面向特定应用的
嵌入式微处理器与通用型处理器的大不同就是嵌入式微处理器大多工作在为特定用户群设计的系统中。嵌入式微处理器通常都具有低功耗、体积小、集成度高等特点,能够把通用处理器中许多由板卡完成的任务集成在芯片内部,从而有利于嵌入式系统设计趋于小型化,大大增强移动能力,跟网络的耦合越来越紧密。
2.嵌入式系统是各种技术、各个行业融合的产物
嵌入式可以应用在人们生活的各个领域,它是将先进的计算机技术、半导体技术和电子技术与各个行业的具体应用相结合后的产物。这一点就决定了它必然是一个技术密集、资金密集、高度分散、不断创新的知识集成系统。
3.嵌入式系统的软硬件设计高效、可裁减
嵌入式系统对成本、体积等方面有严格的要求,要求嵌入式工程师对硬件和软件进行高效地设计,量体裁衣、去除冗余,力争在同样的硅片面积上实现更高的性能,这样才能在具体应用中更具有竞争力。
4.嵌入式系统软件固化
为了提高执行速度和系统可靠性,嵌入式系统中的软件一般都固化在存储器芯片或单片机中,而不是存储于磁盘等载体中。
5.购买产品与技术开发相结合的实现方式
通用处理器系统多数是通过软件工程的方法,根据用户的需求进行软件开发的,用户拥有完整的技术资料,可以根据应用的需要进行相应的维护与升级。而嵌入式系统一般采用购买现成产品与自行独立开发相结合的方式来构建。
二、嵌入式系统是否要使用堆栈监视器
对许多的嵌入式开发者而言,堆栈似乎是一股相当神秘的力量。当奇怪的事情开始发生,工程师终于被难倒了,他们开始思考,也许堆栈中发生了什么事。结果是盲目地调整堆栈的大小和位置等等。但该错误往往是与堆栈无关的,但怎能如此确定?毕竟,有多少工程师真的实际执行过最坏情况下的堆栈大小分析? 堆栈大小是在编译时就静态分配好的,但堆栈是以动态的方式使用的。随着代码的执行,应用程序需要的变量、返回的地址和其它信息被不断存储在堆栈中。这种机制导致堆栈在其分配的内存中不断增长。然而,这种增长有时会超出编译时确定的容量极限,导致堆栈破坏相邻内存区域的数据。 绝对确保堆栈正常工作的一种方法是实现堆栈监视器,将它作为系统“保健”代码的一部分。堆栈监视器会在堆栈和“其它”内存区域之间创建一个缓冲区域,并填充已知的位模式。然后监视器会不断的监视图案是否有任何变化。如果该位模式发生了改变,那就意味着堆栈增长得太大了,即将要把系统推向黑暗地狱!此时监视器可以记录事件的发生、系统状态以及任何其它有用的数据,供日后用于问题的诊断。大多数实时操作系统或实现了内存保护单元的微控制器系统中都提供有堆栈监视器。可怕的是,这些功能默认都是关闭状态,或者经常被开发人员有意关闭。在网络上快速搜寻一下可以发现,很多人建议关闭实时操作系统中的堆栈监视器以节省56字节的闪存空间。但是,这可是得不偿失的做法!
以上便是小编此次想要和大家共同分享的有关嵌入式系统的内容,如果你对本文内容感到满意,不妨持续关注我们网站哟。最后,十分感谢大家的阅读,have a nice day!





