当前位置: 首页 > news >正文

【【萌新的SOC学习之AXI-DMA环路测试】】

萌新的SOC学习之AXI-DMA环路测试

AXI DMA环路测试
DMA(Direct Memory Access,直接存储器访问)是计算机科学中的一种内存访问技术。它允许某些计算机内部的硬件子系统可以独立地直接读写系统内存,而不需中央处理器(CPU)介入处理。DMA 是一种快速的数据传送方式,通常用来传送数据量较多的数据块,很多硬件系统会使用 DMA,包括硬盘控制器、绘图显卡、网卡和声卡,在使用高速 AD/DA 时使用 DMA 也是不错的选择。

DMA 是所有现代计算机的重要特色,它允许不同速度的硬件设备进行沟通,而不需要依于中央处理器的大量中断负载。否则,中央处理器需要从来源把每一片段的数据复制到寄存器,然后把它们再次写回到新的地方。在这个时间里,中央处理器就无法执行其它的任务。DMA 是用硬件实现存储器与存储器之间或存储器与 I/O 设备之间直接进行高速数据传输。使用 DMA时,CPU 向 DMA 控制器发出一个存储传输请求,这样当 DMA 控制器在传输的时候,CPU 执行其它操作,传输操作完成时 DMA 以中断的方式通知 CPU。

AXI DMA简介
AXI DMA提供了一个高性能的内存直接访问 在内存和AXI4-stream流 目标内存之间 。[提供了一个可选的(分散/聚集)的功能 可以将CPU从数据搬运中解救出来]

AXI DMA : AXI Direct Memory Access 直接内存访问
AXI DMA为内存和 AXI4-Stream外设之间提供了高带宽的直接内存访问
其可选的S/G 功能 可以将CPU从数据搬运任务中解放出来
在这里插入图片描述

为了发起传输事务,DMA 控制器必须得到以下数据:
• 源地址 — 数据被读出的地址
• 目的地址 — 数据被写入的地址
• 传输长度 — 应被传输的字节数

  1. 为了配置用 DMA 传输数据到存储器,处理器发出一条 DMA 命令
  2. DMA 控制器把数据从外设传输到存储器或从存储器到存储器,而让 CPU 腾出手来做其它操作。
  3. 数据传输完成后,向 CPU 发出一个中断来通知它 DMA 传输可以关闭了。ZYNQ 提供了两种 DMA,一种是集成在 PS 中的硬核 DMA,另一种是 PL 中使用的软核 AXI DMA IP。在 ARM CPU 设计的过程中,已经考虑到了大量数据搬移的情况,因此在 CPU 中自带了一个 DMA 控制器 DMAC,这个 DMAC 驻留在 PS 内,而且必须通过驻留在内存中的 DMA 指令编程,这些程序往往由CPU 准备,因此需要部分的 CPU 参与。DMAC 支持高达 8 个通道,所以多个 DMA 结构的核可以挂在单个DMAC 上。DMAC 与 PL 的连接是通过 AXI_GP 接口,这个接口最高支持到 32 位宽度,这也限制了这种模式下的传输速率,理论最高速率为 600MB/s。这种模式不占用 PL 资源,但需要对 DMA 指令编程,会增加软件的复杂性。
    AXI DMA 用到了三种总线,AXI4-Lite 用于对寄存器进行配置,AXI4 Memory Map 用于与内存交互,又分为 AXI4 Memory Map Read 和 AXI4 Memory Map Write 两个接口,一个是读一个是写。AXI4 Stream 接口用于对外设的读写,其中 AXI4 Stream Master(MM2S,Memory Map to Stream)用于对外设写,AXI4-Stream Slave(S2MM,Stream to Memory Map)用于对外设读。总之,在以后的使用中需要知道 AXI_MM2S 和AXI_S2MM 是存储器端映射的 AXI4 总线,提供对存储器(DDR3)的访问。AXIS_MM2S 和 AXIS_S2MM是 AXI4-streaming 总线,可以发送和接收连续的数据流,无需地址。AXI DMA 提供 3 种模式,分别是 Direct Register 模式、Scatter/Gather 模式和 Cyclic DMA 模式,这里我们简单的介绍下常用的 Direct Register 模式和 Scatter/Gather 模式。Direct Register DMA 模式也就是 Simple DMA。Direct Register 模式提供了一种配置,用于在 MM2S 和S2MM 通道上执行简单的 DMA 传输,这需要更少的 FPGA 资源。Simple DMA 允许应用程序在 DMA 和Device 之间定义单个事务。它有两个通道:一个从 DMA 到 Device,另一个从 Device 到 DMA。应用程序必须设置缓冲区地址和长度字段以启动相应通道中的传输。Scatter/Gather DMA 模式允许在单个 DMA 事务中将数据传输到多个存储区域或从多个存储区域传输数据。它相当于将多个 Simple DMA 请求链接在一起。SGDMA 允许应用程序在内存中定义事务列表,硬件将在应用程序没有进一步干预的情况下处理这些事务。在此期间,应用程序可以继续添加更多工作以保持硬件工作。用户可以通过轮询或中断来检查事务是否完成。SGDMA 处理整个数据包(被定义为表示消息的一系列数据字节)并允许将数据包分解为一个或多个事务。例如,采用以太网 IP 数据包,该数据包由 14 字节的报头后跟 1 个或多个字节的有效负载组成。使用 SGDMA,应用程序可以将 BD(Buffer Descriptor,用于描述事务的对象)指向报头,将另一个 BD 指向有效负载,然后将它们作为单个消息传输。这种策略可以使TCP / IP 堆栈更有效,它允许将数据包标头和数据保存在不同的内存区域,而不是将数据包组装成连续的内存块。

AXI DMA 通过 AXI4-lite接口对寄存器做一些配置和获取 。
MM2S : Memory Map to stream 存储器映射(AXI4-Full) 到 AXI4 - Stream
S2MM : Stream to MemoryMap AXI4-Stream 到存储器映射

对于IP核的设计
在这里插入图片描述

这个是整体的结构框图
在这里插入图片描述

(单一的DMA传输模式
这个模式是我们当前需要的模式 ,也就是(SG模式被disable的情况下的)
为了发起传输事务,DMA 控制器必须得到以下数据:
• 源地址 — 数据被读出的地址
• 目的地址 — 数据被写入的地址
• 传输长度 — 应被传输的字节数)
AXI DMA编程顺序
Direct Register Mode(简单DMA)
此模式提供了在MM2S 和 S2MM 通道上进行简单的DMA传输的配置 ,只需要较少的FPGA资源
我们可以通过访问 DMACR , 源地址 , 或者 目的 地址 和长度寄存器 发起 DMA传输 。当传输完成后,如果使能了产生中断输出, 那么DMASR寄存器相关联的通道位会有效。
对于复位时钟 必须至少保持16个s_axi_lite_aclk

看一下DMA的MM2S(存储器映射到Stream) 通道的启动顺序
1.把MM2S通道 打开
2.使能中断
3. 朝着MM2S_SA 寄存器中写一个有效的源地址 (如果AXI DMA 没有配置一个数据重对齐的选项的话 , 这个有效的地址必须进行对齐 否则会产生未定义的结果 ) (这里就是说如果在写地址的时候 DRE被使能了,那么就可以写成任意地址 。如果DRE没有被使能 ,那么只能写成4的倍数)
4. 朝着MM2S_LENGTH 寄存器写传输的字节数 (这个必须是最后一个进行配置,其他的没有顺序要求)
一个长度为0的值是无效的,一个非0 的值将会决定存储器映射到Stream流的数据个数 。

S2MM通道顺序
1.差不多

SG模式
它把传输的基本参数,存储在内存中;
这些参数被称为BD(Buffer Descriptor)
在工作时,通过SG接口加载和更新BD中的状态

axi 时钟的同步和异步的选择 并不是简单的通过对axi_dma进行配置 而是通过对外部的连线 完成时钟 假设连接在不同的时钟频率,就是异步了
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

一般用在传输非常少量数据的情况下
在这里插入图片描述

指派的数据位宽 也就是说2的多少次方
在这里插入图片描述

指定地址位宽
在这里插入图片描述

使能读 和 使能写
Memory Map Data Width 指的是 memory map 这一侧的数据位宽
Stream Data Width 值的是stream 流的数据位宽
最大突发大小 影响的AXI4
在这里插入图片描述

是否使能对齐 如果勾选 就可以任意给定 不勾选 就是4的倍数

AXI DMA环路实验
本章的实验任务是在领航者ZYNQ开发板上使用PL的AXI DMA IP核从DDR3 中 读取数据,并将数据写回到DDR3中
在这里插入图片描述

我们下面来观察整个设计的系统框图
在这里插入图片描述

上面的走向是数据流的走向
下面的走向是控制流的走向

我们可以不经过AXI4的外设 将两端的信号 连接在一起
在这里插入图片描述

我们需要通过 concat接口 将两个中断信号连接到一起

在这里插入图片描述

总体连接
在这里插入图片描述
在这里插入图片描述

在代码的第 14 行,我们重新宏定义了 XPAR_PS7_DDR_0_S_AXI_BASEADDR,即 DDR3 的基址,打开 XPAR_PS7_DDR_0_S_AXI_BASEADDR 的定义处,我们可以看到 DDR3 的基址为 0x00100000

相关文章:

【【萌新的SOC学习之AXI-DMA环路测试】】

萌新的SOC学习之AXI-DMA环路测试 AXI DMA环路测试 DMA(Direct Memory Access,直接存储器访问)是计算机科学中的一种内存访问技术。它允许某些计算机内部的硬件子系统可以独立地直接读写系统内存,而不需中央处理器(CPU)介入处理。…...

Lua教程

Lua教程(简单易懂)-CSDN博客 博客相关解释: 5、循环 a {"a", "b"}for i, v in ipairs(a) doprint(i, v)end 代码创建了一个名为 a 的数组,并使用 ipairs 迭代这个数组的元素。运行结果显示了每个元素的索引(下标&am…...

《Node.js+Express+MongoDB+Vue.js全栈开发实战》简介

今天介绍的这本书是《Node.jsExpressMongoDBVue.js全栈开发实战》。该书由清华大学出版社于2023年1月出版 外观 从书名故名思议,就是基于Node.jsExpressMongoDBVue.js来实现企业级应用全栈开发。 封面风格比较简约,插图是一张类似于罗马时代战车形象&…...

多输入多输出 | MATLAB实现CNN-BiGRU-Attention卷积神经网络-双向门控循环单元结合SE注意力机制的多输入多输出预测

多输入多输出 | MATLAB实现CNN-BiGRU-Attention卷积神经网络-双向门控循环单元结合SE注意力机制的多输入多输出预测 目录 多输入多输出 | MATLAB实现CNN-BiGRU-Attention卷积神经网络-双向门控循环单元结合SE注意力机制的多输入多输出预测预测效果基本介绍程序设计往期精彩参考…...

阿里云r7服务器内存型CPU采用

阿里云服务器ECS内存型r7实例是第七代内存型实例规格族,CPU采用第三代Intel Xeon可扩展处理器(Ice Lake),基频2.7 GHz,全核睿频3.5 GHz,计算性能稳定,CPU内存比1:8,2核16G起步&#…...

Godot2D角色导航-自动寻路教程(Godot设置导航代理的目标位置)

文章目录 创建导航NavigationAgent2D节点设置目标位置其他文章 创建导航 首先,创建一个基本的场景,下面的文章讲解了如何创建一个基本的导航场景,点击如下链接前往该文章: Godot2D角色导航-自动寻路教程 NavigationAgent2D节点 …...

R语言实现向量自回归和误差修正模型——附实战代码

大家好,我是带我去滑雪! 向量自回归(VAR)模型和误差修正模型(ECM)是时间序列分析中常用的两种模型,它们用于研究多个变量之间的动态关系。VAR 模型适用于研究多个相关变量之间的相互影响和动态关…...

原理:用UE5制作一个2D游戏

选中资产图片右键--Sprite Actions--Apply Paper2D Texture Settings 制作场景 把它丢到场景里,并把坐标归零 创建图块集tileset 打开新建的tile set,根据最小图块设置最小尺寸单元 选择需要的图块单元,add box 对新建的tile set右键创建til…...

【ARM 嵌入式 编译系列 11.3 -- GCC attribute packed noreturn constructor 介绍】

文章目录 GCC 的 __attribute__ 是一个编译器扩展特性,允许开发者在源代码中设置函数属性(function attributes)、变量属性(variable attributes)和类型属性(type attributes)。这些属性可以影响函数、变量或类型的行为。 以下是一些常见的 __attribute__ 属性: __at…...

主从Reactor高并发服务器

文章目录 Reactor模型的典型分类单Reactor单线程单Reactor多线程多Reactor多线程本项目中实现的主从Reactor One Thread One Loop各模型的优点与缺点 项目分解Reactor服务器模块BufferSocketChannelEpollerTimerWheelEventLoopAnyConnectionAcceptorLoopThreadLoopThreadPoolTc…...

文心一言Plugin实战来了,测试开发旅游攻略助手

刚刚过去的8月,百度WAVE SUMMIT 深度学习开发者大会上,重磅发布文心一言的五个原生插件:百度搜索、览卷文档(基于文档的交互)、E 言易图(数据洞察图表生成)、说图解画(基于图片的交互…...

微服务13-Seata的四种分布式事务模式

文章目录 XA模式实现XA模式 AT模式AT模式的脏写问题(对同数据并发写的问题)其他事务不获取全局锁的一个情况(AT模式写隔离的实现)实现AT模式 TCC模式TCC实现我们怎么样去判断是否空回滚和业务悬挂?业务分析 Saga模式总…...

C结构体内定义结构体,不能直接赋值。

现像: 如下代码: 头文件: typedef struct aBlinkGpioPinOutAbst_{void (*initAsOutput)(void);void (*high)(void);void (*low)(void); }aBlinkGpioPinOutAbst;typedef struct aBlinkGpioAbst_{ #if GPIO_CONFIG_PA0 GPIO_CONFIG_AS_OUTPU…...

PHP遇见错误了看不懂?这些错误提示你必须搞懂

🎬 鸽芷咕:个人主页 🔥 个人专栏:《速学数据结构》 《C语言进阶篇》 ⛺️生活的理想,就是为了理想的生活! 文章目录 一、错误分类二、系统错误:2.1 编译错误2.2 致命错误2.3 警告错误2.4 通知错误 三、用户错误3.1 错…...

微信小程序备案流程操作详解

1、2023年9月1号小程序开始必须备案了,各位小程序商城只需要按流程自主去微信小程序后台操作即可; 2、对未上架的微信小程序,从2023年9月1号开始需先备案才能上架; 3、对存量已上架的小程序,需在2024年3月31号前完成备案即可。逾期未完成备案,平台将按照备案相关规定于…...

【100天精通Python】Day70:Python可视化_绘制不同类型的雷达图,示例+代码

目录 1. 基本雷达图 2. 多组数据的雷达图 3 交互式雷达地图 4 动态雷达图 0 雷达图概述 雷达图(Radar Chart),也被称为蜘蛛图(Spider Chart)或星型图,是一种用于可视化多维数据的图表类型。雷达图通常由…...

KY258 日期累加

KY258 日期累加 int main() {int n 0; //样例个数cin >> n;//for循环处理n个样例for (int i 0; i < n; i){int y, m, d, num;int days[12] { 31,28,31,30,31,30,31,31,30,31,30,31 };//输入年月日 要加的天数cin >> y >> m >> d >>…...

基于CodeFormer实现图片模糊变清晰,去除马赛克等效果

前言 CodeFormer是一种基于AI技术深度学习的人脸复原模型&#xff0c;由南洋理工大学和商汤科技联合研究中心联合开发。该模型通过结合了VQGAN和Transformer等技术&#xff0c;可以通过提供模糊或马赛克图像来生成清晰的原始图像。可以实现老照片修复、照片马赛克修复、黑白照…...

Docker【部署 05】docker使用tensorflow-gpu安装及调用GPU踩坑记录

tensorflow-gpu安装及调用GPU踩坑记录 1.安装tensorflow-gpu2.Docker使用GPU2.1 Could not find cuda drivers2.2 was unable to find libcuda.so DSO2.3 Could not find TensorRT&&Cannot dlopen some GPU libraries2.4 Could not create cudnn handle: CUDNN_STATUS_…...

前后端分离中,前端请求和后端接收请求格式总结

get请求可以携带的参数 1&#xff09;前端&#xff1a;传统键值对(http:xx?a1&b1) <--> 后端&#xff1a;RequestParam("a") int a , RequestParam("b") int b 2&#xff09;前端&#xff1a;(http:xx/a/b) <--> 后端&#xff1a;Reque…...

pytorch的基本运算,是不是共享了内存,有没有维度变化

可以把PyTorch简单看成是Python的深度学习第三方库&#xff0c;在PyTorch中定义了适用于深度学习的基本数据结构——张量&#xff0c;以及张量的各类计算。其实也就相当于NumPy中定义的Array和对应的科学计算方法&#xff0c;正是这些基本数据类型和对应的方法函数&#xff0c;…...

Visual Studio 2022新建项目时没有ASP.NET项目

一、Visual Studio 2022新建项目时没有ASP.NET项目 1、打开VS开发工具&#xff0c;选择工具菜单&#xff0c;点击“获取工具和功能” 2、选择“ASP.NET和Web开发”和把其他项目模板&#xff08;早期版本&#xff09;勾选上安装即可...

nuiapp项目实战:导航栏动态切换效果实践案例树

测试软件的百忙之中去进行软件开发的工作&#xff0c;开展开发软件的工作事情&#xff0c;也真是繁忙至极点的了。 不到一刻钟的课程内容&#xff0c;个人用了三次去写串联的知识点&#xff0c;然后这是第三次&#xff0c;还是第四次了才完全写出来一个功能的效果。 一刻钟的功…...

【机器学习】集成学习(以随机森林为例)

文章目录 集成学习随机森林随机森林回归填补缺失值实例&#xff1a;随机森林在乳腺癌数据上的调参附录参数 集成学习 集成学习&#xff08;ensemble learning&#xff09;是时下非常流行的机器学习算法&#xff0c;它本身不是一个单独的机器学习算法&#xff0c;而是通过在数据…...

主机jvisualvm连接到tomcat服务器查看jvm状态

​使用JMX方式连接到tomcat&#xff0c;连接后能够查看前边的部分内容&#xff0c;但是不能查看Visual GC&#xff0c;显示不受此JVM支持&#xff0c; 对了&#xff0c;要显示Visual GC&#xff0c;首先要安装visualvm工具&#xff0c;具体安装方式就是根据自己的jdk版本下载…...

uniapp 自定义tabbar页面不刷新

最近在做自定义tabbar时&#xff0c;每次切换页面都要刷新&#xff0c;页面渲染很慢&#xff0c;需要实现切换页面不刷新问题。 结局思路&#xff0c;原生的tabbar切换页面时就不选新&#xff0c;用switchTab来跳转 1.pages.json中配置tabbar&#xff0c;如下,设置高度为0&am…...

3.1 SQL概述

思维导图&#xff1a; 前言&#xff1a; 前言笔记&#xff1a;第3章 关系数据库标准语言SQL - **SQL的定义**&#xff1a; - 关系数据库的标准和通用语言。 - 功能强大&#xff0c;不仅限于查询。 - 功能覆盖&#xff1a;数据库模式创建、数据插入/修改、数据库安全性与…...

xray安装与bp组合使用-被动扫描

xray安装与bp组合使用-被动扫描 文章目录 xray安装与bp组合使用-被动扫描1 工具官方文档&#xff1a;2 xray官网3 工具使用4 使用指令说明5 此为设置被动扫描6 被动扫描-启动成功7 启动bp7.1 设置bp的上层代理7.2 添加上层代理7777 --》指向的是xray7.3 上层代理设置好后&#…...

Java 中Maven 和 ANT

Java 中Maven 和 ANT Maven 和 Ant 都是用于构建和管理Java项目的工具&#xff0c;但它们在设计和功能上有一些重要的区别。以下是关于 Maven 和 Ant 的区别、优缺点以及它们的作用&#xff0c;以及示例说明&#xff1a; Maven&#xff1a; 设计理念&#xff1a; Maven 是基于…...

Flutter通过Pigeon插件与Android同步异步交互

Flutter 调用原生&#xff08;Android&#xff09;方法以及数据传输_flutter调用原生sdk_TDSSS的博客-CSDN博客 https://www.cnblogs.com/baiqiantao/p/16340272.html 可以同时参考这两篇文章...

GTW验厂是什么?GTW验厂评级分类

【GTW验厂是什么&#xff1f;GTW验厂评级分类】 GTW验厂是什么&#xff1f; 全称叫GreenToWear。是为了集合所有环境和产品健康方面的要求&#xff0c;Inditex集团开发的可持续发展准则&#xff08;简称GTW&#xff09;此准则适用于Inditex集 及其供应链中所包含的湿加工厂&…...

CVE-2017-12615 Tomcat远程命令执行漏洞

漏洞简介 2017年9月19日&#xff0c;Apache Tomcat官方确认并修复了两个高危漏洞&#xff0c;漏洞CVE编号&#xff1a;CVE-2017-12615和CVE-2017-12616&#xff0c;其中 远程代码执行漏洞&#xff08;CVE-2017-12615&#xff09; 当 Tomcat 运行在 Windows 主机上&#xff0c;…...

灿芯股份将上会:计划募资6亿元,董事长、总经理均为外籍

10月11日&#xff0c;上海证券交易所披露的信息显示&#xff0c;灿芯半导体&#xff08;上海&#xff09;股份有限公司&#xff08;下称“灿芯股份”&#xff09;将于10月18日接受上市审核委员会审议会议的现场审议。目前&#xff0c;该公司已递交了招股书&#xff08;上会稿&a…...

Spring Cloud Gateway 搭建网关

新建一个module添加依赖&#xff1a; <!--Spring Cloud Gateway依赖--> <dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-gateway</artifactId> </dependency><!-- nacos客户端依赖…...

ETL数据转换方式有哪些

ETL数据转换方式有哪些 ETL&#xff08;Extract&#xff0c; Transform&#xff0c; Load&#xff09;是一种常用的数据处理方式&#xff0c;用于从源系统中提取数据&#xff0c;进行转换&#xff0c;并加载到目标系统中。 数据清洗&#xff08;Data Cleaning&#xff09;&am…...

CVE-2017-15715 apache换行解析文件上传漏洞

影响范围 httpd 2.4.0~2.4.29 复现环境 vulhub/httpd/CVE-2017-15715 docker-compose 漏洞原理 在apache2的配置文件&#xff1a; /etc/apache2/conf-available/docker-php.conf 中&#xff0c;php的文件匹配以正则形式表达 ".php$"的正则匹配模式意味着以.ph…...

振弦采集仪应用水坝安全监测的方案

振弦采集仪应用水坝安全监测的方案 随着工业化和城市化的快速发展&#xff0c;水资源的开发和利用越来越广泛。由于水坝在水利工程中起着至关重要的作用&#xff0c;因此对水坝进行安全监测变得越来越必要。为了实现对水坝的安全监测&#xff0c;振弦采集仪可以作为一种有效的…...

【Java】查找jdk步骤

需求描述 解决方法 第一步 第二步 第三步 第四步 参考文章...

【mysql】Mysql自定义变量 @rownum使用

Mysql自定义变量 rownum 这个可以赋值&#xff1f;这是初始化&#xff1f; 先看表结构 有五条数据。执行前半段语句发现。rownum的起始值等于行数 这里from后面可以加person与 r这连个组成 如果这里的rownum打错了呢。发现这个变量就没有初始值。 可见&#xff0c;没有必要…...

命令行启动android模拟器

有时候不想打开android studio就能方便的启动模拟器&#xff0c;探索一番后发现可以通过命令行来启动&#xff0c;方便快捷。 环境准备 首先安装好android studio&#xff0c;android sdk&#xff0c;从android studio中安装好模拟器。 命令启动 如果直接在终端输入emulato…...

Three.js如何计算3DObject的2D包围框?

推荐&#xff1a;用 NSDT编辑器 快速搭建可编程3D场景 在Three.js应用开发中&#xff0c;有时你可能需要为3D场景中的网格绘制2D的包围框&#xff0c;应该怎么做&#xff1f; 朴素的想法是把网格的3D包围框投影到屏幕空间&#xff0c;例如&#xff0c;下图中的绿色框 3D包围框…...

【LeetCode热题100】--347.前K个高频元素

347.前K个高频元素 方法&#xff1a;堆 首先遍历整个数组&#xff0c;并使用哈希表记录每个数字出现的次数&#xff0c;并形成一个「出现次数数组」。找出原数组的前 k 个高频元素&#xff0c;就相当于找出「出现次数数组」的前 k 大的值 利用堆的思想&#xff1a;建立一个小…...

解决服务器80端口无法连接的办法

云服务器是现代企业建立应用程序和存储数据的理想选择。但是在使用云服务器的过程中&#xff0c;会遇到80端口无法连接的问题。这个问题可能会导致网站无法正常运行&#xff0c;从而给企业带来负面影响。因此&#xff0c;在这篇文章中&#xff0c;我们将探讨如何解决云服务器80…...

040:mapboxGL鼠标hover更换选中feature颜色

第040个 点击查看专栏目录 本示例的目的是介绍演示如何在vue+mapbox中通过鼠标hover的方式来更换选中feature颜色。这里面利用了mousemove和mouseleave的方法,通过选中图层的feature,来设置hover的true或者false,从而通过opacity的case状态来判断透明度用哪一个值。 直接复…...

【C++心愿便利店】No.8---C++之重识类和对象

文章目录 前言一、再谈构造函数二、static成员三、友元四、内部类五、匿名对象六、再次理解类和对象 前言 &#x1f467;个人主页&#xff1a;小沈YO. &#x1f61a;小编介绍&#xff1a;欢迎来到我的乱七八糟小星球&#x1f31d; &#x1f4cb;专栏&#xff1a;C 心愿便利店 &…...

【AI视野·今日NLP 自然语言处理论文速览 第五十二期】Wed, 11 Oct 2023

AI视野今日CS.NLP 自然语言处理论文速览 Wed, 11 Oct 2023 Totally 81 papers &#x1f449;上期速览✈更多精彩请移步主页 Daily Computation and Language Papers LongLLMLingua: Accelerating and Enhancing LLMs in Long Context Scenarios via Prompt Compression Author…...

优雅而高效的JavaScript——模板字面量

&#x1f928;博主&#xff1a;小猫娃来啦 &#x1f928;文章核心&#xff1a;优雅而高效的JavaScript——模板字面量 文章目录 什么是模板字面量使用模板字面量插入变量处理多文本模板字面量的高级应用标签模板字量自定义模板字面量函数 常见应用场景拼接字符串HTML模板SQL查询…...

Python一步到位实现图像转PDF自动化处理详解

什么是 img2pdf 库&#xff1f; img2pdf 是一个 Python 库&#xff0c;它可以让你轻松地把多张图像转换为 PDF 文件。它支持多种图像格式&#xff0c;如 JPG, PNG, GIF, BMP 等&#xff0c;并且可以自动调整图像的大小和方向&#xff0c;以适应 PDF 的页面大小和方向。它还可以…...

基于IDEA集成环境---Nacos安装

Nacos服务器是独立安装部署的&#xff0c;因此我们需要下载最新的Nacos服务端程序&#xff0c;下载地址&#xff1a;https://github.com/alibaba/nacos。 将文件进行解压&#xff0c;得到以下内容&#xff1a; 直接将其拖入到项目文件夹下&#xff0c;便于我们一会在IDEA内部…...

使用 puppeteer 加载 html 文件来运行 js 文件

遇到一个需求, 在浏览器环境下来运行 js sdk 文件, 这个 js 文件是不能运行在 nodejs 环境下的; 所以通过 puppeteer 无头浏览器来运行代码获取对应的结果。 首先是安装插件 puppeteer&#xff0c;然后创建一个项目, 我这里是express&#xff1b; 这里是主要的代码。 const p…...