大家应该都经常听到“什么要提升认知”、“人只能赚到个人认知以内的money”等等。认知其实就是当你获取、处理和理解信息的心理过程,包括感知、记忆、思考和决策等,其实做技术一样的也有对技术认知。当面对一个设计、一个bug,会从哪些维度去思考,准备怎样去处理,一些工程师立马就会进去无尽的debug and step,而有些工程师却能不慌不忙的用一些“偏门的”调试技巧和方法就能分析个大概,然后稍加调试就能直击问题的要害,又或者构建的系统中原本就有这种方法,他知道而你却不知道。那在嵌入式软件开发过程中一般会面临哪些技术方面的认知瓶颈呢?系统功能越来越多,软件越来越大,如何有效管理和组织复杂的软件架构成为开发中的一大挑战,如今很多工程师常常只是负责自己那一小部分功能,核心算法功能实现估计都看不到,难以掌控系统的整体结构。工业嵌入式系统通常需要满足严格的实时性要求,理解和深入不同实时操作系统的不同模式下的调度策略,以及给自己的任务进行最优的优先级管理是一个难点。嵌入式设备通常只有有限的计算能力和内存,需要在效率和资源使用之间找到平衡,压榨硬件,节省成本,这对设计和优化提出了较高的要求。4、硬件平台抽象化(嵌入式的跨平台)这里并不谈linux与windows所谓的应用程序的跨平台,而是不同硬件平台和架构之间的抽象与统一,否则会导致代码重用性低和维护成本高。随着物联网的发展,嵌入式系统面临着越来越多的安全威胁,如何设计安全可靠的系统仍然是一个重大挑战,还有固件会不会被恶意提取,反编译等问题都是一个成功产品需要考量的。24h、72h稳定运行工况,掉电不损坏系统,各异常能够正常捕捉与上报,都成为优秀系统设计中的一大考量点。
嵌入式设备如果在生产后难以进行远程更新,那肯定是一大设计败笔,如何设计便于后期维护和更新的系统架构是一个挑战。调试工具的熟练度和丰富度,不同的问题和现象采用不一样的调试手段和技巧。尽管测试对确保软件质量至关重要,但许多嵌入式系统尚未完全实现测试自动化,增加了人工测试的负担。 好了,今天就跟大家分享这么多了,如果你觉得有所收获,一定记得点个赞~
‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧ END ‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧
关注我的微信公众号,回复“星球”加入知识星球,有问必答。
点击“阅读原文”查看知识星球详情,欢迎点分享、收藏、点赞、在看。