使用VVD2013

Android出海实战:使用Google SMSRetrieverAPI 实现短信自动回填 众所周知,登录注册界面实现短信自动回填是优化用户体验的重要手段,如果我们有RECEIVE_SMS权限,可以通过自定义BroadcastReceiver监听Action(com.google.android.gms.auth.api.phone.SMS_RETRIEVED)来实现短信自动回填功能。但是,com.google.android.gms.auth.api.phone.permission.SEND权限设置在Google Play服务 19.8.31或更高版本中可用。回归正题,开始实现此功能。 阅读详情

APP(1171)

1,下载并安装VVD2013.3。

2,下载并解压1171设计文件。

3,找到目录:C:\Users\admin\AppData\Roaming\Xilinx\Vivado

4,如果目录中有类似project_1这种文件夹,备份好后删除掉。

5,把解压好的1171中 - kintexSubsystemFiles子目录复制过来。

6,开始菜单,运行TCL命令行;运行vivado -sourcee:/kintexsubsystemfiles/kintexgenerationscript.tcl

7,等待VVD启动,并生成SubSystem设计;也可以使用默认配置,直接生成BIT文件。


APP中包含的演示内容:

1,从Script生成VVD SubSystem 框图

2,PCIe Endpoint 配置

3,DMA通过PCIe的传输

4,动态地址映射 

5,DMA(SG)操作。


Overview

主要用到AXI_CDMA, AXI_PCI Express,AXI Internonnect等IP。用BRAM临时存储DMA传输时用到的address translation vectors。


AXI_Interconnect Address Map

AXI PortInstanceBase AddressHigh AddressSize
AXI_DDR3_MENMIG0x0000 00000x7FFF FFFF2GB
AXI_PCIe_DMaxi_pcie_1 AXI:BAR10x8000 00000x807F FFFF8MB
AXI_PCIe_SGaxi_pcie_1 AXI:BAR00x8080 00000x80FF FFFF8MB
Translation_BRAMtranslation_bram0x8100 80000x8100 0FFF32KB
AXI_PCIe_CTLaxi_pcie_10x8100 80000x8100 BFFF16KB
AXI_CDMA_LITEaxi_cdma_10x8100 C0000x8100 FFFF16KB


PCIe to AXIBar Config Address

从host接收PCIe downstream 

PCIe BAR0一共64KB,对应上面表中后3项:BRAM,AXI_PCIe_CTL,AXI_CDMA_LITE。

PCIe BARInterfacePCIe BAR Offset From Base AddressAXI AddressSize
0Translation_BRAM0x0000 00000x8100 0FFF32KB
0AXI_PCIe_CTL0x0000 80000x8100 BFFF16KB
0AXI_CDMA_LITE0x0000 C0000x8100 FFFF16KB
要在PC端访问指定寄存器,需要遵循下面原则:

<BAR0 Base Address> + < Offset of specified Interface > + < Register Offset in Interface>


例:假设BAR0在PC端映射的地址为:0x0000 0000_DEF0 0000

BRAM 0x0D10对应:0x0000 0000_DEF0 0D10

AXI_PCIe_CTL 0x20C 对应:0x0000 0000_DEF0 820C

AXI_CMDA_LITE 0x0004对应:0x0000 0000_DEF0 C004


PCIe AXI Master端不需要读写AXI_PCIe_SG, AXI_PCIe_DM, AXI_DDR3_MEM,因为DMA会读写到AXI Slave。

根据实际应用,还可以添加最多2个PCie BAR。


AXI to PCIe Bar Config Address

产生PCIe upstream到host

AXI BAR有2个: 

AXI BAR0 - 8MB, [SG]DMA (AXI_PCIe_SG port),通过这port, DMA读取、处理PC端的descriptors。

AXI BAR1 - 8MB, Data Mover (AXI_PCIe_DM port),通过这个port,DMA读写PCIe数据。

CDMA IP的最大传输数据量为8M。 


AXI BAR可以做64bit动态地址翻译,默认对应关系为:

AXI BARAXI AddressHost PCIe Address
BAR00x8080 00000x0000 0000_A000 0000
BAR10x8000 00000x0000 0000_C000 0000

这个对应关系可以在AXI_PCIe_CTL (0x8100 8000)中的相应寄存器中更改:

OffsetBitsRegister NameDescriptionDefault Value
0x20831:0AXI BAR 2 PCIe BAR 0_UAXI BAR0 Upper Address for AXI_PCIe_SG.
Host Address [63:32]
0x0000 0000
0x20C31:0AXI BAR 2 PCIe BAR 0_LAXI BAR0 Lower Address for AXI_PCIe_SG.
Host Address [31:0]
0xA000 0000
0x21031:0AXI BAR 2 PCIe BAR 1_UAXI BAR1 Upper Address for AXi_PCIe_DM.
Host Address [63:32]
0x0000 0000
0x21431:0AXI BAR 2 PCIe BAR 1_LAXI BAR1 Lower Address for AXi_PCIe_DM.
Host Address [31:0]
0xC000 0000
收到AXI BAR地址宽度限制,因为AXI_PCIe_SG,AXI_PCIe_DM 配置成了8MB地址空间,所以上面Lower Address中Bits[22:0]应该都是0。

根据实际应用,可以再添加最多4个AXI BAR。


Scatter Gather DMA

[SG]DMA是一种自动化的DMA,它使用transfer descriptors,其中包含预先定义好的一系列指令;由PCIe host通过驱动和软件把一系列指令写入内存驻留数据结构。这些指令被组织成descriptor chain,其中每一个descriptor都描述一个单独的数据传输并包含一个指向下一个descripitor的指针。整个chain中的最后一个descriptor一般指向第一个descriptor。


Scatter Gather Transfer Decriptor Difition

descriptor 由8个32bit组成,共32Byte;必须64Byte对齐。相对于系统内存中Transfer Descriptor的起始地址,Descriptor的offset只能是0x00,0x40,0x80,0xC0。


Address OffsetRegister NameBitField NameDescription
0x00Next Descriptor Ptr31:6Next Descriptor Ptr指向下一个Descriptor首字节的指针。
必须是64Byte对齐的:0x00、0x40、0x80、0xC0。
该指针是从AXI_PCIe_SG 开始,经AXI PCIe映射到host地址空间的的Offset。
  5:0Reserved000000
确保指针是64Byte对齐的。
0x04Reserved   
0x08Source Address31:0SADMA传输,读取数据的起始地址。
0x0CReserved   
0x10Destination Address31:0DADMA传输,写入数据的起始地址。
由于DMA被配置成64bit数据位宽,DA地址的最后3位需要与SA的最后3位相同。
0x14Reserved   
0x18Transfer Cotrol31:23Reserced 
  22:0Bytes To Transfer
(BTT)
需要做DMA传输的字节数:1-0x007F FFFF。
设置为0会引起DMA内部错误。
0x0CTransfer Status31Transfer Complete0:Descriptor没有执行完,Host不能更改寄存器。
1:Descriptor已经执行完,Host可以更改寄存器。
  30DMA Decode Error0:No Errors
1:AXI Decode Error - Data Mover发现没有被映射到Slave Device。
  29DMA Slave Error0:No Errors
1:CDMA Data Mover在read/write时发现Slave Device有错误。
  28DMA Internal Error0:No Errors
1:CDMA Data Mover内部错误或者BTT被设为0。
  27:0Reserved 

Host驱动应该确保Transfer Status设置为0000;并且在该次Descriptor完成之前,不更改Transfer Status中的值;当AXI CDMA引擎完成操作以后,会主动更新Transfer Status中的值,供Host驱动查询。

Host驱动需要Relocate上面设置,并清空Transfer Status,为进行下一次DMA做准备。


在本例SubSystem中,使用了2类Descriptor:

Address Translation Description Descriptor 和 Target Data Transfer Descriptor

Descriptor 使用的 Address 必须是AXI Interconnector 映射的地址,而不是Host中的地址空间!


Address Translation Description Descriptor 通过写AXI_PCIe_CTL 来Update AXI to PCIe Translation Vector。其中包括:

1. Source Address:对应于BRAM中 (0x8100 0000 - 0x8100 7FFF)

2. Destination Address:对应AXI_PCIe_CTL (AXI: BAR1)寄存器(0x8100 8210 和 0x8100 8214)

3. Control Value:一个8Byte的数据传输 (0x0000 0008)

工作时,DMA引擎把8ByteTranslation Vector从Translation BRAM 复制到 Translation Registors (可通过AXI_PCIe_CTL访问)。

在Descriptor被执行前,必须update  Translation Vector 和 Block RAM;错误的设置可能导致获取非法内存地址。


Target Data Transfer Descriptor用于PCIe和目标设备(本例中DDR3)之间的数据传输。

1. SA和DA地址可以是:AXI_PCIe_DM(0x8000 0000)或者DDR3(0x0000 0000)

2. DMA Controller寄存器可以是: 1 - 0x007F FFFF

工作时,Descriptor在PCIe和DDR3之间进行数据传输。

在Descriptor被执行前,必须update PCIe Translation Vector。可以直接Update,也可以通过Address Translation Descriptor。


Scatter Gather DMA Operation

以下过程使用了一个descriptor chain,来实现(SG)DMA操作流程。

1. 设置DMA模式为SG;Enable中断。

   写AXI_CDMA_LITE寄存器(AXI 0x8100 C000 或者 PCIe:BAR0 offset 0x0000 C000)

2. 在Host内存中创建Descriptor Chain。

   需要包括:Address Translation Descriptor 和 Target Data Transfer Descriptor

3. Update AXI_PCIe_SG port 的 PCIe Translation Vector。

   写AXI:BARO translation 寄存器,

     位于AXI 0x8100 8208 -  0x8100 820C (AXI_PCIe_CTL port ) 或者PCIe:BAR0 offset 0x0000 8208 - 0x0000 820C。

   写入这些寄存器的值,应该与之前在Host内存中建立Descriptor Chain 的 8MB Memory Base Address 一致。

4. 向 Translation BRAM 写入 Translation Vector。

   BRAM 地址:AXI 0x8100 0000 - 0x8100 7FFF 或者 PCIe:BAR0 offset 0x0000 0000 - 0x0000 7FFF。

   写入BRAM的值,应该与Host内存中(需要DMA引擎进行传输之数据)的8MB Memory 一致。

5. 向 DMA_CURDESC_PNTR 寄存器写入 pointer

   DMA_CURDESC_PNTR地址:AXI 0x8100 C0008 或者 PCIe:BAR0 offset 0x0000 0008。

6. 向 DMA_TAILDESC_PNTR 寄存器写入 pointer

   DMA_TAILDESC_PNTR 地址:AXI 0c8100 C010 或者 PCIe:BAR0 offset 0x0000 C010。

   写入Tail Desc Pointer以后,DMA 启动,开始处理Descriptors。

7. DMA SG 工作中,直至 DMA_TAILDESC_PNTR 或者 是之前已经完成的descriptor。


下面是操作实例:把64KB数据从PCIe写入DDR,再从DDR读回PCIe

1. 设置DMA模式为SG;Enable中断。

   32bit Write 0x0A000100 到 PCIe:BAR0 offset 00000 000C。


2. Description Chain

   PCIe Address Translation for AXI_PCIe_SG:0x0000 0001 0000 0000

   PCIe Address Translation for ACI_PCIe_DM:Set Dynamically by Descriptors 1 and 3

Descriptor1Descriptor2Descriptor3Descriptor4
Address:
0x0000 0001 0000 0000
Address::
0x0000 0001 0000 0040
Address:
 0x0000 0001 0000 0080
Address:
0x0000 0001 0000 00C0
NEXTDESC_PNTR:
0x0000 0001 0000 0040
NEXTDESC_PNTR:
0x0000 0001 0000 0080
NEXTDESC_PNTR:
0x0000 0001 0000 00C0
NEXTDESC_PNTR:
0x0000 0001 0000 0000
SA:0x8100 0000 (Translation BRAM)SA:0x8000 0000 (AXI_PCIe_DM)SA:0x8100 0008 (Translation BRAM)SA:0x8100 0000 (DDR)
DA:0x8100 8210 (AXI_PCIe_CTL)DA:0x0010 0000 (DDR)DA:0x8100 8210 (AXI_PCIe_CTL)DA:0x8011 0000 (AXI_PCIe_DM)
Control:
0x0000 0008 (64bit transfer)
Control:
0x0001 0008 (64bit transfer)
Control:
0x0000 0008 (64bit transfer)
Control:
0x0001 0008 (64bit transfer)
Status:
0x0000 0000 (Not Proceed)
Status:
0x0000 0000 (Not Proceed)
Status:
0x0000 0000 (Not Proceed)
Status:
0x0000 0000 (Not Proceed)
Translation DescriptorTarget Data Transfer DescriptorTranslation DescriptorTarget Data Transfer Descriptor

 3. Update AXI_PCIe_SG port 的 PCIe Translation Vector。

   64bit Write 0x0000 0001 0000 0000 到 AXI_PCIe_SG @ PCIe:Bar0 offset 0x0000 8208 。


4. 向 Translation BRAM 写入 Translation Vector。

   a. 64bit Write 0x0000 CCC0 C000 0000 到 PCIe:BAR0 offset 0x0000 0000;在descriptor1 和 descriptor2 之间update。

   b. 64bit Write 0x0000 DDD0 D000 0000 到 PCIe:BAR0 offset 0x0000 0008;在descriptor3 和 descriptor4 之间update。


5. 向 DMA_CURDESC_PNTR 寄存器写入 pointer

   32bit Write 0x8080 0000 到 DMA_CURDESC_PNTR @ PCIe:BAR0 offset 0x0000 0000 0000 C008。

   pointer = AXI_PCIe_SG Base Address + [Host] Descriptor Offset From 0x0000 0001 0000 0000 (step2 中的地址)。


6. 向 DMA_TAILDESC_PNTR 寄存器写入 pointer

   32bit Write 0x8080 00C0 到 DMA_TAILDESC_PNTR @ PCIe:BAR0 offset 0x0000 0000 0000 C010。

   pointer = AXI_PCIe_SG Base Address + [Host] Descriptor Offset From 0x0000 0001 0000 0000 (step2 中的地址)。

   这时,DMA启动


7. DMA 继续工作,直到 DMA_TAILDESC_PNTR @ 0x0000 0001 0000 00C0 执行完。


注:

在descriptor 1、2 操作过程中,不能更改descriptor 3、4

当descriptor 1、2 完成操作,而descriptor 3、4 还在执行过程中,可以reallocate descriptor 1、2 从而实现 Continous DMA


使用Vivado对PCIe IP配置的详细步骤 使用Vivado对PCIe IP配置的详细步骤,图文解说。。。。 立即下载

相关推荐

SVPWM原理与MCU/FPGA实现:从数学推导到工程实战

空间矢量调制(SVPWM)是实现高性能电机驱动控制的核心算法之一,其通过六个基本电压矢量与零矢量的伏秒平衡,在一个PWM周期内合成任意方向的旋转电压圆,相比传统SPWM可提升约15%的直流电压利用率。该技术不仅涉及扇区判断、作用时间计算、过调制限幅等数学原理,还在MCU与FPGA两种硬件平台上有不同的工程实现路径,包括中心对齐PWM配置、死区插入、定点数流水线设计等。在电动工具、无人机、机器人及车载执行器等电池供电场景中,SVPWM直接决定续航与扭矩表现。本文从数学原理出发,详细拆解MCU和FPGA实现细节

weixin_34265814的博客 301

PCI BAR寄存器详解(二 实例讲解)

前言 下面以一个实际项目,讲解 PCI 驱动程序和 BAR 空间的相关操作函数。 一、驱动程序加载与卸载 static const struct pci_device_id pci_ids[] = { { PCI_DEVICE(0x1DED, 0x1020), }, {0,} }; MODULE_DEVICE_TABLE(pci, pci_ids); static struct pci_driver pci_driver = { .name = DRV_NAME, .id_table = p

weixin_42109053的博客 4796

BERTopic安装指南:hdbscan依赖问题全解析(附解决方案)

本文详细解析了安装BERTopic时常见的hdbscan依赖报错问题,深入剖析了C++编译环境缺失、Python版本兼容性以及包管理渠道混用三大核心原因。针对Windows、macOS和Linux不同系统,提供了创建虚拟环境、使用conda安装预编译包、安装C++编译工具等具体解决方案,帮助用户顺利安装BERTopic并开始文本主题建模实践。

weixin_29061041的博客 213

dota2模型导入到3dsmax(转)

转自:http://dota2.17173.com/news/09292012/092041255.shtml 1.以剑圣为例,模型(.MDL .VTX和.VVD文件)在Dota 2下面的models/heroes/juggernaut文件夹下,贴图(.VTF和.VMT)在materials/modes/heroes/juggernaut. 先把模型文件夹下的所有后缀里有dx90的改成dx80,再

Mage的专栏 2394

Python爬虫实战:5分钟抓取东方财富股票数据并保存为CSV

在投资分析与量化研究的日常工作中,获取结构化、可用的金融数据往往是第一步。对于个人投资者和量化入门者而言,如何高效获取A股全市场行情,常常面临网页动态加载、反爬机制与数据整理繁琐等挑战。本文从数据采集的基础概念出发,介绍如何利用Python这一通用编程语言,通过requests库请求财经网站公开的HTTP接口,获取返回的JSON数据,再借助pandas进行字段映射、数据清洗与表格化处理。这种方式相比传统页面解析具有响应快、结构稳定、易于批量操作的显著优势,尤其适合构建个人股票数据池、验证选股策略或进行市场情

weixin_33146151的博客 251

大模型抽取知识图谱三元组的可行性分析

通过结合传统信息抽取模型与大语言模型的混合架构,可高效完成从学术文献到知识图谱三元组的全流程构建。分阶段优化:传统模型负责粗粒度抽取,大模型负责细粒度修正。灵活提示设计:通过少样本学习引导大模型理解领域本体。严格质量控制:结合规则引擎和人工校验,确保三元组准确性。该方案可显著提升知识图谱构建效率,适用于学术研究、企业知识库等场景。

qq_20647053的博客 1066

【SFM模型】关于表情、滑块与形态键

今天来讲一下如何为模型添加形态键、表情控制滑块 1、首先呢我们先把模型拆包拆成smd格式文件 这里拿王者荣耀的瑶举个例子 先找到你的mdl模型 亲爱的朋友请你注意:mdl文件必须要和同名字vtx、vvd文件放在一起才行! 然后打开Crowbar软件进行decpile啊啊啊啊 解包后会出现以下文件 2、导入blender! 这里的blender选用的是279版本,目前steam已经280版本了,...

NUA努努的博客 3109

【如何利用扩展卡尔曼滤波解决跟踪毫米波雷达目标】

笛卡尔坐标系(非极坐标系):使用两个垂直的轴(通常是x轴和y轴)来确定一个点的位置。你沿着这两个轴移动确定的距离来找到这个点。极坐标系:使用一个角度和一个距离来确定一个点的位置。首先,你转到一个特定的方向(角度),然后沿着那个方向移动确定的距离来找到这个点。希望这个例子能帮助你理解两种坐标系的基本概念!

小秋 AI SLAM 入门实战教程 885

SwiftVVD 项目教程

SwiftVVD 项目教程 1. 项目的目录结构及介绍 SwiftVVD 是一个跨平台的 Swift 3D 游戏引擎,其目录结构如下: SwiftVVD/ ├── devcontainer/ ├── Sources/ │ ├── SupportPackages/ │ └── VVDTests/ ├── Tests/ │ └── VVDTests/ ├── .gitattributes ...

gitblog_00367的博客 335

STM32驱动HC-SR04超声波模块

本篇文章将带大家使用HAL库驱动HC-SR04超声波模块。超声波模块作为智能小车必备的模块,要学习智能小车的同学是必须掌握好这个模块的使用的。HC-SR04是一种常用的超声波传感器模块,也被称为超声波测距模块,广泛应用于各种自动化控制和测距系统中。它通常由超声波发射器、接收器、控制电路和外壳组成,可以实现非接触式的距离测量。下面是HC-SR04超声波模块的一些特性和技术参数:距离测量范围:2cm ~ 400cm(可调)。测量精度:0.3cm。工作电压:DC 5V。工作电流:15mA。

m0_49476241的博客 7684

零基础教你学RDMA驱动开发:从入门到精通--第6章 内存管理与DMA映射​6.2 DMA地址转换:内核dma_map_single()与硬件IOVA(I/O虚拟地址)​

本文深入探讨RDMA驱动中DMA地址转换机制,重点分析内核dma_map_single()函数与硬件IOVA的作用。主要内容包括:1)DMA地址转换的必要性,解决CPU虚拟地址与HCA设备DMA地址的空间割裂问题;2)内核DMA映射机制实现原理,涵盖无IOMMU(直接物理地址映射)和有IOMMU(IOVA转换)两种场景;3)硬件IOVA的工作流程及其与RDMA内存注册的结合;4)RDMA驱动开发中的关键问题,如缓存一致性、映射方向错误、IOVA泄漏等;5)以mlx5驱动为例的实践分析。文章强调DMA地址转换

xiaoheshang_123的博客 239

VIVADO时序分析练习

VIVADO时序分析练习 时序分析在FPGA设计中是分析工程很重要的手段,时序分析的原理和相关的公式小编在这里不再介绍,这篇文章是小编在练习VIVADO软件时序分析的笔记,小编这里使用的是18.1版本的VIVADO。 这次的练习选择的是ZYNQ的芯片,原本工程是工作在100MHz的时钟,但是作为练习,我们可以把时钟调到一个极限的程度来进行优化。 首先,打开一个工程,更改一下时钟频率,使得工程能够有...

weixin_30254435的博客 1209

Python全栈入门到实战【基础篇 22】生成器与迭代器:底层逻辑与实战场景

Python迭代器与生成器:惰性求值的高效实践 摘要:本文深入解析Python中迭代器和生成器的核心机制与应用场景。迭代器通过实现__iter__()和__next__()方法实现惰性求值,适合处理大数据集和无限序列。生成器作为迭代器的简化实现,通过yield关键字自动实现迭代器协议,代码更简洁。文章详细对比了可迭代对象与迭代器的区别,演示了自定义迭代器和生成器函数的实现方式,并介绍了生成器表达式这一高效替代列表推导式的方案。通过斐波那契数列等实例,展示了惰性求值在内存优化方面的优势,以及生成器在流式数据处

那些看似不起波澜的日复一日,会在某天让你看到坚持的意义 3262

Swift-VVD:跨平台游戏引擎的新星

Swift-VVD:跨平台游戏引擎的新星 项目介绍 Swift-VVD是一款专为Swift编程语言设计的跨平台游戏引擎。它不仅支持高性能的图形处理,还集成了物理引擎和音频系统,同时提供了一个类似于SwiftUI的声明式UI框架。Swift-VVD的目标是为开发者提供一个强大且易于使用的工具,帮助他们在多个平台上创建高质量的游戏和应用。 项目技术分析 图形处理 Swift-VVD采用了Vulkan和...

gitblog_00436的博客 519

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

vvd

void CompressiveTracker::processFrame(Mat& _frame, Rect& _objectBox) { // predict sampleRect(_frame, _objectBox, rSearchWindow,detectBox); integral(_frame, imageIntegral, CV_32F); getFeatureV

wsc36305的专栏 662

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

VVDocument Xcode7 安装方法

升级xcode后vvd失效 是因为苹果要求加入UUID证书从而保证插件的稳定性。因此Xcode版本更新之后需要在VVDocumenter-Xcode的Info.plist文件中添加Xcode的UUID 获取uuid方法:终端中输入: defaults read /Applications/Xcode.app/Contents/Info DVTPlugInCompatibilityUUI

tr2e的博客 702

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

论文2笔记

论文2笔记 《开源软件漏洞库综述》 现状 当今的软件开发者在使用开源代码时,往往忽略了其安全性问题,现有的漏洞版本控制方案和开源代码的版本控制方案之间存在一定的差异,导致漏洞无法及时修复。 问题1:版本控制方案是什么?作用是什么? 1.在开发中,必须允许可以很容易对产品的版本进行任意回滚,版本控制工具实现这个功能的原理简单来讲,就是你每修改一次代码,它就帮你做一次快照。 2.能确保一直存储最新的代码库,所有人的代码应该和最新的代码库保持一致。 当前使用开源代码的误区: 1.开源软件不是很安全.许多攻击者

Super_FROG的博客 577

文华财经指标公式博易大师软件指标公式

VVD:=MA(CLOSE,80)-MA(CLOSE,10)/3; VA7:=3*SMA((CLOSE-LLV(LOW,27))/(HHV(HIGH,27)-LLV(LOW,27))*100,5,1)-2*SMA(SMA((CLOSE-LLV(LOW,27))/(HHV(HIGH,27)-LLV(LOW,27))*100,5,1),3,1); X1:=CROSS(VA1,VA2) OR VA6; X2:=CROSS(84,VRB); STICKLINE(X1 OR X2,1.5*(DIFF50-DEA50)

2401_82909103的博客 363

查询vCenter vcdb数据库获取虚拟机使用的datastore

使用SQL语句,从vCenter vcdb数据库中查询数据,方便导出自定义的报表。也可以通过可视化工具获取vcdb数据进行展示。

longfeiwlf的博客 3164

厦大零样本导航中的“最后一公里”!MSGNav:释放多模态3D场景图在零样本具身导航中的强大潜力

尽管MSGNav取得了显著的性能提升,但基于场景图的方法在推理效率方面仍面临挑战,主要受限于视觉基础模型(VFMs)和视觉语言模型(VLMs)的延迟。:传统的基于强化学习(RL)的导航方法存在泛化能力差和模拟到现实的差距大等问题,而零样本导航方法能够在未经过特定任务训练的情况下直接应用于真实场景,减少了训练时间和计算成本,适用于开放词汇的导航任务。:通过将传统3D场景图中的纯文本关系边替换为动态分配的图像,保留视觉信息,克服了纯文本的局限性,增强了开放词汇场景表示能力,为机器人导航提供了更丰富的场景理解。

3D视觉工坊 230

使用swarm组织集群

swarm init 创建集群然后会打印出 swarm join ,在另一台机器上输入查看集群解散集群 swarm node leave --forece。

greatcoder的博客 377

真空涡旋动力学

摘要 本文提出“真空涡旋动力学”(VVD)理论,将物理真空重构为量子活性超流体介质,摒弃传统几何时空观。通过严格的Madelung变换,证明薛定谔方程与克莱因-高登方程可等效为流体力学方程,揭示量子概率流内禀的涡旋结构。基于双摆混沌动力学,VVD破坏贝尔不等式的统计独立性假设,为量子力学提供超决定论解释。理论推导了四大机制:量子不确定性源于涡流扰动,光速壁垒由朗道临界阻力锁定,量子纠缠表现为无耗散超流,宇宙膨胀是尺度解耦效应。

weixin_42273095的博客 336

【Source教程】Crowbar下载部署与使用方法

返回【Source教程】文章目录 一、下载与安装 下载地址在这里。 Crowbar的下载方式与之前的GCFScape和VTFEdit不太相同,它下载页面是在Steam组的主页上面。 打开链接以后,可以看到网页上有个“Crowbar_2017-04-08_0.42.7z”,我们点击一下它。 接下来就会跳转到谷歌网盘,此处由于GFW的缘故,是需要***才能打开的,还请各位自己准备*...

weixin_30882895的博客 5507

Ubuntu 18.04 环境下git安装与使用

参考: https://blog.youkuaiyun.com/vslyu/article/details/80337675 一、安装 sudo apt-get install git 验证是否安装成功 (base) zywvvd@zywvvd-System-Product-Name:~/vvd_git$ git version git version 2.17.1 二、文档 man ...

zywvvd的博客 1100

SOUL.md:为AI注入人格特质的工程化实践

在人工智能领域,prompt engineering 和 人格参数 是构建拟人化AI系统的关键技术。通过结构化文档定义AI的价值观和行为模式,工程师可以赋予算法更自然的交互能力。SOUL.md作为人格化AI的工程方案,采用模块化设计包含世界观、性格矩阵等核心要素,结合动态调整算法实现个性化响应。这种技术在客服机器人、教育辅导等场景展现价值,LangChain等框架的集成方案更降低了实施门槛。实践表明,合理运用人格参数能使AI的用户满意度提升40%以上,而prompt engineering的优化技巧则直接影

weixin_42543309的博客 350
上一篇: 本机调试
下一篇: Using Directx In VS2012 With CS
WavesLine
博客等级 码龄12年 18粉丝 58原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值