95. Python基础教程:异常处理try...except语句

【目录】 文章目录 1. try...except语法解析2. 程序异常3. except的4种使用方式3.1 单独的except3.2 except + 异常名称3.3 except 异常类型 as 别名3.4 except (异常类型1,异常类型2) as 别名 4. 总结 【正文】 1. try…except语法解析 try[traɪ]:尝试。 except[ɪkˈsept]:把…排除在外。 try...except语句是Python中的异常处理机制,用于捕获和处理异常。 【作用】 在程序发生异常时执行特定的代码块,以避免程序崩溃或产生不可预料的结果。 【语法】 try: block1 except ExceptionName as alias: block1 block[blɒk]:代码块。 ExceptionName:异常名称。 as:作为,如同。 alias [ˈeɪlɪəs]:别名。 try 和 except是关键字。 注意关键字后面需要跟英文冒号: 。 注意英文冒号:后面的代码块需要有4个空格的缩进。 【参数说明】 block1:表示可能出现错误的代码块。 ExceptionName :可选参数,代表用户要捕获的异常名称。 as alias可选参数,表示给前面的的异常指定一个别名,alias代表别名。 如果在ExceptionName右侧加上as alias,则表示为当前的异常指定一个别名,通过该别名,可以记录异常的具体内容。 block2:表示进行异常处理的代码块。这里可以输出固定的提示信息,也可以通过别名输出异常的具体内容。 【温馨提示】 在使用try...except语句捕获异常后,当程序出错时,输出错误信息后,程序会继续执行。 【语法框架1】 try: # 可能会发生异常的代码块 except : # 处理异常类型的代码块(可以是提示性语句) 【语法框架2】 try: # 可能会发生异常的代码块 except 异常名称 : # 处理异常类型的代码块(可以是提示性语句) 【语法框架3】

数组切分(蓝桥杯)爆搜,剪枝 JAVA

目录 题目描述:dfs 暴力破解 :dfs + 回溯(void类型):纯 dfs (int类型):纯 dfs (void类型): dfs + 备忘录(满分):int类型实现:void类型实现:思考dfs + 回溯与 纯 dfs(int类型)的区别 : 小结: 题目描述: 已知一个长度为N的数组:A1, A2, A3,…, AN 恰好是1…N 的一个排列。 现在要求你将A数组切分成若干个(最少一个,最多N个) 连续的子数组, 并且每个子数组中包含的整数恰好可以组成一段连续的自然数。 例如对于A={1,3,2,4}存在5种切分方法。 1、{1}{3}{2}{4} 2、{1}{3,2}{4} 3、{1}{3,2,4} 4、{1,3,2}{4} 5、{1,3,2,4} 输入格式: 第一行包含一个整数N。 第二行包含N个整数,代表A数组。 对于30% 评测用例,1≤N≤20。 对于100% 评测用例,1≤N≤10000。 输出格式: 输出一个整数表示答案。 由于答案可能很大, 所以输出其对1000000007取模后的值。 输入样例: 4 1 3 2 4 输出样例: 5 dfs 暴力破解 : 解题思路: 秉承“万物皆可爆搜”的信念,本题我们继续利用爆搜来混分。 1.首先对于题目给出的例子我们得有一个系统的解题方法(也就是咱得先会做,找到规律,再让电脑做。): 对题目给的例子进行分析如下: 不难发现,这完全就是一颗递归树。其中每一层都对应每层递归内部的 for 循环,每一条路径都对应着一个符合题目要求的切分方法。 (还有一点就是我们可以看到,每一层 for 循环内的子数组都互不影响,所以这需要用到回溯。) 2.如判断某子数组内的整数,恰好可以组成一段连续自然数? 这里给出一个技巧:

【IDEA】idea不自动生成target

文章目录 1. 不生成target2. 仅部分文件不生成target2.1. 一般原因就是资源没有设置2.2. 配置编译src/main/java文件夹下的资源文件2.3. 清理缓存(王炸) 3. 参考资料 本文描述idea不生成target的几种情况以及处理方法 1. 不生成target 像下图这样根本就不生成target文件夹的,首先考虑环境问题。有没有把项目正确导入进idea、jdk有没有配置等原因 上图很明显模块p6spy显示的是普通文件夹而不是maven项目。 解决方法: 正确导入maven项目到idea(如果项目文件夹显示未小方块就是正确导入了项目)在重试 2. 仅部分文件不生成target 2.1. 一般原因就是资源没有设置 比如常见的maven项目,必须标记资源的类别,否则就有可能无法编译到target 2.2. 配置编译src/main/java文件夹下的资源文件 maven插件默认只会打包resources下的资源文件。常见的,我们在java目录添加的mybatis的资源文件mapper.xml默认就不会打包到target中(如下图),所有非.java文件都不会被编译到target中。 解决方法: 这种情况你需要配置打包插件(如下) <build> <!-- 资源目录 --> <resources> <resource> <!-- 设定主资源目录 --> <directory>src/main/java</directory> <includes> <include>**/*.xml</include> </includes> <excludes> <exclude>**/*.yaml</exclude> </excludes> <filtering>true</filtering> </resource> </resources> </build> 2.3. 清理缓存(王炸) **清理缓存是解决idea隔断时间就出现奇怪问题的王炸!**在idea中每隔一段时间就会出现一些莫名其妙的问题与清理缓存有关,如: 修改java文件后还是运行原来的代码每修改java文件都要maven clean package才会编译新代码 遇到类似上面的问题,我们直接就是清理缓存重启、上个厕所摸鱼回来就重启好了!解决方法如下: 3. 参考资料 idea不自动生成target Maven配置国内镜像

如何快速用Python获取短信验证码

在Python中获取短信验证码需要通过调用短信服务接口或者使用短信网关来实现。具体实现方式取决于你使用的短信服务提供商或者短信网关的API。 一般来说,你需要以下步骤来获取短信验证码: 选择短信服务提供商或者短信网关 你需要选择一个合适的短信服务提供商或者短信网关,根据你的需求和预算来做出选择 这里我选择了中昱维信的短信服务,方便快速接入。 注册账号并获取API密钥 注册并登录你的短信平台,然后获取AppID和AppKey。 创建验证码模版 创建验证码模版,获取验证码模版id 使用Python代码调用短信服务接口 # 平台注册地址 vip.veesing.com import requests from urllib import parse url = "https://vip.veesing.com/smsApi/verifyCode" payload = { # appId 'appId': 'YOUR_APP_ID', # appKey 'appKey': 'YOUR_APP_KEY', # 验证码模版id 'templateId': 36, # 接收验证码的11位手机号 'phone': '131********', # 验证码,4-8位随机数字 'variables': 123456 } payload = parse.urlencode(payload) headers = { 'Content-Type': 'application/x-www-form-urlencoded' } response = requests.request("POST", url, headers=headers, data=payload) # 解析短信服务的响应response,根据返回结果判断是否发送成功 # 成功 {"returnStatus": "1 ", "message": "

git暂存区(修改待提交区)

提交命令 // 提交指定文件到暂存区(单个/多个) $git add 文件名.后缀 // 提交当前文件夹中所有文件到暂存区 $git add -A $git add . 查看命令 // 查看当前分支暂存区的文件 $git ls-files 撤销命令 // 撤销暂存区指定文件(单个/多个) $git reset HEAD -- 文件名.后缀名 $git rm --cached 文件名.后缀名 $git rm 文件名.后缀名

如何确保单例线程安全

在多线程编程中,单例模式是一种常用的设计模式,用于确保一个类只有一个实例对象。然而,当多个线程同时访问单例对象时,可能会引发线程安全问题。本文将介绍如何确保单例线程安全,以及如何在Java中实现线程安全的单例模式。 为什么需要确保单例线程安全? 在多线程环境下,如果多个线程同时访问一个非线程安全的单例对象,可能会导致以下问题: 重复创建实例:多个线程同时调用单例对象的创建方法,可能会导致创建多个实例,违背了单例模式的初衷。数据不一致:多个线程同时修改单例对象的状态,可能会导致数据不一致的情况,破坏了对象的完整性和一致性。性能问题:线程竞争可能导致性能下降,因为线程需要等待其他线程释放锁才能访问单例对象。 因此,确保单例线程安全是非常重要的,以避免以上问题的发生。 延迟初始化的线程安全单例模式 延迟初始化是一种常见的单例模式实现方式,即在首次使用时才创建单例对象。下面是一个线程安全的延迟初始化单例模式的示例代码: public class LazySingleton { private static LazySingleton instance; private LazySingleton() { // 私有构造函数 } public static synchronized LazySingleton getInstance() { if (instance == null) { instance = new LazySingleton(); } return instance; } } 在上述示例中,getInstance() 方法使用了 synchronized 关键字来确保线程安全。它通过检查 instance 是否为 null 来判断是否需要创建新的实例。由于 synchronized 关键字的使用,每次只有一个线程能够访问 getInstance() 方法,从而避免了多个线程同时创建实例的问题。 然而,该实现方式在高并发场景下可能会带来性能问题,因为每次调用 getInstance() 方法都需要获取锁。因此,我们可以使用双重检查锁定(Double-Checked Locking)来提高性能。 双重检查锁定的线程安全单例模式 双重检查锁定是一种优化的延迟初始化单例模式实现方式。它在首次使用时才创建单例对象,并通过双重检查来避免重复创建实例的问题。下面是一个使用双重检查锁定实现的线程安全单例模式的示例代码: public class DoubleCheckedSingleton { private static volatile DoubleCheckedSingleton instance; private DoubleCheckedSingleton() { // 私有构造函数 } public static DoubleCheckedSingleton getInstance() { if (instance == null) { synchronized (DoubleCheckedSingleton.

TypeScript 入门培训资料

TypeScript 培训资料 PPT TypeScript 简介 TypeScript 是什么?TypeScript 的优势和用途TypeScript 与 JavaScript 的关系 TypeScript 基础语法 类型注解和类型推断基本数据类型变量和函数接口和类泛型 TypeScript 高级特性 模块化和命名空间类型声明文件装饰器枚举类型异步编程和 Promise TypeScript 与现有 JavaScript 项目集成 编译设置和配置文件类型声明和类型定义库使用第三方库 TypeScript 最佳实践 静态类型检查的优势编码规范和代码风格指南调试和性能优化技巧 实战案例和演示 使用 TypeScript 开发 Web 应用程序的示例TypeScript 在 Node.js 项目中的应用 原创作者:星河_赵梓宇,企业培训使用或教学培训使用请联系我并支付版费30元,邮箱qq695926920@163.com,将提供原版PPT培训资料 原创作者:星河_赵梓宇,企业培训使用或教学培训使用请联系我并支付版费100元,邮箱qq695926920@163.com

【原创】FastJson:JSON接口调用后返回大量反斜杠(“/“) 之坑解决方案!牛逼!超神!

问题示例 问题原因 列表内原有的值就是一个字符串因为接口采用RestController,所以又被以JSON的格式返回,在多次嵌套后变成了许多转义符构成的JSON字符串 解决方案 思路: 将实体类原有的String类型接收数据库的json字符串改为Object类型然后接收JSONObject覆盖输出 /** 思路: 将实体类原有的String类型接收数据库的json字符串改为Object类型然后接收JSONObject覆盖输出 **/ //原 private String xxxJson; //现 private Object xxxJson; //实现层 //定义一个String变量接收从数据传来的Object类型的json字符串,注意toString(); String oldJsonString = list.get(0).getChargeConfig().toString(); //随后将接受完的String变量转为JSONObject对象存入原有的Object类型的Json变量中 JSONObject newJsonObject= JSONObject.parseObject(oldJson ); //set重新赋值 list.get(0).setChargeConfig(newJsonObject); 解决示例

ubuntu安装docker及nvidia-container-toolkit(nvidia-docker和nvidia-docker2)

ubuntu安装docker及nvidia-container-toolkit(nvidia-docker和nvidia-docker2) 1 安装Docker1.1 卸载旧版本1.2 使用 APT 安装1.3 安装Docker1.4 将docker添加到非root用户 2 安装nvidia-container-toolkit3 参考博客 1 安装Docker 1.1 卸载旧版本 旧版本的 Docker 称为 docker 或者 docker-engine,使用以下命令卸载旧版本: sudo apt-get remove docker \ docker-engine \ docker.io 1.2 使用 APT 安装 sudo apt-get update sudo apt-get install \ apt-transport-https \ ca-certificates \ curl \ gnupg \ lsb-release 为了确认所下载软件包的合法性,需要添加软件源的 GPG 密钥。 鉴于国内网络问题,强烈建议使用国内源,官方源请在注释中查看。 curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg # 官方源 # curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.

idea项目依赖全部找不到

目录 1,出错现象2,解决3,其他尝试 1,出错现象 很久没打开的Java项目,打开之后大部分依赖都找不到,出现了所有的含有import语句的文件都会报错和一些注解报红报错,但pom文件中改依赖是确实被引入进去的。 2,解决 第一步: 删除文件夹下的.idea文件夹和xxx.iml文件,然后重新打开。 而xxx.iml和.idea文件的作用分别是: .iml是 intellij idea的工程配置文件,里面是当前project的一些配置信息,有包的存放位置; .idea存放项目的配置信息,包括历史记录,版本控制信息等所有,只要删除这两个文件,重启,就可恢复默认; 第二步: 清理一下idea缓存: 清理并重启就好了。经过第一步之后程序中有的类明明有,但是import引用的时候总是报错,清理缓存重启之后就好了。 3,其他尝试 在解决之前也试过如下方式: a,重新加载依赖包 b,”rebuild project“

自动化测试工具UFT怎么识别对象更准确

什么是UFT?UFT是Unified Functional Testing的缩写,是一种功能测试工具。UFT由微软公司开发,用于自动化测试软件应用程序的功能。它支持各种技术和平台,包括Web、Windows、Java、.NET、SAP、Oracle、Siebel、PeopleSoft、Salesforce等。UFT可以录制和回放用户操作,生成自动化测试脚本,用于验证应用程序的功能是否正常。这家公司更出名的工具是loadrunner,提到这个,各位都知道了吧。现在使用UFT的主要是非互联网大厂的传统大公司。 我现在就职的公司就是使用这个软件工具进行测试,uft是将定位元素进行封装,封装在一个一个的对象库。最近在使用时,总是识别不准,然后就使用UI对象里的visible属性就比较准确。 UFT中的visible属性是用于判断对象是否可见的属性。当visible属性设置为True时,表示对象在屏幕上可见;当visible属性设置为False时,表示对象在屏幕上不可见。这个属性通常用于验证对象是否显示在用户界面上,以便进行后续的操作。

部署appium+ios自动化遇到的问题--windows系统强制删除命令

PS C:\Windows\System32\WebDriverAgent> npm install > appium-webdriveragent@5.6.0 prepare > npm run build > appium-webdriveragent@5.6.0 build > rm -rf build && babel --out-dir=build/lib lib && babel --out-dir=build index.js npm : 'rm' 不是内部或外部命令,也不是可运行的程序 所在位置 行:1 字符: 1 + npm install + ~~~~~~~~~~~ + CategoryInfo : NotSpecified: ('rm' 不是内部或外部命令,也不是可运行的程序:String) [], RemoteException + FullyQualifiedErrorId : NativeCommandError 或批处理文件。 npm ERR! code 1 npm ERR! path C:\Windows\System32\WebDriverAgent npm ERR! command failed npm ERR! command C:\WINDOWS\system32\cmd.exe /d /s /c npm run build npm ERR!

【Java异常】Caused by: java.lang.IllegalArgumentException: method GET must not have a request body

微服务使用get方法远程调用的时候报这个错误 java.lang.IllegalArgumentException: method GET must not have a request body 主要原因是应为spring cloud项目使用FeignClient的时候GET请求方式无法解析对象参数,spring cloud项目使用FeignClient的时候GET请求有时候也无法解析单个参数值 FeignClient是支持对象传递的,但是得是Map形式,而且不能为空,与spring在机制上不兼容,因此无法使用。 而spring cloud在2.1.x版本中提供了@SpringQueryMap注解,可以传递对象参数,框架自动解析,但是,得是2.1.0以后的版本。 有三种方法可以解决该问题 1.POST请求 + @RequestBody注解 2.GET请求 + @SpringQueryMap注解(注意Spring Cloud的版本,2.1.x以下的不支持) 3.GET请求 + @RequestParam(“xxx”)注解

解决 The ‘more_itertools‘ package is required

在使用爬虫获取维基百科数据时看到了一个很好的项目: 博客:https://blog.51cto.com/u_15919249/5962100 项目地址:https://github.com/wjn1996/scrapy_for_zh_wiki 但在使用过程中遇到若干问题,记录一下: The 'more_itertools' package is required; normally this is bundled with this package so if you get this warning, consult the packager of your distribution.: 1.解决方案: 或许并不是环境本身的问题。 1. pip show more_itertools没有则安装,有则下一步 2. 把queue.py 文件及该文件中的Queue类均重命名分别为myqueue.py 与 MyQueue。 3. 将重命名后的myqueue.py放到spiders文件夹下, 4. 将spider下单wiki.py 中的from queue import Queue修改为from .myqueue import MyQueue 原因可能是Python中自带queue库,而博主这里是想调用自己的queue。 2.后面同样要把filter_words.py文件拿到spider下,并修改wiki中的from filter_words import filter_url 为from .filter_words import filter_url 3.在wiki.py繁简转换中加判断,避免输入为空 def Traditional2Simplified(sentence): ''' 将sentence中的繁体字转为简体字 :param sentence: 待转换的句子 :return: 将句子中繁体字转换为简体字之后的句子 ''' # sentence = Converter('zh-hans').

【JAVA程序设计】(C00005)基于springboot的进存销管理系统

基于springboot的进存销管理系统 项目获取文章结构一、开发框架及业务方向1.开发环境2.开发框架3.整体业务 二、项目结构及页面展示 项目获取 前往获取源码:码农源码 文章结构 一、开发框架及业务方向 1.开发环境 操作系统不限:java特性,一套代码,导出运行jdk版本不限:推荐jdk1.8数据库mysql:版本不限,推荐mysql8.0以下maven:版本不限开发工具:eclipse/idea 版本不限 2.开发框架 项目框架:springboot+shiro+mysql+layui等 3.整体业务 本系统为基于springboot的进存销管理系统 系统根据权限划分为三种用户:系统管理员,货物管理员,商品管理员(具体角色可以根据权限划分多个) 系统管理员默认功能:客户管理,供应商管理,商品管理,商品类别管理,商品进货,商品退货查询, 商品销售,商品销售退货,权限管理,角色管理,用户管理,日志管理,统计报表等 货物管理员默认功能:商品进货,商品退货查询 商品管理员默认功能:客户管理,供应商管理,商品管理,商品类别管理,商品销售,商品销售退货 二、项目结构及页面展示 项目结构: 管理页面:

ArcGIS问题解决——CAD中的字体加载到ArcMap显示乱码

ArcGIS问题解决——CAD中的字体加载到ArcMap显示乱码 CAD中的字体加载到ArcMap显示乱码,是因为字符集的问题,解决办法即修改注册表中默认字符集为简体中文字符集即可。 ①win+R,输入regedit,回车 ②找到计算机\HKEY_CURRENT_USER\SOFTWARE\ESRI\Desktop10.2\Common\CodePage; ③如果找不到Common\CodePage项则手动添加,右键——新建——项,名称为CodePage。 ④右键——新建——字符串值,添加字符串dbfDefault,值为969,如下图所示。 重新打开ArcMap加载数据,CAD字体正常显示。

vue 使用qrcodejs2插件实现二维码生成及二维码图片下载(小白篇)

1.首先下载插件 npm install qrcodejs2 --save 2. 引入 import QRCode from 'qrcodejs2' 3.代码实现如下: <span class="QRCode_show" @click="handDownInage()">下载二维码</span> <script> import QrCode from "qrcode"; export default{ data() { return { txid:'', qrcode: null, pushUnitName:'', uplinkTime:'' } }, mounted() { console.log('传过来的数据',this.row) this.txid = this.row.txid this.pushUnitName= this.row.pushUnitName this.uplinkTime= this.row.uplinkTime }, methods: { //下载按钮 handDownInage() { console.log("txid", this.txid); let txid = this.txid; if ((txid)) { this.$nextTick(() => { // 此时可以确认已经有ref对象了 let image = QrCode.toDataURL(txid); image.then((res) => { console.

v8引擎编译过程记录(保姆级教程)2023.7.22

在windows下使用vs2022编译v8引擎的稳定版本(2023.7.22) 一开始我是参考:https://blog.csdn.net/qq_33958297/article/details/105331502,因为百度上一搜就是它 但是那篇博客讲得很迷,跟着做没有成功。后面踩坑无数,查了一大堆资料才总结出这套稳定可用的方法,希望能帮到后人。 这篇文章我在博客园、知乎也有同步发布。 0.环境配置 1.安装了在环境变量里面的Python310和Git,点我访问相关博客 2.安装有VS2022(可能需要安装上使用C++的桌面开发、通用Windows平台开发) 1.下载v8项目源代码 V8已经停止在官方网站发布博客来公布最新稳定版本 我们需要访问谷歌的分支详情页 https://chromiumdash.appspot.com/branches 我选择了一年前的104版本 记下对应的v8版本,10.4-lkgr 找到一个合适的地方创建空文件夹v8,打开cmd,设定工作目录到v8文件夹 运行命令配置代理,根据代理工具的端口修改 git config --global http.proxy http://127.0.0.1:61021 git config --global https.proxy http://127.0.0.1:61021 netsh winhttp set proxy 127.0.0.1:61021 set HTTP_PROXY=http://127.0.0.1:61021 set HTTPS_PROXY=http://127.0.0.1:61021 仅仅运行上面的命令是不够的,还需要去系统设置或代理工具里面设置系统全局代理,也就是设置->网络和Internet->代理里面的代理 保持cmd窗口和代理程序不关闭,进入下一步 2.下载开发工具 访问 https://commondatastorage.googleapis.com/chrome-infra-docs/flat/depot_tools/docs/html/depot_tools_tutorial.html#_setting_up 找到Download链接下载包 新建一个depot_tools文件夹解压压缩包,然后把文件夹路径添加到PATH环境变量里面 需要确保Python已经安装,并且Python的安装目录在环境变量里面 注意:depot_tools要在所有其它路径之前。 3.下载配置项目 我们回到设置了代理的那个cmd窗口 如果你不小心关闭了,需要重新运行上面的命令设置代理 我们先设置一个环境变量,不然谷歌的工具不会下载Windows相关的工具 set DEPOT_TOOLS_WIN_TOOLCHAIN=0 确保你的代理设置完毕,在cmd运行以下命令拉取源代码 fetch v8 拉取比较费时间,哪怕你的代理能到10MB/s也要几分钟才能拉取完 如果你注意到进度一直都没动,说明可能你的PATH环境变量有问题 确保depot_tools在所有其它路径之前,然后重启Windows系统,再设置代理和set DEPOT_TOOLS_WIN_TOOLCHAIN=0,重新运行fetch v8拉取代码 (注意:关机再开机不等于重启) 拉取代码完成后,我们可以看到它在我们的v8文件夹里面又创建了一个v8文件夹 所以说先进入v8文件夹 cd v8 接着检出我们记录的10.4-lkgr版本 git checkout 10.4-lkgr 然后再次确保你的代理设置完毕,并且确保你的cmd执行过开头的环境变量设置命令,运行以下命令完成依赖处理 gclient sync -v

基于同创logos2的国产FPGA加速器与DMA设计与实现

文章目录 背景介绍硬件方案主要参数国产平台适配逻辑架构设计DMA实现方案设计驱动设计系统与应用软件驱动相关文章技术交流 背景介绍 当前全国产服务器在性能上与国外先进平台相比还有较大差距,在部署大量计算应用时会出现性能瓶颈。构建全国产服务器+全国产FPGA的异构计算平台,可卸载大量的并行计算任务到FPGA,降低功耗,增加整体性能。如网络加密/压缩解压/图像格式转换等应用。 硬件方案 国产FPGA加速器硬件方案如下图所示: 硬件参数如下: FPGA芯片:紫光同创Logos2系列芯片 板卡尺寸:半高半长 板载存储: 两路独立DDR3 SDRAM MCU芯片:兆易GD32F103RC 配置FLASH:256Mbit SPI FLASH SFP 光模块: 1.25Gb SFP Connector 时钟模块:晶振、PLL芯片 电源模块:板载PCIe连接器12V供电 板载信息:EEPROM 传感器:温度/电源/功耗等sensor 主要参数 国产平台适配 本加速器完成了飞腾、海光、龙芯三种cpu平台的适配,其中飞腾是arm架构,海光是x86架构、龙芯是MIPS架构,除了cpu,我们也分别测试了中标麒麟银河麒麟以及统信uos三种国产linux系统,根据结果看,系统对性能影响不大,内核版本会影响驱动编译,但是不会影响最终性能。 逻辑架构设计 目前国产FPGA厂商提供的IP有限,只有ram、fifo、pll等基本IP或者pcie、ddr等硬核IP,如果要将加速器使用起来,需要自主开发相应的RTL以及驱动。如下图所示,在FPGA逻辑架构设计中,采用标准AXI4总线互联,方便模块化开发,DMA Bridge为自主开发设计模块,采用的是链式结构,支持128组描述符,支持接收报文乱序,MaxPayload兼容512B/256B/128B,支持32路MSI中断,支持DMA同时读写,支持DMA bypass。 DMA实现方案设计 驱动设计 针对自主开发的逻辑,需要开发相对应的底层驱动。 系统与应用 基于全国产FPGA加速器可以开发国密、压缩解压、图像处理、网络处理等应用。 软件驱动 本加速器对应的链式DMA驱动以及软件栈分析见基于同创logos2 FPGA PCIe软件栈设计 > https://blog.csdn.net/whlzywy/article/details/125885928 相关文章 基于国产FPGA紫光同创Titan2 PG2T390H的PCIe链式DMA控制器设计 https://blog.csdn.net/whlzywy/article/details/130208838 国产高性能FPGA加速卡-双芯1200k https://blog.csdn.net/whlzywy/article/details/131520245 技术交流 近两年国产FPGA发展迅速,在部分领域已有不错市场份额,相信未来会有一席之地,欢迎技术交流!

Windows 10 关于进程出现 已挂起,导致无法结束任务,或者taskkill 命令也被拒绝访问等问题解决方法

理解 也就是说,平时电脑启动的是快速启动配置,相当于是休眠,但是有可能会存在一些 bug ,所以,作为开发者来说,最好是取消这个快速启动的配置,不然 bug 满天飞,当然这只是有可能。 步骤 电脑左下角启动部分,设置选项 查找 控制面板 点击 硬件和声音 点击 电源选项 点击 选择电源按钮的功能 取消勾选 启用快速启动 功能 参考链接 游戏进程已挂起,结束不掉重启也不行?原因居然是…