草庐IT

CPU-FPGA

全部标签

FPGA入门 —— FPGA UART 串口通信

FPGA入门——FPGAUART串口通信串口简介UART通用异步收发传输器(UniversalAsynchronousReceiver/Transmitter),通常称作UART。UART是一种通用的数据通信协议,也是异步串行通信口(串口)的总称,它在发送数据时将并行数据转换成串行数据来传输,在接收数据时将接收到的串行数据转换成并行数据。它包括了ch340、RS232、RS499、RS423、RS422和RS485等接口标准规范和总线标准规范串口作为常用的三大低速总线(UART、SPI、IIC)之一,在设计众多通信接口和调试时占有重要地位。但UART和SPI、IIC不同的是,它是异步通信接口,

pytorch2.0.1 安装部署(cpu+gpu) linux+windows

官网打开可能较慢,耐心等待pytorch官网以下操作在默认网络环境即可使用,2023年8月20日更新一、说明和前期准备1.pytorch是一个和tensorflow类似的框架如果需要安装tensorflow,可以参考:tensorflow1,2cpu+gpu(windows+linux)安装2.安装anaconda主要是为了一台机器安装多个互不干扰的环境。安装最新版即可anaconda安装(windows+linux)注意:安装anaconda要启动notebook(安装上面的教程来)3.安装cuda安装cuda11.8版本cudawindows安装cudalinux安装4.显卡(可选)gpu

Linux INFO: rcu_sched self-detected stall on CPU

如果串口持续打印下面的信息,说明代码中出现了异常,程序一直占据了cpu不释放。cpu在调度中检测到了这种异常,在串口中打印出内核异常位置的调用栈。这种检查内核缺省是打开的,CONFIG_RCU_CPU_STALL_TIMEOUT参数是时间,如果cpu占据时间超过该参数,则会打印。在我调试的单板上缺省为60秒。在openwrt系统上执行makekernel_menuconfig可以看到如下配置:这种问题一般出现在内核程序出现了死循环的现象。因此通过调用栈信息很快能够找到程序的异常点。[814.604208]INFO:rcu_schedself-detectedstallonCPU[814.614

基于 STM32+FPGA 的多轴运动控制器的设计

运动控制器是数控机床、高端机器人等自动化设备控制系统的核心。为保证控制器的实用性、实时性和稳定性,提出一种以STM32为主控制器、FPGA为辅助控制器的多轴运动控制器设计方案。给出了运动控制器的硬件电路设计,将S形加减速算法融入运动控制器,提高了控制精度,可有效避免过冲、振荡等现象的发生。在三维点胶机平台上对运动控制器的性能进行了测试,结果表明:点胶机各轴能按照设定的轨迹运动,运行平稳且实时性高,具备良好的应用前景。运动控制器性能的好坏直接对自动化系统整体性能的发挥起决定性作用[1-2]。克莱斯勒、西门子、FANUC、MAZAK占据我国90%左右的工业用运动控制器市场。随着运动控制技术的发展,

Java线上CPU内存冲高问题排查步骤

01引言作为一名从事Java开发快一年的程序员,在线上经常碰到某个模块的Pod发出CPU与内存告警的问题,而这些问题会导致系统响应缓慢甚至是服务不可用。一般情况下可以通过重启或者调高Pod的资源量或者增加Pod数量暂时解决问题,但这是治标不治本的,只有找到问题发生的原因才能从根本上解决问题。那么在该如何快速定位到导致告警的原因呢?下面将汇总一下大致的处理思路。一般来说导致Java程序CPU与内存冲高的原因有两种:代码中某个位置读取数据量较大,导致系统内存耗尽,从而导致FullGC次数过多,系统缓慢。代码中有比较耗CPU的操作,导致CPU过高,系统运行缓慢。代码某个位置有阻塞性的操作,导致该功能

CPU狂飙900%,如何分析,怎么定位,怎么溯源处理

CPU飙升200%以上是生产容易发生的场景场景:1:MySQL进程飙升900%评估:大家在使用MySQL过程,想必都有遇到过CPU突然过高,或者达到200%以上的情况。数据库执行查询或数据修改操作时,系统需要消耗大量的CPU资源维护从存储系统、内存数据中的一致性。并发量大并且大量SQL性能低的情况下,比如字段是没有建立索引,则会导致快速CPU飙升,如果还开启了慢日志记录,会导致性能更加恶化。生产上有MYSQL飙升900%的恶劣情况。定位:使用top命令观察,确定是mysqld导致还是其他原因。如果是mysqld导致的,showprocesslist,查看session情况,确定是不是有消耗资源

FPGA远程更新/远程调试的一种简单方法

之前介绍过一种远程(无线)更新的方式,详见《起飞!通过无线WIFI下载调试FPGA》,这种方式缺点有两个:一是速度较慢;二是我们的设备中需要增加一个无线设备,增加成本的同时增加了暴露的风险。这两点即无法在调试的时候使用也没办法在实际设备中使用。今天我们再介绍另一种简单方式。下面是目前我们很多设备常用的硬件架构,这种架构中,我们可以很方便使用嵌入式设备作为“桥梁”用来调试FPGA,其实这也是XVC方案的“变种”。为了演示上面的方案,使用树莓派+FPGA进行方案验证。Xilinx的PlatformCableUSBIIJtagPi我们知道正常的调试器/下载区的JTAG接口可以兼容很多芯片,所以首先需

基于FPGA的 TMDS 编码 及 HDMI 显示

目录引言TMDS编码原理简介TMDS编码实现 HDMI差分数据串行实现方法源码HDMI显示方法思路实现工程结构源代码分享板级调试视频引言最近在开发板上倒腾了一下TMDS视频编码的原理以及实现。特在此做一个记录。文附全部设计源码、MATLAB源码,需要的可以关注一下。TMDS编码原理简介TMDS,TransitionMinimizedDifferentialSignaling,是一种视频编码方式。其将8位数据编码为10位数据。分为两大阶段:1、8bit—>9bit第一比特不变,接下来的7比特或者是与上一比特异或,或者是同或,取决于哪种结果导致翻转数较少;第9比特指示是哪种操作(异或或者同或);2

FPGA基本算术运算

FPGA基本算术运算FPGA基本算术运算1有符号数与无符号数2浮点数及定点数I、定点数的加减法II、定点数的乘除法3仿真验证i、加减法验证ii、乘除法验证FPGA基本算术运算  FPGA相对于MCU有并行计算、算法效率较高等优势,但同样由于没有成型的FPU等MCU内含的浮点数运算模块,导致一些基本的符号数、浮点数运算需要我们自己进行管理。因此需要我们对基本的运算法则进行了解。基本类别如下,即:1有符号数与无符号数   无符号数即为没有符号的数,简单点就是全部为正数运算的数没有负数。有符号数字便是有正与负数的数。那么在同样位数的条件下,表示的有符号数范围更加少,如下。reg[7:0]unsign

swift - 在后台线程中运行 SpriteKit 进程以提高 CPU 使用率

我正在使用Swift和SpriteKit构建我的第一款游戏,但我在CPU使用和电池生命周期方面遇到了很多问题。我想知道在后台线程中运行某些任务(例如实例化坏人)是否是常见的做法;如果是这样,我将如何实现呢? 最佳答案 如果这是您的第一款游戏,除非您真的知道自己在做什么,否则您可能不想为多线程而疯狂。请注意,操作SKNode必须在运行SKView(Private)_update:的同一线程上完成。这是运行runActionblock的同一个线程。如果你不这样做,你就会崩溃。在我正在开发的SpriteKit游戏中,我是​​多线程的,没有