软件架构设计_SAST Weekly | 浅谈嵌入式系统的软件架构设计

本文介绍了嵌入式系统的基本概念,以STM32为例探讨了从硬件驱动层到软件业务逻辑的层次划分,强调了软件架构的重要性。通过分析不同的开发途径和设计模式,如Singleton和MVC,提供了嵌入式开发的实践经验和架构设计指导。
摘要由CSDN通过智能技术生成

SAST weekly是由电子工程系学生科协推出的科技系列推送,内容涵盖信息领域技术科普、研究前沿热点介绍、科技新闻跟进探索等多个方面,帮助同学们增长姿势,开拓眼界,每周更新,欢迎关注,欢迎愿意分享知识的同学投稿eesast@mail.tsinghua.edu.cn

c7c11c721e5f384ccba0f67d015b2fab.gif 983709bb439bce760971d54bc6a8d30e.gif c7c11c721e5f384ccba0f67d015b2fab.gif a348fd21f82dadea22ebc088bac104be.gif

什么是 嵌入式 

嵌入式系统是一种嵌入机械或电气系统内部、具有专一功能和实时计算性能的系统。不同于常用的通用计算机系统,它通常只具有特定的功能、处理特定的任务,但相应地,体积和能耗也较低。

无论是与我们生活息息相关的医疗电子、智能家居、物流管理,还是听起来高大上的航空卫星、智能驾驶,其中的硬件核心大多都可以纳入嵌入式系统的范畴。

说简单些呢,嵌入式开发就是通过对微处理器的编程和电路的搭建,实现诸如运动、传感等等的功能。举个栗子,大家在芯动计划、硬设、电设玩过的Arduino、STM32、树莓派、8051这些,都属于嵌入式系统的开发。

什么?你都没听说过?那你以后怎么给人修电脑哇?

嵌入式系统的核心——嵌入式处理器包括了四种类型:微控制器(MCU)、微处理器(MPU)、片上系统(SoC)以及DSP。在本文中主要谈论微控制器STM32的相关嵌入式架构设计。(喂,是因为电设要用啊 (#`O′)

a348fd21f82dadea22ebc088bac104be.gif

为什么要聊 软件架构 

废话,还不是因为好让大佬给你 debug!

一个好的软件架构可以让你在写代码的时候清楚地规划每个模块的功能和接口,以及各个模块之间的依赖关系。这样可以使得你的代码具有更优的可维护性、可读性、可拓展性——说人话:好debug好让大佬帮你debug老板改需求了好改代码而不用删库跑路。

然而,软件架构更多是一些经验性的内容,有一些好用的设计模式和设计准则(在这里推荐一下Effective C++和More Effective C++),但是课堂上不会讲,平常不做大项目不太会考虑,做了大项目也懒得考虑,就被忽略掉了。

是的啊!你看看什么Student类继承Time类,八杆子打不着的东西偏要往一块凑;几个类互相依赖,搞得乱糟糟一团;main函数体写个几百几千行;能复用的代码偏要复制粘贴十几份。这都是神仙操作吧!(请务必对号入座,斜眼笑

嗯对,所以想简单分享一些软件架构的经验。

c7c11c721e5f384ccba0f67d015b2fab.gif

那么本篇推送的前半部分(第一至四章),主要准备了嵌入式开发过程中,从底层硬件到上层应用的层次划分。后半部分(五:设计模式总纲、六:设计模式实践)是软件业务逻辑的架构设计,无论软件开发还是嵌入式开发都适用。

正文比较偏经验向,代码干货较少,前四章没有嵌入式基础可能看不太懂,小编马山就会被扣工资(然而其实连工资都没有);后几章只要学过编程只要你是电子系的人就能看懂。

鉴于前几章会把所有人都吓跑,所以后面的内容中我就可以肆无忌惮的暴露本性了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值