AD9371 官方例程裸机SW概述(一)

AD9371 系列快速入口

AD9371+ZCU102 移植到 ZCU106 : AD9371 官方例程构建及单音信号收发

ad9371_tx_jesd -->util_ad9371_xcvr接口映射: AD9371 官方例程之 tx_jesd 与 xcvr接口映射

AD9371 官方例程 时钟间的关系与生成 : AD9371 官方例程HDL详解之JESD204B TX侧时钟生成(一)

AD9371 官方例程 时钟间的关系与生成 : AD9371 官方例程HDL详解之JESD204B TX侧时钟生成 (二)

采样率和各个时钟之间的关系 : AD9371 官方例程HDL详解之JESD204B TX侧时钟生成 (三)

参考:
AD9371/AD9375 No-OS Setup

文章目录

  • 前言
  • 一、myk_ad9528init
  • 二、myk.c


前言

SDK或者vitis 裸机程序需要配置 AD9528、AD9371、FPGA相关IP等,根据自己项目需求,可以通过 MATLAB Profile GeneratorTransceiver Evaluation Software 生成所需的 myk.c, myk.h and myk_ad9528init.c 文件来替换

一、myk_ad9528init

AD9528 初始化文件
在这里插入图片描述

SPI 设置,通过SPI配置AD9528参数

1, //chip select Index ,AD9371 是 2,用于SPI 片选 spi_csn,ZYNQ只使用了 SPI0来配置9528和9371

static spiSettings_t clockSpiSettings = {1, //chip select Index0, //Write bit polarity1, //16bit instruction word1, //MSB first0, //Clock phase0, //Clock polarity0,//uint8_t enSpiStreaming;1,//uint8_t autoIncAddrUp;1 //uint8_t fourWireMode;
};

PLL1 相关配置

30720000,AD9258 PLL1 配置,refA 的频率

122880000,vcxo 频率,ADRV9371 板载的 122.88M

ad9528pll1Settings_t clockPll1Settings = {30720000,1,3,0,1,0,122880000,2,4
};

PLL2 相关配置

3,PLL2的M1,可选 3,4,5
PLL2的N2,应该为 10 ,这样 122.88M x 3 x 10 = 3.6864G ,满足PLL2的VCO工作频率 3.450 GHz 到 4.025 GHz
但没关系 ,主函数中的函数 AD9528_initDeviceDataStruct(clockAD9528_device,vcxo_Frequency,refA_Frequency,outFrequency[1])
会重新计算 PLL1 、 PLL2 和 SYSREF 的各个参数,得到 pll2Settings->n2Divider = 10

ad9528pll2Settings_t clockPll2Settings = {3,30
};

53237,00 1111 1111 0101,0 使能对应的OUT输出,53237 即 使能 OUT 1、3(SYSREF)、12(SYSREF)、13
{0,0,0,2,0,0,0,0,0,0,0,0,2,0}, 9528 OUT输出信号源 选择 outSource[3] = SYSREF;outSource[12] = SYSREF;
0,选择PLL2 经过 分频器 CHANNEL_DIV 产生信号
2,选择SYSREF generation 电路产生的 SYSREF 信号输出
最后一行是AD9528产生的 14路 输出信号频率,对于 ADRV9371 来说,使用了 OUT 1、3(SYSREF)、12(SYSREF)、13
outFrequency_Hz[1] 一定要设置成想得到的频率,以在 AD9528_initDeviceDataStruct 中使用,来计算各种参数

ad9528outputSettings_t clockOutputSettings = {53237,{0,0,0,2,0,0,0,0,0,0,0,0,2,0},{0,0,0,0,0,0,0,0,0,0,0,0,0,0},{0,0,0,0,0,0,0,0,0,0,0,0,0,0},{0,0,0,0,0,0,0,0,0,0,0,0,0,0},{10,10,10,10,10,10,10,10,10,10,10,10,10,10},{122880000, 122880000, 122880000, 122880000, 122880000, 122880000, 122880000, 122880000, 122880000, 122880000, 122880000, 122880000, 122880000, 122880000}
};

0,SPI,SYSREF requested 通过SPI请求 SYSREF , 1 通过 引脚
2,SYSREF 生成模式 ,2 内部产生,即 Mode 3 Internal
0,sysrefPatternMode_t,SYSREF 生成模式, N-shot = 0, CONTINUOUS = 1, PRBS = 2, STOP = 3
0,sysrefNshotMode_t ,SYSREF 输出脉冲数, ONE_PULSE = 0, TWO_PULSES = 2, FOUR_PULSES = 3
512, 16-bit K 分频 ,0 到 65535, 有一个固定 2分频,即最终分频 2 x k,如输入信号122.88M,SYSREF = 122.88M/(2 x 512)= 0.12 MHz ,得到SYSREF 频率为 120000, OUT 3 和 12 输出 0.12M 的 SYSREF 信号

ad9528sysrefSettings_t clockSysrefSettings = {0,2,0,0,0,0,512
};

myk_ad9528init文件 VCXO、REFA、outFrequency_Hz[1] 一定要设置对, PLL1、 PLL2、 SYSREF、Output 参数可以通过函数AD9528_initDeviceDataStruct 得到

二、myk.c

AD9371 初始化
在这里插入图片描述
AD9371内 TX 滤波器具体系数

static int16_t txFirCoefs[]

txFir 滤波器具体配置
6,滤波器增益
32, 使用多少抽头系数

static mykonosFir_t txFir = {6,              /* Filter gain in dB*/32,             /* Number of coefficients in the FIR filter*/&txFirCoefs[0]  /* A pointer to an array of filter coefficients*/
};

rx、obsrx、sniffer 同上
在这里插入图片描述
AD9371 RX 信号组帧配置,obsRxFramer 类似
2T2R,4个转换器,多帧有32个帧,解扰,使用外部 SYSREF 信号,0x03, 使用最低两个lane传输数据,
0 ,bitRepeat mode,RX 和 RX_OS(嗅探) 各自使用一个组帧器,采样率可以不一样,使用 Bit repeat 模式做到
0 ,/* Selects SYNCb input source,0 使用SYNCINB0(连到RX) , 1 使用SYNCINB1(连到OBSRX)

static mykonosJesd204bFramerConfig_t rxFramer = {0,              /* JESD204B Configuration Bank ID -extension to Device ID (Valid 0..15)*/0,              /* JESD204B Configuration Device ID - link identification number. (Valid 0..255)*/0,              /* JESD204B Configuration starting Lane ID.  If more than one lane used, each lane will increment from the Lane0 ID. (Valid 0..31)*/4,              /* number of ADCs (0, 2, or 4) - 2 ADCs per receive chain*/32,             /* number of frames in a multiframe (default=32), F*K must be a multiple of 4. (F=2*M/numberOfLanes)*/1,              /* scrambling off if framerScramble= 0, if framerScramble>0 scramble is enabled.*/1,              /* 0=use internal SYSREF, 1= use external SYSREF*/0x03,           /* serializerLanesEnabled - bit per lane, [0] = Lane0 enabled, [1] = Lane1 enabled*/0xE4,           /* serializerLaneCrossbar*/22,             /* serializerAmplitude - default 22 (valid (0-31)*/4,              /* preEmphasis - < default 4 (valid 0 - 7)*/0,              /* invertLanePolarity - default 0 ([0] will invert lane [0], bit1 will invert lane1)*/0,              /* lmfcOffset - LMFC_Offset offset value for deterministic latency setting*/0,              /* Flag for determining if SYSREF on relink should be set. Where, if > 0 = set, 0 = not set*/0,              /* Flag for determining if auto channel select for the xbar should be set. Where, if > 0 = set, '0' = not set*/0,              /* Selects SYNCb input source. Where, 0 = use RXSYNCB for this framer, 1 = use OBSRX_SYNCB for this framer*/0,              /* Flag for determining if CMOS mode for RX Sync signal is used. Where, if > 0 = CMOS, '0' = LVDS*/0,              /* Selects framer bit repeat or oversampling mode for lane rate matching. Where, 0 = bitRepeat mode (changes effective lanerate), 1 = overSample (maintains same lane rate between ObsRx framer and Rx framer and oversamples the ADC samples)*/0               /* Flag for determining if API will calculate the appropriate settings for framer lane outputs to physical lanes. Where, if '0' = API will set automatic lane crossbar, '1' = set to manual mode and the value in serializerLaneCrossbar will be used*/
};

AD9371 TX 信号解帧配置
2T2R,4个转换器,多帧有32个帧,加扰,使用外部 SYSREF 信号,0x0F, 使用全部 4 个lane传输数据,
0, /* LMFC_Offset offset,0…31,通过 LMFC 偏移调整确定性延迟

static mykonosJesd204bDeframerConfig_t deframer = {0,              /* bankId extension to Device ID (Valid 0..15)*/0,              /* deviceId  link identification number. (Valid 0..255)*/0,              /* lane0Id Lane0 ID. (Valid 0..31)*/4,              /* M  number of DACss (0, 2, or 4) - 2 DACs per transmit chain */32,             /* K  #frames in a multiframe (default=32), F*K=multiple of 4. (F=2*M/numberOfLanes)*/1,              /* scramble  scrambling off if scramble= 0.*/1,              /* External SYSREF select. 0 = use internal SYSREF, 1 = external SYSREF*/0x0F,           /* Deserializer lane select bit field. Where, [0] = Lane0 enabled, [1] = Lane1 enabled, etc */0xE4,           /* Lane crossbar to map physical lanes to deframer lane inputs [1:0] = Deframer Input 0 Lane section, [3:2] = Deframer Input 1 lane select, etc */1,              /* Equalizer setting. Applied to all deserializer lanes. Range is 0..4*/0,              /* PN inversion per each lane.  bit[0] = 1 Invert PN of Lane 0, bit[1] = Invert PN of Lane 1, etc).*/0,              /* LMFC_Offset offset value to adjust deterministic latency. Range is 0..31*/0,              /* Flag for determining if SYSREF on relink should be set. Where, if > 0 = set, '0' = not set*/0,              /* Flag for determining if auto channel select for the xbar should be set. Where, if > 0 = set, '0' = not set*/0,              /* Flag for determining if CMOS mode for TX Sync signal is used. Where, if > 0 = CMOS, '0' = LVDS*/0               /* Flag for determining if API will calculate the appropriate settings for deframer lane in to physical lanes. Where, if '0' = API will set automatic lane crossbar, '1' = set to manual mode and the value in deserializerLaneCrossbar will be used*/
};

RX 增益初始配置,orxGainControl 和 snifferGainControl 类似
MGC ,手动增益控制 ,AGC 自动增益控制
RSSI ,Rx1 RSSI 和 Rx2 RSSI

static mykonosRxGainControl_t rxGainControl = {MGC,            /* Current Rx gain control mode setting*/255,            /* Rx1 Gain Index, can be used in different ways for manual and AGC gain control*/255,            /* Rx2 Gain Index, can be used in different ways for manual and AGC gain control*/255,            /* Max gain index for the currently loaded Rx1 Gain table*/195,            /* Min gain index for the currently loaded Rx1 Gain table*/255,            /* Max gain index for the currently loaded Rx2 Gain table*/195,            /* Min gain index for the currently loaded Rx2 Gain table*/0,              /* Stores Rx1 RSSI value read back from the Mykonos*/0               /* Stores Rx2 RSSI value read back from the Mykonos*/
};

RX 自动增益 Peak threshold 模式参数配置 ,obsRxPeakAgc 类似

static mykonosPeakDetAgcCfg_t rxPeakAgc = {0x26,	/* apdHighThresh: */0x16,	/* apdLowThresh */0xB5,	/* hb2HighThresh */0x72,	/* hb2LowThresh */0x40,	/* hb2VeryLowThresh */0x06,	/* apdHighThreshExceededCnt */0x04,	/* apdLowThreshExceededCnt */0x06,	/* hb2HighThreshExceededCnt */0x04,	/* hb2LowThreshExceededCnt */0x04,	/* hb2VeryLowThreshExceededCnt */0x4,	/* apdHighGainStepAttack */0x2,	/* apdLowGainStepRecovery */0x4,	/* hb2HighGainStepAttack */0x2,	/* hb2LowGainStepRecovery */0x4,	/* hb2VeryLowGainStepRecovery */0x1,	/* apdFastAttack */0x1,	/* hb2FastAttack */0x1,	/* hb2OverloadDetectEnable */0x1,	/* hb2OverloadDurationCnt */0x1	/* hb2OverloadThreshCnt */
};

RX 自动增益 Power Measurement 模式参数 , obsRxPwrAgc 类似

static mykonosPowerMeasAgcCfg_t rxPwrAgc = {0x01,	/* pmdUpperHighThresh */0x03,	/* pmdUpperLowThresh */0x0C,	/* pmdLowerHighThresh */0x04,	/* pmdLowerLowThresh */0x4,	/* pmdUpperHighGainStepAttack */0x2,	/* pmdUpperLowGainStepAttack */0x2,	/* pmdLowerHighGainStepRecovery */0x4,	/* pmdLowerLowGainStepRecovery */0x08,	/* pmdMeasDuration */0x02	/* pmdMeasConfig */
};

RX AGC 配置 ,obsRxAgcConfig 类似
1, /* agcObsRxSelect , 1 选择 Sniffer
1, /* agcPeakThresholdMode ,1,Peak Threshold

static mykonosAgcCfg_t rxAgcConfig = {255,	/* agcRx1MaxGainIndex */195,	/* agcRx1MinGainIndex */255,	/* agcRx2MaxGainIndex */195,	/* agcRx2MinGainIndex: */255,	/* agcObsRxMaxGainIndex */203,	/* agcObsRxMinGainIndex */1,		/* agcObsRxSelect */1,		/* agcPeakThresholdMode */1,		/* agcLowThsPreventGainIncrease */30720,	/* agcGainUpdateCounter */3,	/* agcSlowLoopSettlingDelay */4,	/* agcPeakWaitTime */0,	/* agcResetOnRxEnable */0,	/* agcEnableSyncPulseForGainCounter */&rxPeakAgc,&rxPwrAgc
};

在这里插入图片描述

根据 Profile 文件 ,配置 rx、orx、sniffer、tx 的 IQ采样率 、信号带宽 、抽取或者内插系数、滤波器系数等

static mykonosTxProfile_t txProfile = {/* Tx 20/100MHz, IQrate 122.88MSPS, Dec5 */DACDIV_2p5,     /* The divider used to generate the DAC clock*/&txFir,         /* Pointer to Tx FIR filter structure*/2,              /* The Tx digital FIR filter interpolation (1,2,4)*/2,              /* Tx Halfband1 filter interpolation (1,2)*/1,              /* Tx Halfband2 filter interpolation (1,2)*/1,              /* TxInputHbInterpolation (1,2)*/122880,         /* Tx IQ data rate in kHz*/20000000,       /* Primary Signal BW*/100000000,      /* The Tx RF passband bandwidth for the profile*/710539,         /* The DAC filter 3dB corner in kHz*/50000,          /* Tx BBF 3dB corner in kHz*/0               /* Enable DPD, only valid for AD9373*/
};

9371 参考时钟
在这里插入图片描述

122.88M ,AD9525 OUT 13输出到9371的 DEV_CLK(E7 E8) , DEV_CLK参考时钟频率 10 MHz 到 320 MHz.
9830400 ,PLL VCO 工作频率,在 6 GHz 到 12 GHz
2,VCO divider,1,1.5,2,3, hsclkRate= clkPllVcoFrequency / VCO divider
4,HS Divider,4 或 5,hsDigClk = hsclkRate/ hsDiv

static mykonosDigClocks_t mykonosClocks = {122880,         /* CLKPLL and device reference clock frequency in kHz*/9830400,        /* CLKPLL VCO frequency in kHz*/VCODIV_2,       /* CLKPLL VCO divider*/4               /* CLKPLL high speed clock divider*/
};

RX 配置,txSettings 类似,Tx Attenuation ,衰减步长 和 衰减 mdB
RX1_RX2,初始化 RX 1 和 2
0, / Internal LO = 0, 本振使用内部产生的
2.5G,Rx PLL 本振频率 ,2.5GHz
0 , / 0,复数,1 实数

static mykonosRxSettings_t  rxSettings = {&rxProfile,     /* Rx datapath profile, 3dB corner frequencies, and digital filter enables*/&rxFramer,      /* Rx JESD204b framer configuration structure*/&rxGainControl, /* Rx Gain control settings structure*/&rxAgcConfig,   /* Rx AGC control settings structure*/RX1_RX2,        /* The desired Rx Channels to enable during initialization*/0,              /* Internal LO = 0, external LO*2 = 1*/2500000000U,    /* Rx PLL LO Frequency (internal or external LO)*/0               /* Flag to choose if complex baseband or real IF data are selected for Rx and ObsRx paths. Where, if > 0 = real IF data, '0' = zero IF (IQ) data*/
};

OBS_RX 配置,
MYK_ORX1_ORX2 | MYK_SNRXA_B_C,初始化 ORX1、ORX2、SNRXA、B、C
OBSLO_TX_PLL, Obs Rx 本振,0 本振由 Tx 产生, 1 本振由Sniffer 产生
2.6G,SnRx PLL 本振频率 ,2.6GHz
OBS_RXOFF , ObsRx 通道关闭,后续主函数中配置使用OBS_RX1_SNIFFERLO
MYKONOS_setObsRxPathSource(&mykDevice,OBS_RX1_SNIFFERLO)

typedef enum{OBS_RXOFF           = 0,OBS_RX1_TXLO        = 1,OBS_RX2_TXLO        = 2,OBS_INTERNALCALS    = 3,OBS_SNIFFER         = 4,OBS_RX1_SNIFFERLO   = 5,OBS_RX2_SNIFFERLO   = 6,OBS_SNIFFER_A       = 0x14,OBS_SNIFFER_B       = 0x24,OBS_SNIFFER_C       = 0x34
} static mykonosObsRxSettings_t obsRxSettings = {&orxProfile,    /* ORx datapath profile, 3dB corner frequencies, and digital filter enables*/&orxGainControl,/* ObsRx gain control settings structure*/&obsRxAgcConfig,/* ORx AGC control settings structure*/&snifferProfile,/* Sniffer datapath profile, 3dB corner frequencies, and digital filter enables*/&snifferGainControl,/* SnRx gain control settings structure*/&obsRxFramer,   /* ObsRx JESD204b framer configuration structure */(MYK_ORX1_ORX2 | MYK_SNRXA_B_C),/* obsRxChannel */OBSLO_TX_PLL,   /* (obsRxLoSource) The Obs Rx mixer can use the Tx Synth(TX_PLL) or Sniffer Synth (SNIFFER_PLL) */2600000000U,    /* SnRx PLL LO frequency in Hz */0,              /* Flag to choose if complex baseband or real IF data are selected for Rx and ObsRx paths. Where if > 0 = real IF data, '0' = complex data*/NULL,           /* Custom Loopback ADC profile to set the bandwidth of the ADC response */OBS_RXOFF       /* Default ObsRx channel to enter when radioOn called */
};

SPI 参数配置
2, AD9371 是 2,9528 是1,用于SPI 片选 spi_csn,ZYNQ只使用了 SPI0来配置9528和9371

static spiSettings_t mykSpiSettings = {2, /* chip select index - valid 1~8 */0, /* the level of the write bit of a SPI write instruction word, value is inverted for SPI read operation */1, /* 1 = 16-bit instruction word, 0 = 8-bit instruction word */1, /* 1 = MSBFirst, 0 = LSBFirst */0, /* clock phase, sets which clock edge the data updates (valid 0 or 1) */0, /* clock polarity 0 = clock starts low, 1 = clock starts high */0, /* Not implemented in ADIs platform layer. SW feature to improve SPI throughput */1, /* Not implemented in ADIs platform layer. For SPI Streaming, set address increment direction. 1= next addr = addr+1, 0:addr=addr-1 */1  /* 1: Use 4-wire SPI, 0: 3-wire SPI (SDIO pin is bidirectional). NOTE: ADI's FPGA platform always uses 4-wire mode */
};

DPD, CLGC, 和 VSWR 功能只有AD9375有,dpdConfig,clgcConfig,vswrConfig 不用管

后续 和 AD9371 交互并未通过GPIO ,armGpio,gpio3v3,gpio,mykonosAuxIo 不用管

温度传感器见 tempSensor、tempStatus

主函数 和 FPGA 中的相关 IP配置见下一节

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

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

相关文章

Qt 中model/View 架构 详解,以及案例实现相薄功能

model/View 架构 导读 ​ 我们的系统需要显示大量数据,比如从数据库中读取数据,以自己的方式显示在自己的应用程序的界面中。早期的 Qt 要实现这个功能,需要定义一个组件,在这个组件中保存一个数据对象,比如一个列表。我们对这个列表进行查找、插入等的操作,或者把修改…

【项目源码解析】某3C产品自动光学检测系统

解决方案源码解析思维导图 一、带有桁架机械手的自动光学检测系统介绍 二、关于机械手运动控制&#xff08;是否需要机器人学方面的知识&#xff09; 机械手的运动控制不需要深入了解机器人学方面的知识的情况包括&#xff1a; 预配置和任务单一性&#xff1a;如果机械手已经预…

【Java 进阶篇】Java Response 输出字符数据案例

在Java Web开发中&#xff0c;使用HTTP响应对象&#xff08;Response&#xff09;来向客户端发送数据是一项非常重要的任务。本篇博客将详细介绍如何使用Java中的Response对象来输出字符数据&#xff0c;并提供示例代码以帮助读者更好地理解和应用这一概念。不仅将讨论基础知识…

SpringCloud Alibaba Demo(Nacos,OpenFeign,Gatway,Sentinel)

开源地址&#xff1a; ma/springcloud-alibaba-demo 简介 参考&#xff1a;https://www.cnblogs.com/zys2019/p/12682628.html SpringBoot、SpringCloud 、SpringCloud Alibaba 以及各种组件存在版本对应关系。可参考下面 版本对应 项目前期准备 启动nacos. ./startup.c…

Snackbar使用介绍及自定义

Snackbar使用介绍及自定义 前言一、Snackbar是什么&#xff1f;二、简单使用三、进阶使用参考 [Android 快别用Toast了&#xff0c;来试试Snackbar](https://blog.csdn.net/g984160547/article/details/121269520) 总结 前言 有个UI要显示自定义样式的toast&#xff0c;并居中…

【k8s】pod进阶

一、资源限制 1、资源限制的概念 当定义 Pod 时可以选择性地为每个容器设定所需要的资源数量。 最常见的可设定资源是 CPU 和内存大小&#xff0c;以及其他类型的资源。 当为 Pod 中的容器指定了 request 资源时&#xff0c;调度器就使用该信息来决定将 Pod 调度到哪个节点上…

vue3简单写导航anchor示例(支持点击高亮和滚动判断高亮)

1. 点击anchor, 相应的anchorlink高亮 function anchorClick(index) { forceStop.value true; time Date.now(); wheelRef.value.children[index].scrollIntoView({ block: start, behavior: smooth }); // 给一些延时, 再点亮anchor, 同时不再限制scrol…

windows下基于vscode的ssh服务远程连接ubuntu服务器

Ubuntu端配置 1.确保ubuntu端已启用ssh服务 首先&#xff0c;安装ssh服务 sudo apt-get install openssh-server 安装后&#xff0c;打开ssh服务 sudo service ssh start 如果显示有sshd就说明成功了。 判断是否成功打开 ps -e|grep ssh 同时也可以通过如下方式确保ss…

小样本分割的新视角,Learning What Not to Segment【CVPR 2022】

论文地址&#xff1a;Excellent-Paper-For-Daily-Reading/image-segmentation at main 类别&#xff1a;图像分割 时间&#xff1a;2023/11/01 摘要 目前背景&#xff1a;少样本分割 &#xff08;FSS&#xff09; 得到了广泛的发展。以前的大多数工作都在努力通过分类任务衍…

Flask 网站装潢, 简易更换模板

Flask 网站装潢&#xff0c;简易更换模板 本博文找个好看的网页模板&#xff0c;并简单改一改变成flask模板&#xff0c;并展示 主博客目录&#xff1a;《从零开始学习搭建量化平台笔记》 文章目录 Flask 网站装潢&#xff0c;简易更换模板下载模板Python 自动生成目录修改目录…

pytorch复现_IOU

定义了一个compute_iou函数&#xff0c;用于计算两个矩形框&#xff08;boxA和boxB&#xff09;之间的交并比&#xff08;IOU&#xff0c;Intersection over Union&#xff09;。IOU是一种常用的度量&#xff0c;用于评估两个矩形框的重叠程度。 在代码中&#xff0c;函数的输入…

centos关闭Java进程的脚本

centos关闭Java进程的脚本&#xff0c;有时候服务就是个jar包&#xff0c;关闭程序又要找到进程ID&#xff0c;在kill掉&#xff0c;麻烦&#xff0c;这里就写了个脚本 小白教程&#xff0c;一看就会&#xff0c;一做就成。 1.脚本如下 #!/bin/bash ps -ef | grep java | gre…

什么是 CNN? 卷积神经网络? 怎么用 CNN 进行分类?(3)

参考视频&#xff1a;https://www.youtube.com/watch?vE5Z7FQp7AQQ&listPLuhqtP7jdD8CD6rOWy20INGM44kULvrHu 视频7&#xff1a;CNN 的全局架构 卷积层除了做卷积操作外&#xff0c;还要加上 bias &#xff0c;再经过非线性的函数&#xff0c;这么做的原因是 “scaled p…

《 博弈论教程(罗云峰版) 》——习题二答案

前言 博弈论这门课程&#xff0c;我们主要参考的教材是《博弈论教程&#xff08;罗云峰版&#xff09;》&#xff0c;但是罗老师的课后习题并没有给出完整的答案&#xff0c;秉着学习的态度&#xff0c;本人结合教材和 PPT 在这里给出课后习题的答案。 由于我们只学了完全信息…

sw 怎么装新版本

我们在安装solidworks时&#xff0c;有时候会提示A newer version of this applic ation is already installed. Installation stopped.如下图所示 这时候需要点继续安装 然后会出现下图所示情况&#xff0c;vba7.1安装未成功 这是因为我们电脑中以前安装过更高版本的solidw…

安装opensips

1. 安装opensips ubuntu下安装&#xff1a; 1&#xff09;执行以下的脚本 openSIPS | APT Repository 2&#xff09;apt-get install opensips 安装完毕后&#xff0c;再选择需要的module继续安装&#xff0c;不需要编译 如果只是用作load balancer&#xff0c;那么只需要…

arcpy.message实现探索

arcpy 位置D:\Program Files\GeoScene\Pro\Resources\ArcPy\arcpy\__init__.py ”““AddMessage(消息) 创建可以使用任何GetMessages函数访问的地理处理信息消息(Severity0)。 message(字符串):要添加的消息。”“ arcpy.geoprocessing D:\Program Files\GeoScene\Pro\Re…

5.4 完整性约束命名子句

思维导图: 笔记&#xff1a;5.4 完整性约束命名子句 定义: 完整性约束是在CREATE TABLE语句中定义的。SQL为CREATE TABLE语句提供了CONSTRAINT子句&#xff0c;用于对完整性约束进行命名。命名的目的是方便增加或删除约束。 基本结构: CONSTRAINT <完整性约束名称> &l…

python实现MC协议(SLMP 3E帧)的TCP服务端(篇一)

python实现MC协议&#xff08;SLMP 3E帧&#xff09;的TCP服务端是一件稍微麻烦点的事情。它不像modbusTCP那样&#xff0c;可以使用现成的pymodbus模块去实现。但是&#xff0c;我们可以根据协议帧进行组包&#xff0c;自己去实现帧的格式&#xff0c;而这一切可以基于socket模…

jdk官网下载(详细步骤)

jdk全部版本下载网址 Java Archive | Oraclehttps://www.oracle.com/java/technologies/downloads/archive/ 下载之前先建立oracle账号(免费创建)&#xff0c;不用特意去搜&#xff0c;你点击下载jdk的时候会自动弹出来&#xff0c;自己建立一个账号就能下载了 找到自己要下载…