嵌入式软件架构实证:层次混淆与改进挑战

5 下载量 100 浏览量 更新于2024-08-31 收藏 187KB PDF 举报
本文主要讨论的是嵌入式软件架构设计中的实例分析,通过两个版本的设计对比,揭示在实际项目中的问题与改进点。首先,作者提到新入职的嵌入式软件开发工程师负责了一个新产品的研发,包括对加速度计、NB-IOT、舵机和外置Flash等功能的测试。测试完成后,他被要求进行产品概要设计。 版本一的架构设计采用了顺序列出模块的方式,如硬件驱动层主要包括MCU初始化、I2C数据存取、SPI数据读取等操作,而应用层则包含了Mcu运行模式切换、震动检测、数据解析、开关锁、数据发送和历史数据保存等功能。这种设计缺乏对整个系统结构的全局视角,比如将MCU初始化和模块启动视为硬件驱动,实际上这些操作更多涉及系统流程而非单纯的驱动层面。 版本二的架构设计则指出了一些问题,首先,强调了架构设计需要从整体上考虑,而不是孤立地看待每个模块或功能;其次,指出MCU初始化这类流程操作应从驱动层剥离,因为它们是系统启动过程的一部分;此外,数据总线读写、系统参数初始化和数据解析等不应仅作为硬件驱动的一部分,而应该归类于应用层的通信功能。 文章的作者对于新员工的技能水平表达了疑惑,认为其来自大企业的背景并不能保证其设计能力,特别是对于嵌入式软件架构设计的基本理解。他质疑在昆明这样的市场,大企业出身的员工是否真的具备这样的专业素养,并指出工资与能力之间的匹配度问题。 总结来说,这篇文章通过实例探讨了嵌入式软件架构设计中的关键要素,强调了从系统整体角度出发的重要性,以及不同层次模块间的明确划分。同时,它也引发了关于软件工程人员素质和期望值的讨论,提醒我们在招聘和培训时不应忽视基础理论和实践经验的结合。