嵌入式学习笔记——概述

news/2024/12/4 12:34:28/

嵌入式系统概述

  • 前言
  • “嵌入式系统”概念
    • 1.是个啥?
    • 2.可以干啥?
    • 3.有哪些入坑方向?
    • 4.入坑后可以有多少薪资?
  • 单片机
    • 1.什么是单片机?
    • 2.架构简介
    • 3.基于ARM架构的单片机结构简介
  • 总结

前言

断更很长时间了,写博客确实是一件考验能力的事情,也能让自己发现自身的不足,之所以这么长时间没有更新就是因为感觉自己能力还不太够,沉淀的还不够多。此系列是笔者对于二刷M4的学习笔记,之前STM32都是自己在本科期间刷视频,做比赛来学习的,学校并没有开设课程,到现在的感觉就是能用,但是差点意思,为了补齐这点意思,笔者觉得回头再来一遍。文中如有不足,希望大家狠狠的提出来。

“嵌入式系统”概念

在入坑嵌入式行业之前,咱们首先得搞清楚嵌入式系统是个啥,可以干啥,有哪些入坑方向,入坑后可以有多少薪资。

1.是个啥?

关于是个啥这个问题,似乎没有严格规范的表述,但大致意思都查不到,以下是来自“C知道的”答案。
在这里插入图片描述
同样,百度百科给出的定义也是大差不差的,都给出了定义:嵌入式是一种特殊的计算机系统,特殊之处在于:
1.由于要嵌入其他设备,其功耗、体积等与常规的计算机系统有差异,它的功耗小、体积小。
2.它的功能相对专一,都是为了实现某一个系统的控制、监控、执行任务;
3.它会根据任务需求的不同定制化的设计对应的硬件、软件。

2.可以干啥?

关于可以用它做什么东西,可以借用人们描述Matble的话来说,它也是除了不会生孩子,其他的事儿他都可以完成。我们最常使用的手机、家用电器、车载电子都是一个嵌入式系统,或者说其是由多个嵌入式系统集成起来的一个系统整体。

3.有哪些入坑方向?

正如关于嵌入式系统的概念描述,入坑嵌入式的方向,有硬件和软件两大类,其中软件方向有
单片机– Linux–DSP–FPGA–Android(安卓)
硬件主要就是PCB的绘制以及原理图的设计

4.入坑后可以有多少薪资?

关于薪资,笔者没有仔细的去调查,仅仅是自己的一点看法,单片机的话不学Linux或者上位机的话15k封顶,学了Linux或者C++会更进一步。
单片机工程师:
在这里插入图片描述
在这里插入图片描述

嵌入式工程师:
在这里插入图片描述

在这里插入图片描述
硬件方面,只是layout的话,薪资一般也是15k左右封顶,经验积累多,有原理图设计能力的也能再上一个台阶。
在这里插入图片描述

单片机

前面的招聘职位要求已经明确提出了熟悉使用一种单片机的需求,嵌入式的学习一般都是从一款单片机开始的,单片机是什么呢?

1.什么是单片机?

以下是来自百度百科的解释:
单片机:(Single-Chip Microcomputer)是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM只读存储器ROM多种I/O口中断系统定时器/计数器等功能(可能还包括驱动电路脉宽调制电路模拟多路转换器A/D转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域广泛应用。
单片机的前身是单板计算机,随着芯片工艺的提高和技术水平的精进,逐渐发展成为了集成于一体小而完善的微型计算机系统。
在这里插入图片描述
概括的讲:一块单片机就成了一台计算机。它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。同时,学习使用单片机是了解计算机原理与结构的最佳选择。
有关单片机更多的介绍请参考百度百科有关单片机的介绍。
前面提到过单片机已经广泛应用于市面上,生活中处处都有单片机的应用,而这些单片机大是多采用ARM架构进行设计制作的,在工控、消费类电子大多使用的是ARM系芯片例如STM32、MM32、CW32、NXP K60等等;而在物联网这些邻域,一批RSIC-V架构的单片机占据了一定的市场,例如乐鑫的ESP32、海思的Hi3861等,而电脑这些复杂的CPU又是采用的X86的架构,例如Intel 的i5 13500H、AMD的R7 7735H 等CPU都是X86架构。
那么,什么是架构呢,ARM架构、X86架构以及RSIC-V架构三者之间又有什么样的区别联系呢。

2.架构简介

关于架构笔者自己的理解就跟房子的毛坯房一样,而不同的架构就是不同开发商的毛坯房,各有各的优势。
首先,对比一下X86架构与ARM架构,为什么先对比这两者呢,是因为他们是老对头,而RSIC-V是后起之秀。
说起来是X86架构和ARM架构的对比,其实落到底层是CSICRISC两者之间的恩怨情仇。
CSIC:
CSIC在这可不是下饺子那位。
误解:
http://www.csic.com.cn/
正解:CISC: Complex Instruction Set Computer复杂指令集计算机,它就是在发展过程中不断引进指令集。
举个不怎么恰当的例子,假设“printf(“%d\n”,1+1)”是一条指令,我们知道这条指令的最终输出是2,复杂指令集就会收录这条指令,以后再识别到这条指令就直接输出2,省去了中间的逻辑计算过程,这种做法会极大地提高执行效率对于处理特定的任务有优势,但是与此同时,随着时间的延长,指令会越来越多,会带来指令集越来越庞大,也越来越难维护的问题,而且芯片内部的电路也会因此而变得更加复杂,单位面积所需晶体管也就更多,功耗也就成了问题。
代表:
Intel i5 13500H, AMD R7 7735等等
RSIC:
RSIC: Reduced Instruction Set Computer 精简指令集计算机,而精简指令集计算机是在整过程中不断去优化指令,力求用逻辑电路实现功能,同样是上面的例子,对于“printf(“%d\n”,1+1)”,其采取的措施就是运用逻辑电路进行计算出结果并输出2。这种处理方式能够节省专开指令的逻辑电路,力求用最少得逻辑电路实现功能,单位面积的晶体管数量少,功耗低,但是会造成运算过程较长的问题。
此类ARM架构的芯片代表作就太多了例如消费终端类处理器麒麟9000,骁龙8gen2等等
在这里插入图片描述
在这里插入图片描述
图片来自于B站UP主 极客湾

还有我们常见的STM32、GD32、CW32
在这里插入图片描述
因此二者各自有各自的优点也有各自的缺点。
然后再来说一说RSIC-V的可以发现RSIC-V的命名和上面的精简指令集计算机相似,只是后面多了一个-V,V就是罗马字母代表的是第五代精简指令集,其与RSIC的差别在于,RSIC-V比较新,而且其实开源的,加上物联网的走热RSIC-V的未来市场或许更值得期待,加上ARM的收费确实逐年离谱,能白嫖谁愿意花钱搞定呢。
此类代表:K210,
ESP32:在这里插入图片描述
图片截取自淘宝店铺——优信电子;
海思Hi3861:
在这里插入图片描述
图片截取自淘宝店铺——优信电子;

关于三者之间的关系和详细简介别的大佬已经详细介绍过了,这两给大家贴几个链接,感兴趣的可以去拜读一下。
1.CISC (复杂指令集)与 RISC(精简指令集)的区别
2.ARM与RISC-V架构的区别
3.ARM 和 x86 有什么区别
4.RSIC-V–第一印象
5.RISC-V架构对比x86、ARM
对比之后还是得回到主角身上,我们学习嵌入式,以及目前市场上最常用的还是ARM架构的芯片,经过前面的介绍,已经可以知道,ARM使用的是精简指令集计算机,发展了这么多年,ARM的架构也早已经分支出了很多类别。
下图是ARM官网给出的关于ARM架构的简介,想要阅读的可以去这个链接——传送门。
在这里插入图片描述
文档告诉我们ARM现在主流的有三类架构,分别是A,R,M,关于这三类的用途介绍如下图所示:
在这里插入图片描述
A系列:A系列主要用作中端处理器,也是就我们现在手机厂商的芯片,我们可以借用上面的一张图,可以看出麒麟9000的CPU部分就是使用的ARM的Cortex-A系架构,当然骁龙亦是如此。
在这里插入图片描述
然后是平时少见的Cortex-R系列,其主要关注实时效应,广泛应用于电动汽车和军工制导。

最后就是我们常见的Cortex-M系列的,此系列的代表作就是STM32、GD32、CW32、K60等等,除此之外我们的手机上还有很多也是用了Cortex-M的架构,如下图所示,除了CPU,还有屏幕驱动、摄像头驱动、电源管理、wifi、蓝牙、4G、5G等等呢个芯片都广泛使用了Cortex-M的架构,而4G、5G以及wifi由于实时性的需求还是用了ARM的Cortex-R架构。
在这里插入图片描述

3.基于ARM架构的单片机结构简介

上面提到了Cortex-M,他到底是什么,与单片机又有什么关系呢?
前面提到过,单片机(MCU)是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM只读存储器ROM多种I/O口中断系统定时器/计数器等功能(可能还包括驱动电路脉宽调制电路模拟多路转换器A/D转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统。
对照这个定义,Cortex-M就相当于单片内部的中央处理器(CPU)以及其他调试和系统管理的整体,但是不包含片内外设,他仅仅是一个核心部件。下图用Cortex-M3举了一个例子:
在这里插入图片描述
在这里插入图片描述
芯片商再获得到ARM的授权后,就可以拿回Cortex-M的CPU作为控制核心,在其基础上进行外设的添加,增加内存、各类片内外设,例如SARM、增加I2C、SPI、UART、PWM、ADC、DAC、PWM等等片内外设,形成自家的单片机型号,而后仿真,打样、验证,最后制作成我们使用的单片机成品。
在这里插入图片描述经过上述流程,一个ARM架构的单片机才会出现在我们这些开发者的手中。
搞清楚ARM架构与单片机的关系后,我们还需要了解一下Cortex-M的分类
ARM Cortex-M 处理器家族中现有8款处理器成员,他们的用途和分类如下图所示:
在这里插入图片描述
图片来自下面这个链接,内部详细介绍了ARM Cortex-M处理器,感兴趣的小伙伴可以去了解一下。
一文看懂ARM Cortex-M处理器
我们平时使用较多的是Cortex-M3和Cortex-M4这两个,在权威指南中,对他们的描述如下:
在这里插入图片描述
在这里插入图片描述后面接触较多的就是Cortex-M3和Cortex-M4这两个内核,使用最多的单片机也就是各个厂商根据这个做出来的,所以ARM系芯片有着相似的使用规律,会有做一题而通一类的效果。

总结

本文主要是简述了嵌入式系统的宏观描述,以及一些关于单片机的知识,文中如有不足,欢迎大家批评指正。下一篇预告是Cortex-M的芯片介绍以及其开发环境的搭建。


http://www.ppmy.cn/news/29269.html

相关文章

SWM181按键控制双通道PWM固定占空比输出

SWM181按键控制双通道PWM固定占空比输出📌SDK固件包:https://www.synwit.cn/kuhanshu_amp_licheng/ 🌼开发板如下图: ✨注意新手谨慎选择作为入门单片机学习。目前只有一个简易的数据手册和SDK包,又没有参考手册&am…

Qt音视频开发19-vlc内核各种事件通知

一、前言 对于使用第三方的sdk库做开发,除了基本的操作函数接口外,还希望通过事件机制拿到消息通知,比如当前播放进度、音量值变化、静音变化、文件长度、播放结束等,有了这些才是完整的播放功能,在vlc中要拿到各种事…

JS混淆加密:Eval的未公开用法

JavaScript奇技淫巧:Eval的未公开用法 作者:http://JShaman.com w2sft,转载请保留此信息很多人都知道,Eval是用来执行JS代码的,可以执行运算、可以输出结果。 但它还有一种未公开的用途,想必很少有人用过。…

1.基于Label studio的训练数据标注指南:信息抽取(实体关系抽取)、文本分类等

文本抽取任务Label Studio使用指南 1.基于Label studio的训练数据标注指南:信息抽取(实体关系抽取)、文本分类等 2.基于Label studio的训练数据标注指南:(智能文档)文档抽取任务、PDF、表格、图片抽取标注等…

Nginx 入门

Nginx 入门源码方式安装安装配置开启 NGINXdocker方式安装寻找Nginx镜像下载Nginx镜像创建Nginx配置文件创建Nginx容器并运行首先 Nginx 是一个网络服务器,使用 非阻塞、事件驱动 架构(有点像 Node.js)实现高性能。也能用来做负载均衡、HTTP …

Java开发 - 分页查询初体验

前言在上一篇,我们对es进行了深入讲解,相信看过的小伙伴已经能基本掌握es的使用方法,我们知道,es主要针对的是搜索条件,在这方面es具有无可比拟的优势,但我们也会注意到,有时候搜索条件过于宽泛…

有些笑话,外行人根本看不懂,只有程序员看了会狂笑不止

我一直都觉得我们写代码的程序员与众不同,就连笑话都跟别人不一样。 如果让外行人来看我们一些我们觉得好笑的东西,他们根本不知道笑点在哪里。 不信你来瞧瞧,但凡有看不懂的地方,说明你的道行还不够深。 1.大多数人开始学编程时…

【spring】IOC

IOC Inversion of Control,翻译为“控制反转”或“反转控制” 把创建对象过程交给 Spring 进行管理, 强调的是原来在程序中创建Bean的权利反转给第三方 这里使用到了工厂模式,使对象的创建和使用分离,实现解耦 底层原理 原始方式 耦合度太…