嵌入式学习笔记——概述
嵌入式系统概述
- 前言
- “嵌入式系统”概念
- 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架构的对比,其实落到底层是CSIC和RISC两者之间的恩怨情仇。
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的芯片介绍以及其开发环境的搭建。
相关文章:
嵌入式学习笔记——概述
嵌入式系统概述前言“嵌入式系统”概念1.是个啥?2.可以干啥?3.有哪些入坑方向?4.入坑后可以有多少薪资?单片机1.什么是单片机?2.架构简介3.基于ARM架构的单片机结构简介总结前言 断更很长时间了,写博客确实…...
化繁为简高效部署 华为云发布部署服务CodeArts Deploy
随着互联网、数字化的发展,公司机构与各类企业往往需要进行大量频繁的软件部署,部署设备类型多样,如:本地机器、云上裸金属服务器、云上虚拟机与容器等。面对多种部署模式、分布式复杂运行环境,如何用最短时间、高质…...
注意力机制详解系列(四):混合注意力机制
👨💻作者简介: 大数据专业硕士在读,CSDN人工智能领域博客专家,阿里云专家博主,专注大数据与人工智能知识分享。 🎉专栏推荐: 目前在写CV方向专栏,更新不限于目标检测、OCR、图像分类、图像分割等方向,目前活动仅19.9,虽然付费但会长期更新,感兴趣的小伙伴可以…...
Makefiles学习1
初识"Makefiles" 创建一个 “Makefile” 文件 touch Makefile“touch” 用于修改文件或者目录的时间属性,包括访问时间和修改时间,若文件不存在,则重新建立一个新的文件。这里有两个需要我们注意的: 进入并编辑"…...
日志框架以及如何使用LogBack记录程序
使用日志框架可以记录一个程序运行的过程和详情,同时便捷地存储到文件里面,并且性能和灵活性都比较好。日志的体系结构包括两类日志规范接口:Commons Logging,简称:JCL;Simple Logging Facade for Java&…...
集成RocketChat至现有的.Net项目中,为ChatGPT铺路
文章目录前言项目搭建后端前端代理账号鉴权方式介绍登录校验模块前端鉴权方式后端鉴权方式登录委托使用登录委托处理聊天消息前端鉴权方式后端校验方式项目地址前言 今天我们来聊一聊一个Paas的方案,如何集成到一个既有的项目中。 以其中一个需求为例子:…...
王道操作系统课代表 - 考研计算机 第三章 内存管理 究极精华总结笔记
本篇博客是考研期间学习王道课程 传送门 的笔记,以及一整年里对 操作系统 知识点的理解的总结。希望对新一届的计算机考研人提供帮助!!! 关于对 “内存管理” 章节知识点总结的十分全面,涵括了《操作系统》课程里的全部…...
Cypher中的聚合
深解Cypher中的聚合 值或计数的聚合要么从查询返回,要么用作多步查询下一部分的输入。查看数据模型 CALL db.schema.visualization() 查看图中节点的属性类型 CALL db.schema.notetypeproperties() 查看图中关系的属性类型 CALL db.schema.reltypeproperties() C…...
图注意网络GAT理解及Pytorch代码实现【PyGAT代码详细注释】
文章目录GAT代码实现【PyGAT】GraphAttentionLayer【一个图注意力层实现】用上面实现的单层网络测试加入Multi-head机制的GAT对数据集Cora的处理csr_matrix()处理稀疏矩阵encode_onehot()对label编号build graph邻接矩阵构造GAT的推广GAT 题:Graph Attention Netwo…...
项目成本管理中的常见误区及解决方案
做过项目的人都明白,项目实施时间一般很长,在实施期间总有很多项目结果不尽人意的问题。要使一个项目取得成功,就要结合很多因素一起才能作用,其中做好项目成本的管理就是最重要的步骤之一,下面列出了常见的项目成本管…...
墨天轮2022年度数据库获奖名单
2022年,国家相继从高位部署、省级试点布局、地市重点深入三个维度,颁布了多项中国数据库行业发展的利好政策。但是我们也能清晰地看到,中国数据库行业发展之路道阻且长,而道路上的“拦路虎”之一则是生态。中国数据库的发展需要多…...
仓储调度|库存管理系统
技术:Java、JSP等摘要:随着电子商务技术和网络技术的快速发展,现代物流技术也在不断进步。物流技术是指与物流要素活动有关的所有专业技术的总称,包括各种操作方法、管理技能等,物流业采用某些现代信息技术方面的成功经…...
Canvas入门-01
导读: 读完全文需要2min。通过这篇文章,你可以了解到以下内容: Canvas标签基本属性如何使用Canvas画矩形、圆形、线条、曲线、笑脸😊 如果你曾经了解过Canvas,可以对照目录回忆一下能否回答上来 毕竟带着问题学习最有效…...
运算符优先级
醋坛酸味罐,位落跳福豆 醋:初等运算符: () [] -> . 坛:单目运算符: - ~ – * & ! sizeof 右结合 酸:算术运算符: - * / % 味:位移运算符:>> << …...
微信小程序使用scss编译wxss文件的配置步骤
文章目录1、在 vscode 中搜索 easysass 插件并安装2、在微信开发工具中导入安装的easysass插件3、修改 spook.easysass-0.0.6/package.json 文件中的配置4、重启开发者工具,就可用使用了微信小程序开发者工具集成了 vscode 编辑器,可以使用 vscode 中众多…...
一步一步教你如何使用 Visual Studio Code 编译一段 C# 代码
以下是一步一步教你如何使用 Visual Studio Code 编写使用 C# 语言输出当前日期和时间的代码: 1、下载并安装 .NET SDK。您可以从 Microsoft 官网下载并安装它。 2、打开 Visual Studio Code,并安装 C# 扩展。您可以在 Visual Studio Code 中通过扩展菜…...
vue-cli中的环境变量注意点
在客户端侧代码中使用环境变量只有以 VUE_APP_ 开头的变量会被 webpack.DefinePlugin 静态嵌入到客户端侧的包中。你可以在应用的代码中这样访问它们:console.log(process.env.VUE_APP_SECRET)在构建过程中,process.env.VUE_APP_SECRET 将会被相应的值所…...
2.3数据类型
文章目录1. 命名规则2.字符3.数字4.日期5.图片1. 命名规则 字段名必须以字母开头,尽量不要使用拼音长度不能超过30个字符(不同数据库,不同版本会有不同)不能使用SQL的保留字,如where,order,group只能使用如下字符a-z、…...
Kafka基本概念
什么是Kafka Kafka是一个消息系统。它可以集中收集生产者的消息,并由消费者按需获取。在Kafka中,也将消息称为日志(log)。 一个系统,若仅有一类或者少量的消息,可直接进行发送和接收。 随着业务量日益复杂,消息的种类…...
使用QueryBuilders、NativeSearchQuery实现复杂查询
使用QueryBuilders、NativeSearchQuery实现复杂查询 本文继续前面文章《ElasticSearch系列(二)springboot中集成使用ElasticSearch的Demo》,在前文中,我们介绍了使用springdata做一些简单查询,但是要实现一些高级的组…...
taobao.open.account.update( Open Account数据更新 )
¥开放平台免费API不需用户授权 Open Account数据更新 公共参数 请求地址: HTTP地址 http://gw.api.taobao.com/router/rest 公共请求参数: 公共响应参数: 响应参数 点击获取key和secret 请求示例 TaobaoClient client new DefaultTaobaoClient(url, appkey, sec…...
PT100铂电阻温度传感器
PT100温度传感器又叫做铂热电阻。 热电阻是中低温区﹡常用的一种温度检测器。它的主要特点是测量精度高,性能稳定。其中铂热电阻的测量精确度是﹡高的,它不仅广泛应用于工业测温,而且被制成标准的基准仪。金属热…...
蓝桥杯-本质上升序列
没有白走的路,每一步都算数🎈🎈🎈 题目描述: 小蓝特别喜欢单调递增的事物 在一个字符串中如果取出若干个字符,按照在原来字符串中的顺序排列在一起,组成的新的字符串如果是单调递增的…...
synchronized锁重入验证
文章目录synchronized锁重入验证1. 可重入锁2. synchronized锁重入2.1 本类同步方法内部调用本类其它同步方法2.2 子类同步方法内部调用父类的同步方法2.3 A类的同步方法内部调用B类的同步方法3. synchronized修饰方法写法synchronized锁重入验证 1. 可重入锁 可重入锁&#…...
超简单的计数排序!!
假设给定混乱数据为:3,0,1,3,6,5,4,2,1,9。 下面我们将通过使用计数排序的思想来完成对上面数据的排序。(先不谈负数) 计数排序 该排序的思路和它的名字一样…...
发现新大陆——原来软件开发根本不需要会编码(看我10分钟应用上线)
目录 一、前言 二、官网基础功能及搭建 三、体验过程 01、连接数据源 02、设计表单 03、流程设计 04、图表呈现 05、组织架构设置 五、效率评价 六、小结 一、前言 众所周知,每家公司在发展过程中都需要构建大量的内部系统, 如运营使用的用户…...
【Leedcode】栈和队列必备的面试题(第二期)
【Leedcode】栈和队列必备的面试题(第二期) 文章目录【Leedcode】栈和队列必备的面试题(第二期)一、题目(用两个队列实现栈)二、思路图解1.定义两个队列2.初始化两个队列3.往两个队列中放入数据4.两个队列出…...
Elasticsearch实战之(商品搜索API实现)
Elasticsearch实战之(商品搜索API实现) 1、案例介绍 某医药电商H5商城基于Elasticsearch实现商品搜索 2、案例分析 2.1、数据来源 商品库 - 平台运营维护商品库 - 供应商维护 2.2、数据同步 2.2.1、同步双写 写入 MySQL,直接也同步往…...
剑指 Offer 14-剪绳子
摘要 剑指 Offer 14- I. 剪绳子 剑指 Offer 14- II. 剪绳子 II 343. 整数拆分 一、动态规划解析 这道题给定一个大于1的正整数n,要求将n 拆分成至少两个正整数的和,并使这些正整数的乘积最大化,返回最大乘积。令x是拆分出的第…...
泰克示波器|MSO64示波器的应用
泰克新一代示波器MSO64为实例来讲解时频域信号分析技术。MSO64采用全新TEK049平台,不仅实现了4通道同时打开时25GS/s的高采样率,而且实现了12-bit高垂直分辨率。同时,由于采用了新型低噪声前端放大ASIC—TEK061,大大降低了噪声水平…...
网络游戏那个网站做的最好/免费站长工具
快捷方式 应该来说 很多人都做过,我们就来看一下基本的快捷方式 是怎么实现的,会有什么问题? 首先 肯定要获取权限: 1 <!-- 添加快捷方式 --> 2 <uses-permission android:name"com.android.launcher.permissi…...
做推广网站多少钱/百度新闻最新消息
环境是使用lnmp一键安装包搭建的;1 首先去这个网站下载证书:免费ssl证书最终会得到两个文件2:在/usr/local/nginx/conf创建cert目录把这两个文件放进去,这个地址后面有用。编辑/usr.local/nginx/conf/nginx.conf:添加下面这段&…...
如何做阿里巴巴免费网站/seo培训优化
就16.04版本这问题,试过网上其它解决方案 都不行,就此方法可以,现保存,谢谢原作者 更新到16.04,gedit打开中文时,依然存在乱码的问题。ubuntu官方给出的解决方案是,gedit3.x以上版本的在命令终…...
网站新闻对百度优化有用吗/常德论坛网站
很简单的话题。当我听到有人在讨论自己实现机制控制 log 输出时,我觉得还是有必要记录一下。最近让我比较困扰的是,很多 Android 基本的技巧都不被知晓。许多人的“锤子”意识很严重,一直使用以往的经验处理一切问题。影响 Android log 输出的…...
微信网站建设平台/怎么建免费网站
1.停止weblogic相关进程2.获取需更新的JDK包,并解压至/wls/wls81/bea/3. 修改启动weblogic的JAVA_HOME变量[wls81cnsz031527 PrdCSFWLDom380]$ cat servers.env|grepJAVA_HOMEVAR_JAVA_HOME:::JAVA_HOME/wls/wls81/bea/jrockit-j2sdk1.4.2_08 --修改成新的JDK路径即…...