【小黑嵌入式系统第二课】嵌入式系统的概述(二)——外围设备、处理器、ARM、操作系统
上一课:
【小黑嵌入式系统第一课】嵌入式系统的概述(一)——概念、特点、发展、应用
下一课:
【小黑嵌入式系统第三课】嵌入式系统硬件平台(一)——概述、总线、存储设备(RAM&ROM&FLASH)
文章目录
- 一、嵌入式系统的组成
- 二、嵌入式处理器
- 三、嵌入式外围设备
- 1. 存储设备
- 2. 通信设备
- 3. 显示设备
- 四、硬件抽象层HAL
- 五、嵌入式操作系统
- 六、应用程序
- 七、嵌入式处理器
- 1、MCU
- 2、MPU
- 3、DSP
- 4、SOC
- 5、SOPC
- 八、ARM处理器简介
- ARM处理器的特点
- ARM处理器的发展历程
- ARM体系结构版本及特点
- ARM处理器核——ARM Cortex系列
- ARM处理器核——Cortex-M
- 九、嵌入式操作系统
- 典型的嵌入式操作系统
- (1). VxWorks
- (2). Nucleus
- (3). QNX
- (4). Windows CE
- (5). Linux
- (6). IOS/安卓/鸿蒙
- (7). Android
一、嵌入式系统的组成
一般而言,嵌入式系统的组成架构可以分成三层,四个部分:嵌入式处理器、嵌入式外围设备、嵌入式操作系统和应用程序。
四层结构也常见:嵌入式硬件平台、硬件抽象层(HAL)、嵌入式操作系统、应用程序。
增加硬件抽象层HAL(Hardware Abstraction Layer):
- 也称为板级支持包BSP(Board Support Package),是一套软件,主要目的是屏蔽下层硬件,使操作系统不再直接面对具体的硬件环境。
- HAL通过特定的上层接口与操作系统进行交互,向操作系统提供底层硬件信息,并根据操作系统的要求完成对硬件的直接操作。
- HAL的引入大大推动了嵌入式系统的通用化,为嵌入式系统的广泛应用提供了可能。
典型嵌入式系统组成:
二、嵌入式处理器
嵌入式系统的核心部件,大多工作在为特定用户群所专门设计的系统中,它将通用CPU中许多由板卡完成的任务集成到芯片内部,从而有利于嵌入式系统在设计时趋于小型化,同时还具有很高的效率和可靠性。
嵌入式处理器包括:
- 低端的嵌入式微控制器(MicroController Unit, MCU)
- 中高端的嵌入式微处理器(Embedded Micro Processor Unit,EMPU)
- 用于计算机通信等领域的嵌入式DSP处理器(Embedded Digital Signal Processor,EDSP)
- 高度集成的嵌入式片上系统(System On Chip,SOC)
嵌入式处理器的体系结构经历了从CISC(复杂指令集)到RISC(精简指令集)和Compact RISC的转变,位数则由4位、8位、16位、32位逐步发展到64位。
目前,几乎每个大的半导体制造商都生产嵌入式处理器,全世界嵌入式微处理器已经超过1000多种,流行的体系结构也有30多个系列,其中以ARM、x86、MIPS 、PowePC等使用得最为广泛。
三、嵌入式外围设备
在嵌入式系统的硬件中,除了中央控制部件(MCU、DSP、EMPU、SOC)以外,用于完成存储、通信、显示等配套功能的其它硬件部件,都可以算作嵌入式外围设备。
常用的嵌入式外围设备按功能可分为:存储设备、通信设备和显示设备三大类。
1. 存储设备
存储设备主要用于各类数据的存储,常用的有静态随机存储器(SRAM)、动态存储器(DRAM)和非易失存储器(ROM、UV EPROM、EEPROM、FLASH)三种。
2. 通信设备
目前存在的绝大多数通信接口都可以直接应用于嵌入式系统中,包括UART接口(通用异步串行通信接口)、 IrDA(红外线接口)、 SPI(串行外围设备接口)、I2C(INTER IC 总线接口)、USB(通用串行总线接口)、Ethernet(以太网接口)、CAN(现场总线)等。
3. 显示设备
对于嵌入式系统中的显示设备,根据应用场合的特点,通常使用的是数码管(LED)、液晶显示器(LCD)和触摸显示屏(Touch Panel)等显示设备。
四、硬件抽象层HAL
硬件抽象层通过HAL接口向操作系统和应用程序提供对抽象后的硬件的服务。它是一套软件。
板级支持包(BSP) 是商用嵌入式操作系统实现可移植性所采用的一种方案,是硬件抽象层的一种实现。BSP是介于硬件和操作系统中驱动层程序之间的一层,有时也可认为属于操作系统一部分。BSP实现了对操作系统的支持,为上层的驱动程序提供访问硬件设备的函数包。
BSP隔离了所支持的嵌入式操作系统与硬件平台之间的相关性,使操作系统通用于BSP所支持的硬件平台,实现了嵌入式操作系统的可移植性、跨平台性、通用性和复用性。
不同的操作系统要求不同定义形式的BSP
- 例如,对同一个CPU来说,要实现同样的功能,VxWorks的BSP和Linux的BSP的写法和接口定义完全不同。BSP一定要按照具体操作系统BSP的定义形式来写(或在某个成型的BSP模板上修改),保障与上层操作系统的正确接口,良好地支持上层操作系统。
BSP直接操作硬件,因此不同的板卡、不同的硬件配置将不同程度地影响BSP。
BSP主要功能为屏蔽硬件,提供操作系统及硬件驱动,具体包括:
- 单板硬件初始化,主要是CPU的初始化,为整个软件系统提供底层硬件支持
- 为操作系统提供设备驱动程序和系统中断服务程序
- 定制操作系统的功能,为软件系统提供一个实时多任务的运行环境
- 初始化操作系统,为操作系统的正常运行做好准备
五、嵌入式操作系统
为了使嵌入式系统的开发更加方便和快捷,需要有专门负责管理存储器分配、任务调度、中断处理等功能的软件模块,这就构成了嵌入式操作系统。
嵌入式操作系统是用来支持嵌入式应用的系统软件,是嵌入式系统极为重要的组成部分,通常包括系统内核、硬件相关的底层驱动程序、设备驱动接口、通信协议、文件系统、图形用户界面等。
嵌入式操作系统具有通用操作系统的基本特点,如能够有效管理复杂的系统资源,能够对硬件进行抽象,能够提供库函数,驱动程序、开发工具等。
但与通用操作系统相比较,嵌入式操作系统在系统实时性、硬件依赖性、软件固化性以及应用专业性等方面具有着鲜明的特点。
嵌入式操作系统根据应用场合可分为两大类:
-
一类是面向消费电子产品的非实时操作系统,这类设备包括个人数字助理(PDA)、移动电话、机顶盒(STB)等;
-
另一类则是面向控制、通信、医疗等领域的实时操作系统,如WindRiver公司的VxWorks、QNX系统软件公司的QNX等。
实时系统是一种能够在指定或者确定时间内完成系统功能,并且对外部和内部事件在同步或者异步时间内能作出及时响应的系统。
六、应用程序
应用程序(APP) 是针对特定应用领域,基于某一固定的硬件和操作系统平台,用来达到用户预期目标的计算机上层软件。
由于用户任务可能有时间和精度上的要求,因此,有些嵌入式应用程序需要特定嵌入式操作系统的支持。
嵌入式应用程序和普通应用程序有一定的区别,不仅要求它在准确性、安全性和稳定性等方面满足实际应用的需要,而且还要尽可能地进行优化,以减少对系统资源的消耗,降低硬件成本。
七、嵌入式处理器
目前,世界上具有嵌入式功能特点的处理器已经超过1000种,流行的体系结构包括MCU、MPU等类型的30多个系列。从单片机、DSP到FPGA,品种越来越多,速度越来越快,性能越来越强,价格也越来越低。
嵌入式处理器一般具有以下四个特点:
- 对实时多任务操作系统具有很强的支持能力。能够实现多任务并且有较短的中断响应时间,从而使内部的代码和实时内核的执行时间减小到最低程度;
- 具有功能很强的存储区保护功能。由于嵌入式系统的软件结构一般为模块化,为了避免在软件模块之间出现错误的交叉作用,需要设计强大的存储区保护功能,同时也有利于软件故障诊断;
- 处理器结构可扩展。能够快速开发出满足各种应用和高性能的嵌入式处理器;
- 低功耗。尤其是在便携式的无线及移动计算和通信设备的嵌入式系统中,其功耗可以达到mW级,甚至uW级。
近年来,嵌入式处理器的主要发展方向是小体积、高性能、低功耗。专业分工也越来越明显,出现了专业的IP(Intellentual Property Core,知识产权核)供应商,如ARM、MIPS等,他们提供优质、高性能的嵌入式微处理器内核,而由各个半导体厂商生产面向各个应用领域的芯片。
嵌入式处理器通常分为四类:
1、MCU
嵌入式微控制器的典型代表是8位单片机,目前在嵌入式设备中仍然有着极其广泛的应用。
单片机芯片内部集成ROM/EPROM、RAM、总线逻辑、 I/O口、定时/计数器、串行通信口、A/D、D/A、看门狗等各种常用功能和外设。
例如:51单片机,MSP430,PSOC 5LC等。
MCU处理能力有限:
MCU微控制器,数据总线宽度一般为8位或16位,处理速度有限,一般在几个~几十个MIPS,进行一些复杂的应用比较困难,运行操作系统就更难。
2、MPU
MPU嵌入式微处理器是由通用计算机中的CPU演变而来的,80386-80387
与通用计算机处理器不同的是,在实际嵌入式应用中,只保留和嵌入式应用紧密相关的功能硬件,去除其他的冗余功能部分,这样就以最低的功耗和资源实现嵌入式应用的特殊要求。
3、DSP
DSP处理器是专门用于信号处理方面的处理器,其在系统结构和指令体系方面进行了针对常用信号处理算法所需的特殊设计,在数字滤波、FFT、频谱分析等方面DSP获得了大规模的应用。
DSP是运算密集处理器,一般用在快速执行算法,做控制比较困难。为了追求高执行效率,不适合运行操作系统,核心代码有时使用汇编。
4、SOC
片上系统(SoC:System-on-a-chip)指的是在单个芯片上集成一个完整的系统,对所有或部分必要的电子电路进行包分组的技术。所谓完整的系统一般包括中央处理器(CPU)、存储器、以及外围电路等。
SOC(片上系统)是IC设计的发展趋势。采用SOC设计技术,可以大幅度地提高系统的可靠性,减少系统的面积和功耗,降低系统成本,极大地提高系统的性能价格比。
SOC芯片已经成为提高移动通信、网络、信息家电、高速计算、多媒体应用及军用电子系统性能的核心器件。
5、SOPC
用可编程逻辑技术把整个系统放到一块硅片上,称作SOPC。可编程片上系统(SOPC)是一种特殊的嵌入式系统:
首先它是片上系统(SOC),即由单个芯片完成整个系统的主要逻辑功能;
其次,它是硬件可编程系统,具有灵活的设计方式,可裁减、可扩充、可升级。用可编程逻辑技术可实现一个内嵌的小型CPU,并具备软硬件在系统可编程的功能。
八、ARM处理器简介
ARM(Advanced RISC Machines)处理器是当今最流行的一类微处理器(之一)。
ARM,既可以认为是一个公司的名字,也可以认为是对一类微处理器的通称,还可以认为是一种技术的名字。
1991年ARM公司成立于英国剑桥,它是一家微处理器行业的知名企业,其主要业务是设计16位和32位的嵌入式处理器。该公司设计了大量高性能、廉价、耗能低的RISC(精简指令集)处理器。
ARM公司只做设计,本身并不生产和销售芯片,而是采用技术授权的方式,由合作公司生产各具特色的芯片。世界各大半导体生产商从ARM公司购买其设计的ARM处理器核,根据各自不同的应用领域,加入适当的外围电路,从而形成自己的ARM处理器芯片进入市场。
ARM处理器的特点
- 体积小、低功耗、低成本、高性能
- 支持Thumb(16位)/ARM(32位)双指令集,能很好地兼容8位/16位器件
- 大量使用寄存器,指令执行速度快
- 大多数数据操作都在寄存器中完成
- 寻址方式灵活简单,执行效率高
- 采用固定长度的指令格式
ARM处理器的发展历程
-
第一片ARM处理器是1983年10月到1985年4月间在位于英国剑桥的Acorn Computer公司开发。
-
1990年,为广泛推广ARM技术而成立了独立的公司。
-
20世纪90年代,ARM快速进入世界市场。
ARM体系结构版本及特点
ARM处理器核——ARM Cortex系列
ARM Cortex发布于2005年,为各种不同性能需求的应用提供了一整套完整的优化解决方案,该系列的技术划分完全针对不同的市场应用和性能需求。
目前ARM Cortex定义了三个系列:
① “A”系列面向尖端的基于虚拟内存的操作系统和用户应用;
② “R”系列针对实时系统;
③ “M”系列对微控制器和低成本应用提供优化。
ARM处理器核——Cortex-M
针对价格敏感应用领域的嵌入式处理器,只支持Thumb-2指令集,强调操作的确定性,以及性能、功耗和价格的平衡。
是为对开发费用非常敏感同时对性能要求不断增加的嵌入式应用(如微控制器、汽车车身控制系统和各种大型家电)所设计的,主要面向单片机领域,可以说是51单片机的完美替代品。
注:“ARM核”并不是芯片,ARM核与其它部件如RAM、ROM、片内外设组合在一起才能构成现实的芯片。
九、嵌入式操作系统
嵌入式操作系统EOS (Embedded OS):指运行在嵌入式系统中,对整个嵌入式系统所操作、控制的各种资源进行协调、调度和控制的系统软件。
EOS负责嵌入系统的全部软、硬件资源的分配、调度,控制、协调并发活动。
EOS是嵌入式应用软件的基础和开发平台,是嵌入式系统极为重要的组成部分,通常包括系统内核、与硬件相关的底层驱动软件、设备驱动接口、通信协议、文件系统、图形界面等。
与通用操作系统相比较,嵌入式操作系统在系统实时高效性、硬件的相关依赖性、软件固化以及应用的专用性等方面具有较为突出的特点
嵌入式操作系统的出现大大提高了嵌入式系统开发的效率,改变了以往嵌入式软件设计只能针对具体的应用从头做起的方式。
典型的嵌入式操作系统
(1). VxWorks
VxWorks操作系统是美国WindRiver公司于1983年设计开发的一种嵌入式实时操作系统。是目前嵌入式系统领域中使用最广泛、市场占有率最高的实时操作系统。它支持多种处理器,如x86, i960, Sun Sparc, Motorola MC68k, MIPS RX000, PowerPC, ARM等。由于其良好的持续发展能力、高性能的内核以及友好的用户开发环境,在嵌入式实时操作系统领域占据重要的一席之地。
VxWorks以其良好的可靠性和卓越的实时性被广泛地应用在通信、军事、航空、航天等高精尖技术及实时性要求极高的领域中,如卫星通讯、军事演习、弹道制导、飞机导航等。在美国的 F-16、FA-18 战斗机、B-2 隐形轰炸机和爱国者导弹上,甚至连1997年4月在火星表面登陆的火星探测器上也使用到了VxWorks。在我国的交换通信设备上,VxWorks几乎成了嵌入式实时操作系统的标准。
(2). Nucleus
Nucleus Plus是美国源代码操作系统商ATI(Accelerated Technology Inc.)公司推出的新一代嵌入式操作系统,属于抢占式实时多任务操作系统内核,其95%的代码使用ANSI C编写,非常便于移植于各种处理器家族。从实现的角度来讲,不同于传统嵌入式开发,Nucleus Plus是以函数库的形式链接到目标应用程序中,形成可执行目标代码,下载到目标板上或烧到ROM/FLASH ROM 中去执行。
Nucleus Plus内核在典型的CISC体系结构上占据大约20k空间,而在典型的RISC体系结构上占据空间为40k左右,其内核数据结构占据1.5k字节的空间。Nucleus Plus以其实时响应、抢占、多任务以及源代码开放特性获得在通讯、国防、工业控制、航空/航天、铁路、网络、POS、自动化控制、智能家电等领域的广泛应用。
(3). QNX
QNX 实时操作系统是由位于加拿大渥太华的QNX软件系统公司开发的一个针对嵌入式应用的,可以使用在严实时应用中的高可靠性微内核实时操作系统。能够运行在x86, PowerPC, ARM, XScale, MIPS, SH-4等一系列硬件平台上。
它由微内核和一组共操作的进程组成,具有高度的伸缩性,可灵活地剪裁,最小配置只占用几十KB内存。因此,可以广泛地嵌入到智能机器、智能仪器仪表、机顶盒、通讯设备、PDA等应用中去。2005年7月,QNX被应用到NASA重返太空飞行任务中的Neptec激光摄像机系统中。
(4). Windows CE
Windows CE是微软开发的一个开放的、可升级的32位嵌入式操作系统,是基于掌上型电脑类的电子设备操作系统。
Windows CE的图形用户界面相当出色。其中CE中的C代表袖珍(Compact)、消费(Consumer)、通信能力(Connectivity)和伴侣(Companion),E代表电子产品(Electronics)。
Windows CE是所有源代码全部由微软自行开发的嵌入式操作系统,其操作界面虽来源于Windows 95/98,但Windows CE是基于Win32 API重新开发的、新型的信息设备平台。Windows CE具有模块化、结构化和基于Win32应用程序接口以及与处理器无关等特点。Windows CE不仅继承了传统的Windows图形界面,并且在Windows CE平台上可以使用如 Visual Basic、Visual C++等工具,使用同样的函数、使用同样的界面风格,使绝大多数的应用软件只需简单的修改和移植就可以在Windows CE平台上继续使用。
(5). Linux
Linux是一个类似于Unix的操作系统。它起源于芬兰一个名为Linus Torvalds的业余爱好,但是现在已经是最为流行的一款开放源代码的操作系统。Linux从1991年问世到现在,短时间内已发展成为一个功能强大、设计完善的操作系统,其性能在很多方面甚至超过了很多商用的Unix系统。伴随网络技术进步而发展起来的Linux OS已成为Windows 系统的强劲对手。
Linux系统不仅能够运行于PC平台,还在嵌入式系统方面大放光芒,各种嵌入式Linux OS迅速发展。目前正在开发的嵌入式系统中,49%的项目选择Linux作为嵌入式操作系统。
(6). IOS/安卓/鸿蒙
(7). Android
Android一词的本义指“机器人”,Android是Google在2007年11月5日公布的基于Linux平台的开源智能手机操作系统名称。该平台由操作系统、中间件、用户界面和应用软件组成,是首个为移动终端打造的真正开放和完整的移动软件。
- 良好的平台开放性:
Android手机系统最震撼人心之处在于它的开放性和服务免费。Android是一个对第三方软件完全开放的平台,开发者在为其开发程序时拥有更大的自由度,突破了iPhone等只能添加为数不多的固定软件的枷锁;同时与Windows Mobile、Symbian等厂商不同,Android操作系统至今免费向开发人员提供。 - 实现个性化应用设定:
Android系统对所有应用程序一视同仁,不会区分手机的核心应用程序和第三方应用程序。它们可以平等的享有手机性能,向用户提供广泛的应用和服务。用户可以随心所欲的设定、替换手机屏幕上的各种应用程序、小插件等,打造出完全符合自己使用需求的个性化手机。 - 与Google应用的无缝结合:
由于Android系统是由Google主导研发,因此Android操作系统手机可以无缝结合优秀的Google互联网服务,如大家熟知的Google Map、Google Search、Gmail等,在手机上同样可以方便的使用。
相关文章:

【小黑嵌入式系统第二课】嵌入式系统的概述(二)——外围设备、处理器、ARM、操作系统
上一课: 【小黑嵌入式系统第一课】嵌入式系统的概述(一)——概念、特点、发展、应用 下一课: 【小黑嵌入式系统第三课】嵌入式系统硬件平台(一)——概述、总线、存储设备(RAM&ROM&FLASH…...

Unity3D 在做性能优化时怎么准确判断是内存、CPU、GPU瓶颈详解
Unity3D是一款广泛应用于游戏开发的跨平台游戏引擎,但在开发过程中,我们经常会遇到性能瓶颈问题,如内存、CPU和GPU瓶颈。本文将详细介绍在Unity3D中如何准确判断和解决这些瓶颈问题,并给出相应的技术详解和代码实现。 对惹&#…...

pyqt5 QProgressDialog 进度条的使用 下载自动更新应用程序
pyqt5 QProgressDialog 进度条的使用 案例截图 思路 实例化进度条窗口设置窗口各属性包括标题 提示文字 和 窗口大小显示进度条窗口同过一个for循环 模拟进度 代码 from PyQt5.QtCore import QCoreApplication, QProcess from PyQt5.QtWidgets import QApplication,QProgre…...

【yolov5目标检测】使用yolov5训练自己的训练集
数据集准备 首先得准备好数据集,你的数据集至少包含images和labels,严格来说你的images应该包含训练集train、验证集val和测试集test,不过为了简单说明使用步骤,其中test可以不要,val和train可以用同一个,…...

出差学小白知识No5:ubuntu连接开发板|上传源码包|板端运行的环境部署
1、ubuntu连接开发板: 在ubuntu终端通过ssh协议来连接开发板,例如: ssh root<IP_address> 即可 这篇文章中也有关于如何连接开发板的介绍,可以参考SOC侧跨域实现DDS通信总结 2、源码包上传 通过scp指令,在ub…...

C++(初阶四)类和对象
文章目录 一、面向过程和面向对象初步认识二、类的引入三、类的定义1、类的概述2、类的两种定义3、成员变量命名规则的建议 四、类的访问限定符及封装1、访问限定符2、封装 五、类的作用域六、类的实例化七、类对象模型1、如何计算类对象的大小2、 类对象的存储方式猜测3、 验证…...

CSS餐厅练习链接及答案
目录 链接: level 1 level 2 level 3 level 4 level 5 level 6 level 7 level 8 level 9 level 10 level 11 level 12 level 13 level 14 level 15 level 16 level 17 level 18 level 19 level 20 level 21 level 22 level 23 level 24 le…...

嵌入式和 Java选哪个?
今日话题,嵌入式和 Java 走哪个?对于嵌入式领域有浓厚兴趣的人,并不会比Java行业薪资低,处于上中游水平。特别是从2020年开始,嵌入式领域受益于芯片产业的兴起,表现出了强劲的增长势头。薪资水平受多方面因素影响。以…...

创建带Axi_Lite接口的IP核与AXI Interconnect(PG059)
AXI Interconnect互连内核将一个或多个 AXI 内存映射主设备连接到一个或多个内存映射从设备。 参考小梅哥文档。 /**************************** 类型定义 ****************** **********/ /** * * 将值写入 AXI_REG_LIST 寄存器。执行 32 位写入。 * 如果组件以较小的宽度实…...

快速解决 Resource not accessible by integration
简介 最近好久没有写博客了,今天在写开源项目 python-package-template 的时候,正好遇到一个问题,记录一下吧。本文将介绍 Resource not accessible by integration 的几种解决方案。 也欢迎大家体验一下 python-package-template 这个项目&…...

港联证券:资金融通构成强支撑 “一带一路”金融合作开新局
本年是共建“一带一路”主张提出十周年。经过十年打开,共建“一带一路”从夯基垒台、立柱架梁到落地生根、持久打开,已成为打开包容、互利互惠、协作共赢的国际协作途径。“资金融通”作为首份“一带一路”白皮书提出的“五通”之一,定位为“…...

mysql varchar int
年龄是数字类型int SELECT * FROM test ORDER BY age; 年龄是字符类型varchar SELECT * FROM test ORDER BY code; 第1种 补前导0可以和数字一样排序 MySQL会比较字符的ASCII值,并根据这些值来确定字符的排列顺序。 印象中oracle好像也是吧。 ASCII (American …...

阿里云/腾讯云国际站账号:私服游戏服务器:阿里云CTO周靖人:AI时代,为什么阿里云一定要做开源
开源技术报告,阿里云私服游戏服务器怎么看待大模型的路径? 随着 Meta 的 Llama2 开源,开源模型,以及聚集大模型开发者的开源社区,正在发挥不可或缺的作用。 一个例子是,上个月 Hugging Face 得到了谷歌、…...

搭建Pytorch的GPU环境超详细
效果 1、下载和安装VS2019 https://visualstudio.microsoft.com/zh-hans/vs/older-downloads/ 登录需要用户名和密码 安装后需要联网下载组件的,安装的时候要勾选使用C++的桌面开发 2、下载和安装显卡驱动 查看自己的显卡型号 从英伟达下载和安装最新驱动...

ppt录屏怎么导出来?学会这个,让分享更容易
ppt已经成为了日常工作与学习中必不可少的工具,而ppt屏幕录制功能,可以方便用户将他人的演讲或视频中的内容记录下来,以便进一步学习与研究。录制ppt演示并将其导出为视频文件,可以帮助我们进行分享,但是很多人不知道p…...

【Linux笔记】Linux基础权限
【Linux笔记】Linux基础权限 一、Linux权限的概念1.1、Linux中一切皆文件1.2、文件访问者的分类1.3、、Linux中的“用户白名单” 二、文件访问权限的修改2.1、权限的增加和减少的基础方法2.2、以八进制数修改权限 三、用户身份的修改3.1、修改文件的拥有者3.2、修改文件的所属组…...

汽车屏类产品(三):抬头显示Head-Up Display(HUD)
前言 你的下一台车,一定要考虑加装一个HUD。 汽车抬头显示器或汽车抬头显示器(也称为汽车HUD)是任何透明的显示器,它可以在汽车中显示数据,而不需要用户将视线从平时的视角移开。这个名字的由来源于飞行员能够在头部“向上”并向前看的情况下查看信息,而不是向下倾斜查…...

vue2技能树(1)
目录 Vue.js 是什么响应式数据绑定组件化开发简单的模板语法生态系统逐渐增强社区支持 安装、导入和使用 Vue.js步骤 1: 安装 Node.js步骤 2: 创建新项目或添加到现有项目创建新项目添加到现有项目 步骤 3: 导入 Vue.js步骤 4: 创建 Vue 实例步骤 5: 创建 HTML 模板步骤 6: 启动…...

Kotlin中的选择结构语句
在Kotlin中,选择结构语句有多种形式,包括条件分支、三元表达式、if-else if-else语句、when语句等。下面将逐个说明每种形式的使用。 条件分支: var max: Int 0 var a: Int 5 var b: Int 6if (a > b) {max a } else {max b }printl…...

【AIFEM案例操作】压力容器强度分析
AIFEM是由天洑自主研发的一款通用的智能结构仿真软件,助力用户解决固体结构相关的静力学、动力学、振动、热力学等实际工程问题,软件提供高效的前后处理工具和高精度的有限元求解器,帮助用户快速、深入地评估结构的力学性能,加速产…...

Hadoop3教程(十八):MapReduce之MapJoin案例分析
文章目录 (118)MapJoin案例需求分析ReduceJoin的问题如何解决ReduceJoin的问题如何将一个文件主动缓存到集群的内存里 (119)MapJoin案例代码实现参考文献 (118)MapJoin案例需求分析 ReduceJoin的问题 在R…...

SOAR安全事件编排自动化响应-安全运营实战
SOAR是最近几年安全市场上最火热的词汇之一。各个安全产商都先后推出了相应的产品,但大部分都用得不是很理想。SOAR不同与传统的安全设备,买来后实施部署就完事,SOAR是一个安全运营系统,是实现安全运营过程中人、工具、流程的有效…...

连锁药店的自有品牌之争:老百姓大药房能否突围?
文丨新熔财经 作者丨楷楷 近年来,随着医保谈判药品的“双通道”(即消费者可在有资质的药店买到新进医保的创新药),以及“门诊统筹”将药店纳入医保报销等医改政策出台,药企开始重新重视起零售药店渠道,很…...

智能台灯语音控制丨解放双手
台灯是日常生活中一种常见的照明产品。以往的台灯大多都是采取手动控制,通过按键去对台灯的亮度进行调整。随着科技的发展,台灯也开始走向了智能化。人们已经能够对智能台灯进行语音控制,通过调节灯光开关、色温、灯光亮度等操作,…...

网络库OKHTTP(2)面试题
序、慢慢来才是最快的方法。 背景 OkHttp 是一套处理 HTTP 网络请求的依赖库,由 Square 公司设计研发并开源,目前可以在 Java 和 Kotlin 中使用。对于 Android App 来说,OkHttp 现在几乎已经占据了所有的网络请求操作。 OKHttp源码官网 问1…...

探索Java NIO:究竟在哪些领域能大显身手?揭秘原理、应用场景与官方示例代码
一、NIO简介 Java NIO(New IO)是Java SE 1.4引入的一个新的IO API,它提供了比传统IO更高效、更灵活的IO操作。与传统IO相比,Java NIO的优势在于它支持非阻塞IO和选择器(Selector)等特性,能够更…...

论文阅读 Memory Enhanced Global-Local Aggregation for Video Object Detection
Memory Enhanced Global-Local Aggregation for Video Object Detection Abstract 人类如何识别视频中的物体?由于单一帧的质量低下,仅仅利用一帧图像内的信息可能很难让人们在这一帧中识别被遮挡的物体。我们认为人们识别视频中的物体有两个重要线索&…...

Java 常用类(包装类)
目录 八大Wrapper类包装类的分类 装箱和拆箱包装类和基本数据类型之间的转换常见面试题 包装类方法包装类型和String类型的相互转换包装类常用方法(以Integer类和Character类为例)Integer类和Character类的常用方法 Integer创建机制(面试题&a…...

ES|QL:Elasticsearch的 新一代查询语言
作者:李捷 “学会选择很难。学会正确选择更难。而在一个充满无限可能的世界里学会正确选择则更难,也许是太难了。” 巴里-施瓦茨(Barry Schwartz)在《选择的悖论--多就是少》(The Paradox of Choice -More is Less&…...

C语言实现句子中的单词颠倒排序
一、运行结果 二、源代码 # define _CRT_SECURE_NO_WARNINGS # include <stdio.h> # include <assert.h>//实现逆转函数; void reverse(char* left, char* right) {//断言left和right都不能为空;assert(left);assert(right);//循环逆转字母…...