汽车电子笔记之:AUTOSAR方法论及基础概念

目录

1、AUTOSAR方法论

2、AUTOSAR的BSW

2.1、MCAL

2.2、ECU抽象层

2.3、服务层

2.4、复杂驱动

3、AUTOSAR的RTE

4、AUTOSAR的应用层

4.1、SWC

 4.2、AUTOSAR的通信

4.3、AUTOSAR软件接口


1、AUTOSAR方法论

        AUTOSAR为汽车电子软件系统开发过程定义了一套通用的技术方法,即AUTOSAR方法论。该方法描述了从系统底层配置ECU可执行代码产生过程的设计步骤。AUTOSAR设计和开发流程分为系统配置阶段ECU设计与配置阶段以及代码生成阶段

        第一阶段:定义系统配置文件,这是系统设计者或架构师的任务。包括选择硬件和软件组件,定义整个系统的约束条件。AUTOSAR通过使用信息交换格式和模板描述文件来减少初始系统设计时的工作量。系统配置的输入是XML类型的文件,输出是系统配置描述文件,系统配置的主要作用是把软件组件的需求映射到 ECU上,如下图所示。

         第二阶段:根据系统配置描述文件提取单个 ECU 资源相关的信息,提取出来的信息生成ECU提取文件。根据这个提取文件对ECU进行配置,例如操作系统任务调度、必要的BSW 模块及其配置以及运行实体到任务的分配等,从而生成 ECU 配置描述文件,如下图所示。该描述文件包含了特定 ECU 的所有信息。

         第三阶段:生成代码,是基于ECU配置描述文件指定的配置来产生代码、编译代码,并把相关代码链接起来形成可执行文件,如下图所示。

 具体开发流程如下:

1、编写系统配置输入描述文件

在AUTOSAR中,所有的描述文件都是XML类型的文件。系统配置输入文件包括以下三部分内容:

软件组件描述:定义了每个涉及的软件组件的接口内容,如数据类型、端口、接口等;

ECU资源描述:定义了每个ECU的资源需求,如处理器、存储器、外围设备、传感器和执行器等;

系统约束描述:定义了总线信号、软件组件间的拓扑结构和映射关系。

2、系统配置

系统配置的功能主要是在资源和时序关系的前提下,把软件组件映射到各个ECU上,然后借助系统配置生成器生成系统配置描述文件。这个描述文件包括总线映射之类的所有系统信息以及软件组件与某个 ECU 的映射关系。

3、提取特定ECU描述

从系统配置描述文件中提取出与各个 ECU 相关的系统配置描述信息,提取的信息包括ECU 通信矩阵、拓扑结构、映射到该 ECU上的所有软件组件,并将这些信息放在各个ECU的提取文件中。

4、ECU配置

ECU配置主要是为该ECU添加必要的信息和数据,如任务调度,必要的基础软件模块及其配置,运行实体及任务分配等,并将结果保存在ECU配置描述文件中,该文件包含了属于特定ECU的所有信息。换言之,ECU上运行的软件可根据这些信息构造出来。

5、生成可执行文件

根据ECU配置描述文件中的配置信息,生成RTE和基础软件配置代码,完成基础软件和软件组件的集成,最终生成ECU的可执行代码。

2、AUTOSAR的BSW

        AUTOSAR基础软件层的结构主要由四部分组成,即微控制器抽象层(MicrocontrollerAbstraction Layer,MCAL)、ECU 抽象层(ECU Abstraction Layer)、服务层(Services Layer)以及复杂驱动(Complex Drivers)。各部分在AUTOSAR基础软件层的位置如下图所示。

         其中,MCAL包含了与硬件相关的驱动程序,可以用来访问内存、通信和 I/O ;ECU抽象层负责提供统一的访问接口实现对通信、内存或者I/O的访问,从而无须考虑这些资源由微处理器提供还是由外部设备提供;服务层提供各种类型的后台服务,例如网络服务、内存管理和总线通信服务等,操作系统就位于这一层。

2.1、MCAL

        微控制器抽象层(MCAL),位于AUTOSAR分层模型中BSW的最底层。MCAL包含内部驱动,可以直接访问微控制器和片内外设。更进一步地,MCAL又可分为微控制器驱动(Microcontroller Drivers)、存储器驱动(Memory Drivers)、通信驱动(CommunicationDrivers)和 I/O驱动(I/O Drivers)四个部分,如下图所示,各部分又由具体的与微控制器硬件相对应的驱动模块组成。

 1、微控制器驱动

微控制器驱动由通用定时器驱动(General Purpose Driver, GPT Driver)、看门狗驱动(Watchdog Driver, WDG Driver)、微控制器单元驱动(Microcontroller Unit Driver, MCUDriver)和内核测试(Core Test)四个部分组成。

(1) GPT Driver

在AUTOSAR中有两类定时器:操作系统定时器和硬件定时器。该模块使用通用定时器单元的硬件定时器通道,为操作系统或者其他基础软件模块提供计时功能,一个典型的时间周期范围是 50 μs~5 ms。

GPT Driver 的作用是:

启动和停止硬件定时器;

得到定时器数值;

控制时间触发的中断;

控制时间触发的中断唤醒。

GPT Driver通过调用Gpt_StartTimer和Gpt_StopTimer函数来启动和停止定时器通道。目标时间视作Gpt_StartTimer的一个参数,可以为每个定时器通道单独设置。

定时器通道可以设为单次模式或连续模式。在单次模式下,定时器到达目标时间(即定时器数值)时会自动停止,保持定时器数值不变并且通道状态从“运行”变为“超时”;在连续模式下,定时器到达目标时间会清零并继续运行

(2) WDG Driver

WDG Driver 的功能主要是初始化和触发看门狗。

WDG Driver 有内部 WDG Driver 和外部 WDG Driver。内部 WDG Driver 控制 MCU的内部看门狗定时器,提供触发功能和模式选择服务;外部WDG Driver控制外部硬件看门狗,与内部 WDG Driver一样,提供触发功能和模式选择服务。

(3) MCU Driver

MCU Driver 位于MCAL ,可以直接访问微控制器硬件,它的主要功能是初始化、休眠、复位微控制器以及提供其他MCAL软件模块所需的与微控制器相关的特殊功能。MCU Driver 能为硬件复位提供软件触发服务,但是只有被授权的用户才可以调用这个复位服务函数。在ECU中有很多不同的原因可以造成复位,如果硬件允许,MCU模块可以获取复位的原因。此外,MCU Driver还能够使能并设置MCU时钟,例如CPU时钟、外围器件时钟、预分频器等参数。

注意:所有的外设时钟必须通过McuClockReferencePoint 与其他BSW模块联系起来。

(4) Core Test

Core Test模块包含周期性测试和启动测试

Core Test可以对CPU的所有寄存器进行测试,提供中断控制和异常检测。该模块还对算术逻辑单元、存储保护单元和缓存控制器等进行检测。Core Test可以运行在后台模式或前台模式。在后台模式中,Core Test会被调度机(Scheduler)周期性调用,在当前的原子型序列(Atomic Sequence)中是可中断的,一个完整的测试由很多原子型序列组成,以测试内核功能。而在前台模式中,Core Test会被用来测试整个内核或者所选模块的功能。取消后台模式并启动前台模式是允许的,但是两种模式不能被同时执行。如果在某个后台任务运行中有前台任务被请求,那么,在调用前台任务前,后台任务应当被取消。

2. 存储器驱动

存储器驱动由内部EEPROM驱动、内部 Flash驱动、RAM 测试和Flash测试四部分组成。

(1)内部 EEPROM 驱动

内部 EEPROM 驱动提供初始化服务,以及对内部 EEPROM 的读、写、擦除等操作。驱动模块一次只能接受一个任务。

(2)内部 Flash 驱动

内部Flash驱动提供内部Flash初始化服务,以及对内部Flash的读、写、擦除等操作。该驱动还可以将Flash访问代码下载到RAM中;如果需要的话,也可以执行写、擦除操作。

(3) RAM测试

RAM 测试模块通过软件对 RAM 存储进行测试。该模块包含后台测试和前台测试。其中,后台测试(Background RAM Test)是异步服务,前台测试(Foreground RAM Test)是同步服务

(4)Flash 测试

Flash 测试模块提供算法来测试诸如数据/程序闪存、程序 SRAM 等非易失性存储器,这些存储器可以是集成在微控制器内部的,也可以是外部映射到微控制器的。测试服务可以在MCU初始化完成后的任意时间被执行,用户可以选择合适的测试算法。同样,Flash测试可以在前台模式和后台模式下运行,被测试的模块在前台和后台都可单独配置。

2.2、ECU抽象层

        ECU 抽象层负责提供统一的访问接口,实现对通信、内存或者 I/O 的访问,从而无须考虑这些资源是由微处理器提供的还是由外部设备提供的。外部设备的驱动就位于这一层。ECU抽象层主要包括板载设备抽象(Onboard Device Abstraction)、存储器硬件抽象(Memory Hardware Abstraction)、通信硬件抽象(Communication Hardware Abstraction)和 I/O 硬件抽象(I/O Hardware Abstraction)四个部分。

2.3、服务层

        服务层是基础软件层的最高层,它可以实现与应用层软件的关联。I/0信号可以通过ECU抽象层进行获取,此外,服务层还提供操作系统功能、汽车网络通信以及管理服务、内存服务、诊断服务[包含统一诊断服务(Unified Diagnostic Services, UDS)、错误记忆和故障处理]、ECU 状态和模式管理、逻辑与暂时程序流程监管(Watchdog 管理)、加密服务等。服务层的主要任务是为应用程序、RTE 以及基础软件模块提供最基本的服务。服务层的上层接口保证了微控制器和 ECU 硬件层的独立。按照服务对象的不同,服务层又可以分成三部分,即通信服务(CommunicationServices)、存储器服务(Memory Services)和系统服务(System Servieces)

2.4、复杂驱动

        复杂驱动(CDD)层跨于微控制器硬件和 RTE 之间,其主要任务是整合具有特殊目的且不能用 MCAL 进行配置的非标准功能模块,将该部分功能嵌入 AUTOSAR 基础软件层中,从而实现处理复杂传感器以及执行器的特定功能和时间要求。比如 AUTOSAR 中未指定的功能部分、有较高执行时间要求限制的或是需要移植的部分等。因此,复杂驱动程序跟单片机和 ECU 硬件紧密相关。其上层程序接口是根据 AUTOSAR 指定并且实施的;其下层程序接口受标准接口程序的限制。

 (1)从分层软件架构下的其他模块到复杂驱动的访问

只有当复杂驱动提供一个接口并且该接口可以通过访问 AUTOSAR 模块进行配置时,才允许分层软件架构下其他模块访问复杂驱动。一个典型的例子就是PDU路由器,一个复杂驱动可能执行一个新的总线系统的接口模块,因此,这种情况在PDU路由器的配置选项中已经有所考虑。

(2)从复杂驱动到分层软件架构下其他模块的访问

同样的,只有当分层软件架构的各个模块提供接口并且准备好被复杂驱动访问时,复杂驱动才能访问分层软件架构下其他模块。通常,这就意味着这些各自的接口被定义为可以再次进入的(re-entrant),如果使用了回调例程(Call Back routines),那么,其名称也是可配置的。需要说明的是,不存在对模块状态进行管理的上层模块(并行访问将会改变状态,同时不会被上层模块注意到)。一

3、AUTOSAR的RTE

        虚拟功能总线(Virtual Function Bus, VFB)是 AUTOSAR中的另一个重要概念。虚拟功能总线是对 AUTOSAR 提供的所有通信机制的一种抽象,是所有软件组件进行交互的桥梁,如下图所示。通过虚拟功能总线,软件组件之间的通信细节被抽象出来,软件组件通过AUTOSAR定义的接口对通信进行描述,即可最大限度地独立于具体的通信机制,实现与其他软件组件和硬件的交互。

        通过虚拟功能总线,无论软件组件使用的是单 ECU 的内部通信还是 ECU 间的外部通信,对于应用软件的设计者来说,没有本质区别。内部通信与外部通信的区别只有等到系统配置阶段将软件组件分配到不同的 ECU 之后,才能体现出来。而在这种情况下,虚拟功能总线的真实通信实现可以由运行时环境和基础软件来保证。因此,在虚拟功能总线的帮助下,应用软件的各个软件组件不需要关注通信的区别,从而可以在独立的情况下设计开发软件组件,使得应用软件的开发可以独立于具体的 ECU,开发人员可以将精力集中在应用软件及其软件组件的开发上。

        作为AUTOSAR虚拟功能总线(VFB)的具体实现,RTE位于AUTOSAR软件架构的中间层,介于应用层和基础软件层之间,如下图所示,它实现了特定 ECU 上的虚拟功能总线,支持 AUTOSAR 的软件组件间、基础软件间、软件组件与基础软件之间的通信。RTE封装了基础软件层的通信和服务,为应用层的软件组件提供标准化的基础软件和通信接口,使得应用层可以通过 API函数调用基础软件的服务,如操作系统的任务激活、等待等功能,基础软件模块管理、ECU 状态管理等服务,实现了对软件生命周期的控制。除此之外,RTE还抽象了 ECU之间的通信,使用标准化的接口将其统一为软件组件间的通信,使得 ECU 间的通信如同 ECU 内部的通信。但在实现上,它需要调用基础软件中的通信部分的功能以实现各种不同总线的通信。

         RTE 软件设计的主要对象是软件组件和基础软件。为满足实时性、可靠性以及数据的一致性等要求,RTE向软件组件和基础软件组件提供通信机制和并发机制,如下图所示。

         RTE 是 AUTOSAR 的核心,它衔接了应用层和基础软件层,为应用层提供标准接口来调用底层的资源,使得ECU软件的开发与具体的硬件相脱离,上层应用策略开发的人员可以更加专注于软件功能的开发,而不用纠缠于软件底层的细节。

4、AUTOSAR的应用层

4.1、SWC

        在AUTOSAR中,应用软件包含许多独立的单元,即AUTOSAR软件组件(SoftwareComponent, SWC)。

        一个AUTOSAR软件组件通过定义好的端口与其他AUTOSAR软件组件进行访问。如下图所示,五个SWC通过相应的端口进行连接。

        软件组件的行为通过一个或多个可运行体(Runnable)实现。在Simulink里面,通过一个模型表示AUTOSAR软件组件。下下图表示一个AUTOSAR软件组件,三个函数调用子系统(Function-Call)代表三个可运行体,分别标识为Runnablel_subsystem, Runnable2lsubsystem和Runnable3_subsystem。信号irvl, irv2, irv3, irv4代表AUTOSAR 内部可运行体间变量(Inter-Runnable Variable,IRV)。

 4.2、AUTOSAR的通信

        AUTOSAR软件组件提供了定义明确的连接点,即端口。有以下三种类型的AUTOSAR 端口.

需求端口

供给端口

组合的供给需求端口

AUTOSAR端口可引用下列类型的接口

发送—接收接口(Sender-Receiver);

客户—服务器接口(Client-Server);

模式—切换接口(Mode-Switch);

非易失数据接口(Nonvolatile Data);

参数接口(Parameter);

触发接口(Trigger)。

        Client-Server接口,AUTOSAR 客户一服务器接口定义了提供这个接口的软件组件以及需求这个接口的软件组件之间的交互。提供这个接口的软件组件是服务器,需要这个接口的软件组件是客户端。

4.3、AUTOSAR软件接口

        AUTOSAR对软件的接口(Interface)进行了合理的分类和定义,在标准化的前提下实现了最大限度的可扩展性和可移植性,从而为AUTOSAR 应用于汽车系统提供了基础。AUTOSAR定义了三种接口,即AUTOSAR接口(AUTOSAR Interface)、标准化的AUTOSAR 接 口(Standardized AUTOSAR Interface)和 标 准 化 接 口 (StandardizedInterface)。AUTOSAR 各组件之间的接口如下图所示。

        由下图可知,在AUTOSAR软件架构中,基础软件模块之间的接口为标准接口,应用软件组件与RTE层之间的接口为AUTOSAR接口OS RTE、通信服务与RTE之间的交互接口为标准接口,服务层其他服务与RTE之间的交互接口为标准化AUTOSAR接口,IO抽象层与RTE、复杂驱动与RTE的交互接口为AUTOSAR接口。三种接口的特性如下。

1、AUTOSAR接口

AUTOSAR 接口定义了软件模块和 BSW 模块(仅仅是 IO 抽象和复杂驱动)之间交互的方式,AUTOSAR接口是以port的形式出现的,包括信息的发送与接收和服务的调用(send or receive information or invoke services), AUTOSAR将ECU 内部的通信和网络通信使用的接口进行了统一。AUTOSAR接口的C语言的表现形式为:

Rte_Write_(p)_<d>(),

Rte_Read_<p>_<d>(),

Rte_Call_<p>_<d>()。

2、标准化的AUTOSAR接口

标准化的 AUTOSAR 接口是语义和语法均使用 AUTOSAR 接口技术标准化的接口,该类接口通常使用在AUTOSAR基础件模块通过RTE提供给应用层软件组件的标准化服务中。如服务端口(Service Port),格式为Rte_Call_(PortPrototype)_(operation)_(operation)();服务层的一些API接口,如SetEventStatus(In Dem_EventStatusType)。

3、标准化接口

标准化接口是AUTOSAR中一种标准化的应用编程接口(Application ProgrammingInterface, API),但是并没有使用AUTOSAR接口技术,标准化接口通常被用在某个ECU内部的软件模块之间的通信,不能用于网络通信。形如OS中Schedule(), WaitEvent()均为标准化接口。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/106665.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

分布式事务篇-2.4 Spring-Boot整合Seata

文章目录 前言一、pom jar导入:二、项目配置&#xff1a;2.1 配置 说明&#xff1a;2.1 .1 seata server 端:2.1 .2 seata client 端: 2.2 开启seata 对于数据源的代理:2.3 seata-client 的注册中心&#xff1a;2.4 seata-client 的配置中心&#xff1a;2.5 去掉手写的数据源代…

二叉树链式结构的实现

文章目录 1.前置说明 2.二叉树的遍历 文章内容 1.前置说明 学习二叉树的基本操作前&#xff0c;需先要创建一棵二叉树&#xff0c;然后才能学习其相关的基本操作。由于现在我们对于二叉树的了解还处于初级阶段&#xff0c;所以我们手动创建一棵简单的二叉树&#xff0c;以便…

javeee eclipse项目导入idea中

步骤一 复制项目到idea工作空间 步骤二 在idea中导入项目 步骤三 配置classes目录 步骤四 配置lib目录 步骤五 添加tomcat依赖 步骤六 添加artifacts 步骤七 部署到tomcat

电商项目part06 微服务网关整合OAuth2.0授权中心

微服务网关整合 OAuth2.0 思路分析 网关整合 OAuth2.0 有两种思路&#xff0c;一种是授权服务器生成令牌, 所有请求统一在网关层验证&#xff0c;判断权 限等操作&#xff1b;另一种是由各资源服务处理&#xff0c;网关只做请求转发。 比较常用的是第一种&#xff0c;把API网关…

认识Mybatis的关联关系映射,灵活关联表对象之间的关系

目录 一、概述 ( 1 ) 介绍 ( 2 ) 关联关系映射 ( 3 ) 关联讲述 二、一对一关联映射 2.1 数据库创建 2.2 配置文件 2.3 代码生成 2.4 编写测试 三、一对多关联映射 四 、多对多关联映射 给我们带来的收获 一、概述 ( 1 ) 介绍 关联关系映射是指在数据库中&…

RH1288V3 - 初识物理服务器

如果你拥有一台物理服务器(不是云服务器) 个人比较推荐你用物理服务器&#xff0c;虽然性能会比云要来的差&#xff0c;但是不用每月交钱上。云服务固然方便&#xff0c;但是几个核的性能和一点存储&#xff0c;想做一个动漫网站固然要很多mp4这种影视资源&#xff0c;云服务器…

人工智能在现代招聘中的崛起:超越传统筛选的未来

引言 在过去的几十年里,招聘一直是企业的核心活动之一。传统的招聘流程依赖于人力资源专家手工筛选简历、面试候选人并进行背景调查。这种方法不仅耗时,而且可能受到人为偏见的影响。随着技术的进步,特别是人工智能(AI)的发展,招聘的面貌正在发生深刻的变化。人工智能在…

【Ubuntu20.04安装Nvidia驱动、CUDA和CUDNN】

Ubuntu20.04安装Nvidia驱动、CUDA和CUDNN 1 Nvidia驱动安装1.1 安装1.2 安装Nvidia可能会遇到的问题1.2.1 NVIDIA 驱动与 Nouveau 驱动不兼容1.2.2 ERROR: Unable to find the development tool cc 2 CUDA安装2.1 下载和安装2.2 配置CUDA环境 3 安装CUDNN4 切换CUDA版本 1 Nvid…

在 macOS 中安装 TensorFlow 1g

tensorflow 需要多大空间 pip install tensorflow pip install tensorflow Looking in indexes: https://pypi.douban.com/simple/ Collecting tensorflowDownloading https://pypi.doubanio.com/packages/1a/c1/9c14df0625836af8ba6628585c6d3c3bf8f1e1101cafa2435eb28a7764…

在其他python环境中使用jupyter notebook

1、切换到目标python环境 activate 目标python环境 2、安装notebook内核包 pip install ipykernel 3、加环境加入到notebook中 python -m ipykernel install 目标python环境 4、切换到base环境 activate base 5、打开目标项目的对应盘 如果&#xff0c;项目在c盘&…

DEFORMABLE DETR: DEFORMABLE TRANSFORMERS FOR END-TO-END OBJECT DETECTION 论文精度笔记

DEFORMABLE DETR DEFORMABLE DETR: DEFORMABLE TRANSFORMERS FOR END-TO-END OBJECT DETECTION 参考&#xff1a;AI-杂货铺-Transformer跨界CV又一佳作&#xff01;Deformable DETR&#xff1a;超强的小目标检测算法&#xff01; 摘要 摘要部分&#xff0c;作者主要说明了如…

Datawhale AI夏令营 - 用户新增预测挑战赛 | 学习笔记

任务1&#xff1a;跑通Baseline # 1. 导入需要用到的相关库 # 导入 pandas 库&#xff0c;用于数据处理和分析 import pandas as pd # 导入 numpy 库&#xff0c;用于科学计算和多维数组操作 import numpy as np # 从 sklearn.tree 模块中导入 DecisionTreeClassifier 类 # De…

开源容灾备份软件,开源cdp备份软件

数据的安全性和完整性面临着硬件问题、黑客攻击、人为错误等各种威胁。在这种环境下&#xff0c;开源容灾备份软件应运而生&#xff0c;通过提供自动数据备份和恢复&#xff0c;有效地保证了公司的数据安全。 一、开源容灾备份软件的定义和作用 开源容灾备份软件是一种基于开源…

全流程R语言Meta分析核心技术教程

详情点击链接&#xff1a;全流程R语言Meta分析核心技术教程 一&#xff0c;Meta分析的选题与检索 1、Meta分析的选题与文献检索 1)什么是Meta分析&#xff1f; 2)Meta分析的选题策略 3)精确检索策略&#xff0c;如何检索全、检索准 4)文献的管理与清洗&#xff0c;如何制定文…

Django基础5——ORM中间程序

文章目录 一、基本了解二、ORM基本操作2.1 连接数据库2.1.1 使用sqlite数据库2.1.2 使用MySQL数据库 2.2 对数据库操作2.2.1 增&#xff08;前端数据——>数据库&#xff09;2.2.2 查&#xff08;数据库——>前端展示&#xff09;2.2.3 改&#xff08;修改数据&#xff0…

C# Winfrom通过COM接口访问和控制Excel应用程序,将Excel数据导入DataGridView

1.首先要创建xlsx文件 2.在Com中添加引用 3. 添加命名空间 using ApExcel Microsoft.Office.Interop.Excel; --这样起个名字方面后面写 4.样例 //点击操作excelDataTable dt new DataTable();string fileName "D:\desktop\tmp\test.xlsx";ApExcel.Application exA…

软件测试知识点总结(一)

文章目录 前言一. 什么是软件测试二. 软件测试和软件调试的区别三. 软件测试和研发的区别四. 优秀的测试人员所应该具备的素质总结 前言 在现实生活中的很多场景下&#xff0c;我们都会进行测试。 比如买件衣服&#xff0c;我们需要看衣服是不是穿着好看&#xff0c;衣服材质如…

pyton\yolov8安装和基础使用,训练和预测

首先到官网下载yolov8&#xff0c;官方的地址&#xff0c;下载好压缩包后&#xff0c;解压到pycharm打开&#xff0c;我个人使用的是pycharm&#xff0c;接下来也是在pycharm里操作的。&#xff08;专业版pycharm&#xff09; yolov8的官方文档有说明&#xff0c;必须要有的环境…

“深度学习”学习日记:Tensorflow实现VGG每一个卷积层的可视化

2023.8.19 深度学习的卷积对于初学者是非常抽象&#xff0c;当时在入门学习的时候直接劝退一大班人&#xff0c;还好我坚持了下来。可视化时用到的图片&#xff08;我们学校的一角&#xff01;&#xff01;&#xff01;&#xff09;以下展示了一个卷积和一次Relu的变化 作者使…

【C51 GPIO的原理和内部结构】

51单片机项目基础篇 中篇&#xff1a;介绍GPIO1、认识GPIO2、GPIO 结构框图与工作原理2.1、P0端口结构框图与工作原理2.1.1、剖析组成 P0 口的每个单元的作用2.1.2、 P0 口做为 I/O 口及地址/数据总线使用时的具体工作过程 2.2、P1 端口结构框图与工作原理2.3、P2 端口结构框图…