学单片机到底是入门还是入坑,路没选对将改变你的一生

接着前几期关于嵌入式软件框架

软件和固件其实都是软件,下面我们分别分析。

学单片机到底是入门还是入坑,路没选对将改变你的一生_第1张图片

软件

软件的主要工作是提供各种用户界面。包含本地图形化界面,SOAP访问界面,TL1访问界面。

整个软件局部分为五大局部:

1.通讯层

2.协议层

3.图形界面

4.SOAP效劳器

5.TL1效劳器

文章相对比较长,字数比较多,大家可以先打开头像关注我,之后慢慢看,///插播一条:我自己在今年年初录制了一套还比较系统的入门单片机教程,想要的同学找我拿就行了免費的,私信我就可以哦~点我头像左下角黑色字体加我也能领取哦。最近比较闲,带做毕设,带学生参加省级或以上比赛///

通讯层要屏蔽用户对详细通信介质和协议的了解,没论是USB还是socket,对上层都不产生影响。通讯层负责提供可靠的通讯效劳和适当的错误处理。通过配置文件,用户能够变更所运用的通讯层。

协议层的目标是将数据进行编码和解码。编码的产生物是能够在通讯层发送的流,依照嵌入式软件的特点,我们选择二进制作为流的格式。解码的产生物是多种的,既有供界面运用的C Struct,也能够是XML数据,还能够是Lua的数据构造(tablegt)。假如须要,还能够产生JSON,TL1,Python数据,TCL数据等等。这一层在框架中是通过机器自动生成的,我们后面会讲到。

学单片机到底是入门还是入坑,路没选对将改变你的一生_第2张图片

内存数据库,SOAP Server和TL1 Server都是协议层的用户。图形界面通过读写内存数据库和底层通讯。

图形界面是框架设计的重点之一,理由是这里工作量最大,反复而没聊的工作最多。

让我们分析一下在图形界面开发工作中最主要的事情是什么。

1.收集用户输写的数据和命令

2.将数据和命令发给底层

3.接管底层反应

4.将数据显示在界面上

同时有一些库拿来进一步简化开发:

这是一个简化的例子,但是很好的证明了框架的特点:

1.客户代码必需依照规定的接口达到

2.框架在适当的时候调用客户达到的接口

3.每个接口都被设计为只完成特定的单一功能

4.将各个步骤有机的串起来是框架的事,二次开发者不知道,也没须知道。

5.通常都要有附带的库。

固件

固件的主要工作是承受来自软件的命令,驱动硬件工作;获取硬件的状态,进行一定的计算后返回给软件。早期的固件是很薄的一层,由于绝大局部工作是由硬件完成的,固件只起到一个中转通讯的作用。随着时代开展,此时的固件初始承担越来越多原来由硬件完成的工作。

整个固件局部分为五大局部:

1.硬件抽象层,提供对硬件的访问接口

2.互相独立的任务群

3.任务/音讯派发器

4.协议层

5.通讯层

针对不同的设备,工作量集中在硬件抽象层和任务群上。硬件抽象层是以库的形式提供的,由对硬件最熟悉,经历最丰盛的工程师来达到。任务群则由一系列的任务组成,他们分别代表不同的业务应用。假如测量误码率。这局部由相对经历较少的工程师来达到,他们的主要工作是达到规定的接口,依照规范化文档定义的方式达到算法。

任务定义了如下接口,由详细开发者来达到:

b706ea30fdc9f50e362549ad14791a4a.png

框架的代码流程如下:(伪代码)

学单片机到底是入门还是入坑,路没选对将改变你的一生_第3张图片

这样,详细任务的达到者所关注的最重要的事情就是达到这几个接口。其他如硬件的初始化,音讯的收发,编码解码,结果的上报等等事情都由框架进行了处理。避免了每个工程师都必需处理从上到下的所有方面。并且这样的任务代码还有很高的重用性,假如是在以太网上还是在Cable Modem上达到PING的算法都是一样的。

现实中效果

在现实中项目中,框架大大降低了开发难度。对软件局部尤其明显,由实习生即可完成高质量的界面开发,开发周期缩短50%以上。产品质量大大提升。对固件局部的贡献在于降低了对精通底层硬件的工程师的须要,一般的工程师熟知测量算法即可。同时,框架的存在保证了性能,稳定和可测试性等要素。

对单片机感兴趣的朋友可以找我,我录制了一些关于单片机的入门教程,有需要的童鞋找我拿就像,免费的,私信我“林老师”就可以拿~点击打开我的头像就能领取。

你可能感兴趣的:(单片机,编程,嵌入式,单片机,51单片机,嵌入式硬件)