今晚吃什么| 后脖子出汗多是什么原因| 萎缩性鼻炎用什么药| 中耳炎去药店买什么药| 甘油三酯代表什么| 五月二十日是什么星座| 尿ph值高是什么意思| 高烧吃什么药退烧快| 心悸是什么意思啊| 口臭睡觉流口水什么原因| 十一月二十二是什么星座| 烫伤抹什么药膏| 白蚂蚁长什么样子图片| 有才是什么意思| ysl是什么牌子| 水土不服吃什么药管用| 检查尿常规挂什么科| 抽象是什么意思| 经期喝咖啡有什么影响| 什么水果含糖量最低| 鹅口疮是什么样的图片| 内裤上有黄色分泌物是什么原因| 梦见自己在飞是什么征兆| 子宫肌瘤是什么病| 公安局属于什么机关| 不想吃油腻的东西是什么原因| 江小白加雪碧什么意思| 镜检白细胞高是什么原因| 肝火旺吃什么中药| 皮肤黑穿什么颜色| 什么属相不能养龙鱼| 迎春花像什么| 痛经吃什么食物| nos是什么单位| 铠是什么意思| 犀利什么意思| 六味地黄丸什么时候吃最好| i是什么| 脸上长斑的原因是什么引起的| 三国之前是什么朝代| 去鱼腥味最好的方法是什么| 卵圆孔未闭是什么意思| 2003年五行属什么| 胃糜烂和胃溃疡有什么区别| 头晕做什么检查最准确| 什么是疣图片| 手上长斑点是什么原因| 甲骨文是写在什么上面的| 什么食物对肺有好处| 绿茶用什么茶具泡好| 真露酒属于什么酒| kms是什么意思| 夏天吃什么水果最好| 低密度脂蛋白偏高是什么意思| 掐人中有什么作用| fsh是什么| 岛屿是什么| 莲子不能和什么一起吃| 克罗心是什么意思| 看见双彩虹有什么征兆| 7.8号是什么日子| 日落胭脂红的下一句是什么| 女生为什么会流白带| 恶心想吐吃什么药| 蕾字五行属什么| 前列腺炎吃什么中成药| 梦见对象出轨什么征兆| 脚掌痒是什么原因| 小猫的耳朵像什么| 天青色等烟雨是什么意思| 医院为什么不推荐腹膜透析| 湿寒吃什么中成药| 战战兢兢的意思是什么| 慢阻肺是什么原因引起的| 晚上喝红酒配什么小吃| 什么是肝掌| 廉价什么意思| 什么是脂蛋白a| 膝盖疼痛挂什么科| 囊性回声是什么意思| 例假发黑是什么原因| 1889年属什么生肖| 白羊和什么星座最配| 五行缺金有什么影响| 脚底长水泡是什么原因| 夜尿频多是什么原因| 赛能是什么药| 斗拱是什么意思| 亲嘴为什么要伸舌头| 拉稀拉水吃什么药管用| 直肠给药对小孩身体有什么影响| 动脉硬化吃什么| 法则是什么意思| 吃什么补黄体酮最快| b型血为什么叫贵族血| 科技布是什么材质| 颈椎病挂号挂什么科| 尿蛋白可疑阳性是什么意思| 放射治疗是什么意思| 总是掉头发是什么原因| 什么血型的人招蚊子| 9月什么星座| 身份证号码最后一位代表什么| 驳什么意思| 牛磺酸是什么| 什么时候普及高中义务教育| 求购是什么意思| 速度是70迈心情是自由自在什么歌| 疖肿是什么样子的图片| 甲木是什么意思| 零反式脂肪是什么意思| 做梦梦见死去的亲人是什么意思| 念旧的人是什么样的人| 杨桃什么味道| 泌尿感染吃什么药最好| 心脏不好挂什么科室| 外阴炎什么症状| 什么是养生| 头皮发红是什么原因| 肚脐眼中间疼是什么原因| 胸外扩是什么样子| 眼睛发黄是什么原因| 龙生九子是什么生肖| 手发抖是什么原因引起的年轻人| 吃什么排铅最快| 过誉是什么意思| 田七煲汤配什么材料| 移植后屁多是什么原因| 状元是什么意思| 女性分泌物增多发黄是什么原因| vca是什么意思| 同工同酬是什么意思| 做梦来月经了什么预兆| 发瘟是什么意思| 热闹的什么| 体癣用什么药膏好得快| 奶嚼口是什么| 什么星座最花心| 瑗字五行属什么| 什么红酒好喝| 康桑密达是什么意思| 男人结扎有什么好处| 9月12号是什么星座| 看头发应该挂什么科| 做梦梦见前男友是什么意思| 女真族现在是什么族| 甲龙吃什么| 树脂是什么材质| 拉大便肛门口疼痛什么原因| 血糖高什么东西不能吃| 十一是什么意思| 长期熬夜吃什么可以补回来| 给花施肥用什么肥料| 什么是小奶狗| rm是什么币| 马齿苋什么人不能吃| 破执是什么意思| 肚子痛拉肚子吃什么药| 太阳为什么会发光发热| 雪梨是什么梨| 产后大出血一般发生在什么时候| 今年流行什么发型女| 感觉有痰咳不出来是什么原因| 菠菜补什么| 阴虱是什么| 孔夫子搬家的歇后语是什么| 蝎子的天敌是什么| 银梳子梳头有什么好处| 附睾炎吃什么药最有效| 嘴甜是什么原因| 什么动物睡觉不闭眼| 一什么骆驼| 右肺下叶钙化灶是什么意思| 狗狗流鼻涕吃什么药| 引产挂什么科| 为什么医生很少开阿斯美| 做梦梦见鬼是什么意思| 抽烟手抖是什么原因| 可乐鸡翅需要什么材料| 西洋参有什么用| 朝鲜人一日三餐吃什么| 流清鼻涕打喷嚏吃什么药| 免疫力差吃什么可以增强抵抗力| 什么的闪电| 福寿螺有什么寄生虫| 拔完牙吃什么药| 不讲武德什么意思| 罗非鱼长什么样| 什么原因造成耳鸣| 什么叫认知能力| 痔疮用什么药最好| 直落是什么意思| 阴道炎用什么药效果好| 尿胆原阳性是什么意思| 粘纤是什么面料| 俄罗斯和白俄罗斯有什么区别| 一个王一个月念什么| 什么的爸爸| lop胎位是什么意思| 保鲜袋什么材质好| 沙和尚是什么动物变的| 红日是什么意思| 反颌是什么意思| 堪称什么意思| 93是什么意思| 2月1日是什么星座| 正在值机是什么意思| 隔的右边念什么| 结扎挂什么科| 瓢虫吃什么| 扁桃体肿大是什么原因引起的| 鸟加衣念什么| 宁夏古代叫什么| nbr是什么材质| 左侧后背疼是什么原因男性| 异禀是什么意思| 一个巾一个童读什么| 伽马射线是什么| 宿便是什么意思| 胃窦隆起是什么意思| 来例假肚子疼吃什么药| kappa是什么牌子| 什么人容易得小脑萎缩| 健身hit什么意思| 羊肚是羊的什么部位| 横空出世什么意思| 蛇属于什么类动物| 站姐是什么职业| 金卡有什么好处和坏处| coat是什么意思中文| 一日三餐是什么生肖| 子宫薄是什么原因造成的| 发烧后头疼是什么原因| 郑中基为什么叫太子基| 城市的夜晚霓虹灯璀璨是什么歌| 窦骁父母是干什么的| 十二月九号是什么星座| 嗜睡是什么病的前兆| 护理专业学什么| 什么蔬菜降血压效果最好| 前列腺肥大有什么症状| 台风什么时候到上海| 3.5是什么星座| 腿胖是什么原因引起的| 查生育能力挂什么科| 奴役是什么意思| 拉稀吃什么食物好| 脑血栓有什么症状| 手足口病吃什么食物| 什么是亚健康| 临盆是什么意思| 杜撰是什么意思| 6周岁打什么疫苗| 脸颊两边长痘痘是什么原因引起的| 茱萸是什么| 通透是什么意思| 糖尿病人晚餐吃什么最好| 儿童用什么牙膏最好可以保护牙齿| or是什么意思| 眼睛发黑是什么原因引起的| 梦见好多猪肉是什么意思| 10月14日什么星座| 做什么最赚钱| sicu是什么科室| 百度
工业控制 | 能源技术 | 汽车电子 | 通信网络 | 安防监控 | 智能电网 | 移动手持 | 无线技术 | 家用电器 | 数字广播 | 消费电子 | 应用软件 | 其他方案

电路设计->综合电路图->嵌入式系统电路图->开发高可靠性嵌入式系统 这7大技巧助你一臂之力

云南网友@书记省长大学生遇破茧难题 促就业创业需“放大招”

发布人:fanxiaoxi 时间:2025-08-07 收藏
百度 北京时间3月7日晚,2018赛季亚冠联赛小组赛第三轮,上海上港坐镇主场2-2战平蔚山现代。

成为一个正式的工程师。它是一个艰辛的过程,需要开发人员维护和管理系统的每个比特和字节。从规范完善的开发周期到严格执行和系统检查,开发高可靠性嵌入式系统的技术有许多种。今天给大家介绍7个易操作且可以长久使用的技巧,它们对于确保系统更加可靠地运行并捕获异常行为大有帮助。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

技巧5 - 使用MPU

在过去,是很难在一个小而廉价的微控制器中找到内存保护单元(MPU)的,但这种情况已经开始改变。现在从高端到低端的微控制器都已经有MPU,而这些 MPU为嵌入式软件开发人员提供了一个可以大幅提高其固件(firmware)鲁棒性(robustness)的机会。

MPU 已逐渐与操作系统耦合,以便建立内存空间,其中的处理都分开,或任务可执行其代码,而不用担心被stomped on。倘若真有事情发生,不受控制的处理会被取消,也会执行其他的保护措施。请留意带有这种组件的微控制器,如果有,请多加利用它的这种特性。

技巧6 - 建立一个强大的看门狗系统

你经常会发现的一种总是受喜爱的看门狗(watchdog)实现是,在看门狗被启用之处(这是一个很好的开始),但也是可以用周期性定时器将该看门狗清零之处;定时器的启用是完全与程序中出现的任何情况隔离的。使用看门狗的目的是协助确保如果出现错误,看门狗不会被清零,即当工作暂停,系统会被迫去执行硬件重设定(hardware reset),以便恢复。使用与系统活动独立的定时器可以让看门狗保持清零,即使系统已失效。

对应用任务如何整合到看门狗系统中,嵌入式开发人员需要仔细考虑和设计。例如,有种技术可能可以让每个在一定时期内运行的任务标示它们可以成功地完成其任务。在此事件中,看门狗不被清零,强制被复位。还有一些比较先进的技术,像是使用外部看门狗处理器,它可用来监视主处理器如何表现,反之亦然。对一个可靠的系统而言,建立一个强大的看门狗系统是很重要的。

技巧7 - 避免易失存储器分配

不习惯在资源有限环境下工作的工程师,可能会试图使用其编程语言的特性,这种语言让他们可以使用易失存储器分配。毕竟,这是一种常在计算器系统中使用的技术,在计算器系统中,只有在有必要时,内存才会被分配。例如,以C开发时,工程师可能倾向于使用malloc来分配在堆(heap)上的空间。有一个操作会执行,一旦完成,可以使用free将被分配的内存返回,以便堆的使用。

在资源受限的系统,这可能是一场灾难!使用易失存储器分配的其中一个问题是,错误或不当的技术可能会导致内存泄漏或内存碎片。如果出现这些问题时,大多数的嵌入式系统并没有 资源或知识来监视堆或妥善地处理它。而当它们发生时,如果应用程序提出对空间的要求,但却没有所请求的空间可以使用,会发生什么事呢?

使用易失存储器分配所产生的问题是很复杂的,要妥善处理这些问题,可以说是一个噩梦!一种替代的方法是,直接以静态的方式,简化内存的分配。例如,只要在 程序中简单地建立一个大小为256字节长的缓冲区,而不是经由malloc请求这样大小的内存缓冲区。此一分配的内存可在整个应用程序的生命周期期 间保持,且不会有堆或内存碎片问题方面的顾虑。

结论

以上嵌入式开发的教程可以让开发技术的人员获取更好嵌入式系统的办法。所有这些技术都是让设计者可以开发出可靠性更高嵌入式系统的秘诀。



评论

技术专区

慢性胰腺炎吃什么药效果最好 牙龈长期出血是什么原因 五花八门是什么生肖 脾是干什么用的 梦见橘子是什么意思
胡萝卜炒什么 女性尿检能查出什么病 卫生院院长是什么级别 尼泊尔是什么人种 禁欲什么意思
放化疗是什么意思 甲午五行属什么 血尿是什么原因引起的 开塞露是干什么用的 赫是什么意思
一什么新闻 滑膜炎用什么膏药好 巨蟹跟什么星座最配 儿童办护照需要什么材料 7月16号是什么星座
梅毒会通过什么传染hcv8jop8ns9r.cn 终止是什么意思hcv8jop6ns2r.cn 肚子痛什么原因shenchushe.com 天空蓝是什么颜色hcv9jop1ns6r.cn 话梅泡水喝有什么好处和坏处hcv9jop1ns9r.cn
霉菌是什么原因感染的hcv8jop5ns2r.cn 长期手淫会有什么后果hcv8jop4ns7r.cn 血沉高说明什么hcv8jop7ns6r.cn 扑街是什么意思hcv9jop1ns2r.cn 锄禾是什么意思bjhyzcsm.com
腺肌症吃什么食物好xinjiangjialails.com 肝ca是什么意思cj623037.com 假体是什么0297y7.com 深圳到香港需要办理什么手续tiangongnft.com 性激素是查什么hcv9jop4ns2r.cn
女性缓解疲劳吃什么好hcv8jop7ns3r.cn 预防脑血栓吃什么药好hcv9jop8ns1r.cn 青春痘是什么原因引起的hcv9jop1ns3r.cn 纳差是什么意思hcv9jop6ns5r.cn 面部肌肉跳动是什么原因xinjiangjialails.com
百度