【FPGA实战】基于DE2-115实现数字秒表
【FPGA实战】基于DE2-115实现数字秒表
- 一、项目概述
- 二、层次化设计架构
- 三、核心模块实现原理
- 1. 时钟分频模块(clock_divider.v)
- 2. 按键处理模块
- 2.1 消抖(debounce .v)
- 2.2 边沿检测(edge_detector .v)
- 3. 时间计数模块(time_counter .v)
- 4. 显示驱动模块(seven_seg_display.v)
- 5.顶层模块(minute_second_counter_top.v)
- 三、引脚配置
- 四、实验效果
- 五、总结与扩展
一、项目概述
本设计实现了一个基于FPGA的数字秒表系统,主要功能包括:
- 精确到秒的计时功能(最大59:59)
- 按键控制启动/暂停(切换模式)
- 四位数码管显示(带分钟小数点)
- 50MHz时钟分频处理
- 按键消抖处理
二、层次化设计架构
采用自顶向下的设计方法,分为五个核心模块:
- 顶层模块:minute_second_counter_top
- 时钟分频模块:clock_divider
- 按键处理模块:debounce + edge_detector
- 时间计数模块:time_counter
- 显示驱动模块:seven_seg_display
三、核心模块实现原理
1. 时钟分频模块(clock_divider.v)
我们需要的是一个能够计数到60s然后进位1min的分秒计数器,所以秒计数器是0-59,分计数器也是0-59。
那么要实现这个分秒计数器的话,我们需要分频将系统时钟分频成1Hz的信号,作为计数器的基准时钟。
其次就是需要一个计数器控制模块,当秒计数器在使能信号有效时,每个时钟周期+1,达到59时归零,分计数器+1。当暂停按键被按下时使能信号被关闭,计数器停止。
module clock_divider (input clk,input reset_n,output reg one_sec_enable
);reg [25:0] counter;always @(posedge clk or negedge reset_n) beginif (!reset_n) begincounter <= 0;one_sec_enable <= 0;end else beginif (counter == 26'd49_999_999) begincounter <= 0;one_sec_enable <= 1;end else begincounter <= counter + 1;one_sec_enable <= 0;endend
endendmodule
2. 按键处理模块
由于按键按下时,信号会抖动,所欲我们需要在检测到按键变化后再延迟一段时间,再次进行检测以判断按键状态是否稳定。当然,这个延迟时间不要太长大概20ms。
如果稳定,则输出有效的按键信号,我们可以用计数器来实现案件后延时时间的计数。
2.1 消抖(debounce .v)
module debounce (input clk,input reset_n,input key_in,output reg key_out
);reg [19:0] counter;
reg key_in_sync;always @(posedge clk or negedge reset_n) beginif (!reset_n) beginkey_in_sync <= 1;counter <= 0;key_out <= 1;end else beginkey_in_sync <= key_in;if (key_in_sync != key_out) beginif (counter == 20'd999_999) beginkey_out <= key_in_sync;counter <= 0;end else begincounter <= counter + 1;endend else begincounter <= 0;endend
endendmodule
2.2 边沿检测(edge_detector .v)
module edge_detector (input clk,input reset_n,input signal_in,output rising_edge
);reg signal_delay;always @(posedge clk or negedge reset_n) beginif (!reset_n) beginsignal_delay <= 1'b0;end else beginsignal_delay <= signal_in;end
endassign rising_edge = signal_in & ~signal_delay;endmodule
检测按键释放的上升沿
确保每次按键只触发一次动作
3. 时间计数模块(time_counter .v)
采用四级BCD计数器级联:
module time_counter (input clk,input reset_n,input one_sec_enable,input start_pause_rise,output reg [3:0] min_tens,output reg [3:0] min_ones,output reg [3:0] sec_tens,output reg [3:0] sec_ones
);reg pause_state;always @(posedge clk or negedge reset_n) beginif (!reset_n) beginpause_state <= 1'b0;{sec_ones, sec_tens, min_ones, min_tens} <= 16'd0;end else begin// 暂停状态切换if (start_pause_rise) beginpause_state <= ~pause_state;end// 时间计数if (!pause_state && one_sec_enable) beginif (sec_ones == 9) beginsec_ones <= 0;if (sec_tens == 5) beginsec_tens <= 0;if (min_ones == 9) beginmin_ones <= 0;min_tens <= (min_tens == 5) ? 0 : min_tens + 1;end else beginmin_ones <= min_ones + 1;endend else beginsec_tens <= sec_tens + 1;endend else beginsec_ones <= sec_ones + 1;endendend
endendmodule
4. 显示驱动模块(seven_seg_display.v)
要将分秒计数器的值通过七段数码管显示,我们就要将计数值(二进制)转化16进制。
module seven_seg_display (input clk,input reset_n,input [3:0] min_tens,input [3:0] min_ones,input [3:0] sec_tens,input [3:0] sec_ones,output reg [7:0] hex3,output reg [7:0] hex2,output reg [7:0] hex1,output reg [7:0] hex0,output reg [3:0] dig
);reg [16:0] scan_counter;
reg [1:0] scan_sel;// 扫描计数器
always @(posedge clk or negedge reset_n) beginif (!reset_n) beginscan_counter <= 0;scan_sel <= 0;end else beginif (scan_counter == 17'd49_999) beginscan_counter <= 0;scan_sel <= scan_sel + 1;end else beginscan_counter <= scan_counter + 1;endend
end// 位选信号
always @(*) begincase (scan_sel)2'b00: dig = 4'b1110;2'b01: dig = 4'b1101;2'b10: dig = 4'b1011;2'b11: dig = 4'b0111;default: dig = 4'b1111;endcase
end// 七段译码
always @(posedge clk) begincase (scan_sel)2'b00: beginhex0 <= seg7(sec_ones, 1'b0);{hex3, hex2, hex1} <= {8'hFF, 8'hFF, 8'hFF};end2'b01: beginhex1 <= seg7(sec_tens, 1'b0);{hex3, hex2, hex0} <= {8'hFF, 8'hFF, 8'hFF};end2'b10: beginhex2 <= seg7(min_ones, 1'b1); // 分钟个位带小数点{hex3, hex1, hex0} <= {8'hFF, 8'hFF, 8'hFF};end2'b11: beginhex3 <= seg7(min_tens, 1'b0);{hex2, hex1, hex0} <= {8'hFF, 8'hFF, 8'hFF};endendcase
end// 七段译码函数
function [7:0] seg7;input [3:0] bcd;input dp;begincase (bcd)4'd0: seg7 = {dp, 7'b1000000};4'd1: seg7 = {dp, 7'b1111001};4'd2: seg7 = {dp, 7'b0100100};4'd3: seg7 = {dp, 7'b0110000};4'd4: seg7 = {dp, 7'b0011001};4'd5: seg7 = {dp, 7'b0010010};4'd6: seg7 = {dp, 7'b0000010};4'd7: seg7 = {dp, 7'b1111000};4'd8: seg7 = {dp, 7'b0000000};4'd9: seg7 = {dp, 7'b0010000};default: seg7 = 8'b11111111;endcaseend
endfunctionendmodule
5.顶层模块(minute_second_counter_top.v)
module minute_second_counter_top (input clk, // 50MHz时钟input reset_n, // 复位信号input start_pause, // 启动/暂停按键output [7:0] hex3, // 分钟十位output [7:0] hex2, // 分钟个位(带小数点)output [7:0] hex1, // 秒十位output [7:0] hex0, // 秒个位output [3:0] dig // 数码管位选
);// 内部信号定义
wire start_pause_debounced;
wire start_pause_rise;
wire one_sec_enable;
wire [3:0] min_tens, min_ones, sec_tens, sec_ones;// 模块实例化
clock_divider u_clock_divider (.clk(clk),.reset_n(reset_n),.one_sec_enable(one_sec_enable)
);debounce u_debounce (.clk(clk),.reset_n(reset_n),.key_in(start_pause),.key_out(start_pause_debounced)
);edge_detector u_edge_detector (.clk(clk),.reset_n(reset_n),.signal_in(start_pause_debounced),.rising_edge(start_pause_rise)
);time_counter u_time_counter (.clk(clk),.reset_n(reset_n),.one_sec_enable(one_sec_enable),.start_pause_rise(start_pause_rise),.min_tens(min_tens),.min_ones(min_ones),.sec_tens(sec_tens),.sec_ones(sec_ones)
);seven_seg_display u_seven_seg_display (.clk(clk),.reset_n(reset_n),.min_tens(min_tens),.min_ones(min_ones),.sec_tens(sec_tens),.sec_ones(sec_ones),.hex3(hex3),.hex2(hex2),.hex1(hex1),.hex0(hex0),.dig(dig)
);endmodule
三、引脚配置
引脚配置如下图所示:
四、实验效果
[Verilog]DE2-115分秒计时器演示视频
五、总结与扩展
本设计实现了完整的秒表计时功能和按键交互。
在实现过程中出现了许多问题,建议先构思实现代码再进行层次化设计,这样会省很多麻烦。
相关文章:
【FPGA实战】基于DE2-115实现数字秒表
【FPGA实战】基于DE2-115实现数字秒表 一、项目概述二、层次化设计架构三、核心模块实现原理1. 时钟分频模块(clock_divider.v)2. 按键处理模块2.1 消抖(debounce .v)2.2 边沿检测(edge_detector .v) 3. 时间计数模块(time_counter .v)4. 显示驱动模块(seven_seg_display.v)5.顶…...
动态规划入门:从记忆化搜索到递推
本篇笔记基于b站灵茶山艾府。 198. 打家劫舍 你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统…...
Linux 入门:基础开发工具(上)vim,gcc/g++,make/makefile
目录 一.软件包管理器 一).软件包 二).安装软件 三).删除软件 二.编辑器vim 一).vim的基本介绍 1.正常/普通/命令模式(Normal mode) 2.插入模式(Insert mode) 3.底行模式(last line mode) 二).vim的基本操作 …...
golang 的channel
理解 Go 语言的 Channel Channel 是 Go 语言中用于 goroutine 之间通信和同步的重要机制。通过 channel,goroutine 可以安全地交换数据,避免了共享内存带来的竞态条件和内存一致性问题。 1. Channel 的基本概念 Channel 是一个先进先出(FI…...
HarmonyOS Next~鸿蒙元服务开发指南:核心功能与实践
HarmonyOS Next~鸿蒙元服务开发指南:核心功能与实践 一、元服务核心概念 原子化服务定义 元服务(原子服务)是鸿蒙系统的核心架构单元,具备独立业务能力的轻量化服务模块,支持免安装、跨设备调用和智能分发…...
stm32面试
数据结构相关问题 stm32面试 数据结构相关问题 目录基础数据结构树与图排序与查找算法 Linux相关问题Linux系统基础Linux命令与脚本Linux网络与服务 操作系统相关问题操作系统基础概念操作系统调度算法操作系统同步与通信 STM32相关问题STM32硬件基础STM32编程与开发STM32应用与…...
构建大语言模型应用:句子转换器(Sentence Transformers)(第三部分)
本系列文章目录 简介数据准备句子转换器(本文)向量数据库搜索与检索大语言模型开源检索增强生成评估大语言模型服务高级检索增强生成 RAG 在之前的博客中,我们学习了为RAG(检索增强生成,Retrieval Augmented Generati…...
新能源汽车空调系统(R134A)性能评估(一)
国内外主流空调系统厂家:贝尔、德尔福、空调国际、法雷奥、电装、松芝、杰信、新电、豫新等 泛亚汽车的空调电子部是比较优秀的整车空调研发团队。 空调系统综合试验台架是一套由试验室、风量测定装置、空气调和器、空气温度测定装置、湿度测定装置、加热器试验辅助…...
STRUCTBERT:将语言结构融入预训练以提升深度语言理解
【摘要】最近,预训练语言模型BERT(及其经过稳健优化的版本RoBERTa)在自然语言理解(NLU)领域引起了广泛关注,并在情感分类、自然语言推理、语义文本相似度和问答等各种NLU任务中达到了最先进的准确率。受到E…...
MCP协议的Streamable HTTP:革新数据传输的未来
引言 在数字化时代,数据传输的效率和稳定性是推动技术进步的关键。MCP(Model Context Protocol)作为AI生态系统中的重要一环,通过引入Streamable HTTP传输机制,为数据交互带来了革命性的变化。本文将深入解读MCP协议的…...
基于 RK3588 的 YOLO 多线程推理多级硬件加速引擎框架设计(代码框架和实现细节)
一、前言 接续上一篇文章,这个部分主要分析代码框架的实现细节和设计理念。 基于RK3588的YOLO多线程推理多级硬件加速引擎框架设计(项目总览和加速效果)-CSDN博客https://blog.csdn.net/plmm__/article/details/146542002?spm1001.2014.300…...
stm32 can 遥控帧的问题
STM32单片机使用CAN协议进行通信 引用这个博客的一段话 CAN的遥控帧(Remote Frame)的主要作用是请求其他节点发送具 有特定ID的数据帧。具体来说,当一个节点需要从另一个节点获取数 据时,它可以发送一个遥控帧,而不是…...
机器人基础知识-1
1.六轴机器人中的六轴是什么? 第一轴(J1):底座旋转 控制机器人整体绕垂直轴旋转(左右摆动),决定工作范围的水平方向。 第二轴(J2):下臂前后摆动 驱动机器人的…...
JAVA- 锁机制介绍 进程锁
进程锁 基于文件的锁基于Socket的锁数据库锁分布式锁基于Redis的分布式锁基于ZooKeeper的分布式锁 实际工作中都是集群部署,通过负载均衡多台服务器工作,所以存在多个进程并发执行情况,而在每台服务器中又存在多个线程并发的情况,…...
如何在WordPress中强制用户使用强密码?
在如今网络安全备受关注的环境下,弱密码问题不容忽视。很多用户习惯在多个网站使用相同且简单的密码,这样一来,若不强制他们在 WordPress 网站上使用强密码,网站的安全性就会受到威胁。尤其对于在线商店、会员网站、多作者博客等站…...
鸿蒙NEXT开发Base64工具类(ArkTs)
import util from ohos.util;/*** Base64 工具类* author: 鸿蒙布道师* since: 2025/03/31*/ export class Base64Util {/*** 创建 Base64Helper 实例* returns Base64Helper 实例*/private static createBase64Helper(): util.Base64Helper {return new util.Base64Helper();}…...
基于HUTOOL实现RSA工具类
一、前言:用 Hutool 简化 RSA 加密开发,提升代码安全与效率 在当今数据安全至关重要的时代,RSA 非对称加密作为保护敏感信息的核心技术,广泛应用于通信加密、数字签名、密钥交换等场景。然而,手动实现 RSA 算法涉及复…...
flink 分组窗口聚合 与 窗口表值函数聚合 的区别
警告:分组窗口聚合已经过时。推荐使用更加强大和有效的窗口表值函数聚合。 参考官方文档 在 Apache Flink 中,分组窗口聚合(Group Window Aggregation) 和 窗口表值函数聚合(Windowing TVF Aggregation)…...
prompt_status:5: command not found: wc解决办法
问题出现背景 想配置uniapp的命令行,在.zprofile配置路径的时候PATH 前面少打了一个$,执行了 source,导致各种命令都失效。 解决办法 用fider 打开用户文件夹,Command Shift .显示隐藏文件,用文本编辑器修改一下&…...
《STL 六大组件之容器篇:简单了解 list》
目录 一、list 简介二、list 的常用接口1. 构造函数(constructor )2. 迭代器(iterator)3. 容量、修改和访问(capacity 、modify and access) 一、list 简介 简单来说,list 就是数据结构初阶中学…...
向量数据库学习笔记(2) —— pgvector 用法 与 最佳实践
关于向量的基础概念,可以参考:向量数据库学习笔记(1) —— 基础概念-CSDN博客 一、 pgvector简介 pgvector 是一款开源的、基于pg的、向量相似性搜索 插件,将您的向量数据与其他数据统一存储在pg中。支持功能包括&…...
TCP的连接建立
面向连接 定义:在发送数据之前,需要建立一条点到点的连接 (参数协商的过程。因为tcp要保证可靠,所以tcp通信是发生在双方之间、两端之间的,两端在正式发送数据之前需要约定一些初始参数,这个过程就是面向连…...
如何让AI帮你做用户运营:用户消费偏好分层和洞察
随着deepseek的爆火,我一直在想能不能用AI来帮我做用户运营,目前deepseek只能提供框架层面的运营建议,还无法实现将订单数据给到它,能够自动化分析并将用户分层,并给出可视化的运营洞察报表。但是,我要告诉…...
二分答案-P8647 [蓝桥杯 2017 省 AB] 分巧克力
题解:P8647 [蓝桥杯 2017 省 AB] 分巧克力 题目传送门 题目链接 一、题目描述 小明有N块不同尺寸的巧克力,需要切出K块相同大小的正方形巧克力分给小朋友们。要求找到能满足条件的最大的正方形边长。 二、题目分析 我们需要从N块巧克力中切出K个相…...
搜广推校招面经六十一
美团推荐算法 一、ANN算法了解么?说几种你了解的ANN算法 ANN 近似最近邻搜索(Approximate Nearest Neighbor Search)算法 1.1. KD-Tree(K-Dimensional Tree,K 维树) 类型: 空间划分数据结构适用场景: 低…...
某地老旧房屋自动化监测项目
1. 项目简介 自从上个世纪90年代以来,我国经济发展迅猛,在此期间大量建筑平地而起,并且多为砖混结构的住房,使用寿命通常约为30-50年,钢筋混凝土结构,钢结构等高层建筑,这些建筑在一般情况下的…...
【第一节】Python爬虫基础-HTTP基本原理
目录 前言 一、URI和URL是什么 二、什么是超文本 三、HTTP和HTTPS的区别 四、HTTP请求过程 五、请求 六、响应 前言 在着手开发爬虫程序之前,我们需要先掌握一些基础概念。本节将详细讲解HTTP的基本工作原理,重点分析从浏览器输入网址到获取网页内…...
docker打包使用有头模式playwright
1.打包镜像 创建Dockerfile文件如下 # playywright 官方镜像 FROM mcr.microsoft.com/playwright:v1.37.0-jammy# 设置非交互式环境变量和时区 ENV DEBIAN_FRONTENDnoninteractive ENV TZEtc/UTC# 安装 Python 3.9 和 pip(修复时区阻塞问题) RUN apt-g…...
VuePress 和 Docusaurus的对比
VuePress 和 Docusaurus 是两个流行的现代静态网站生成器 vuepress:首页 | VuePress Docusaurus:Docusaurus 博客 | Docusaurus中文文档 | Docusaurus中文网 一、技术栈和设计理念 VuePress 技术栈:基于Vue.js,专为技术文档设计,…...
JAVA数据库增删改查
格式 Main.java(测试类) package com.example;import com.example.dao.UserDao; import com.example.model.User;public class Main {public static void main(String[] args) {UserDao userDao new UserDao();// 测试添加用户System.out.println(" 添加用户 ");Us…...
MSTP多域生成树
协议信息 MSTP 兼容 STP 和 RSTP,既可以快速收敛,又提供了数据转发的多个冗余路径,在数据转发过程中实现 VLAN 数据的负载均衡。 MSTP 可以将一个或多个 VLAN 映射到一个 Instance(实例)(一个或多个 VLAN…...
HashMap 在 JDK 1.7 和 JDK 1.8 有什么区别
HashMap 在 JDK 1.7 和 JDK 1.8 中的实现存在显著差异,主要体现在以下几个方面: 1. 数据结构的变化 • JDK 1.7:HashMap 的底层数据结构是数组 单向链表。当哈希冲突发生时,新的元素会插入到链表的头部(头插法&#…...
Mysql忽略大小写
🚀欢迎来到我的【Mysql】专栏🚀 🙋我是小蜗,一名在职牛马。🐒我的博客主页 ➡️ ➡️ 小蜗向前冲的主页🙏🙏欢迎大家的关注,你们的关注是我创作的最大动力🙏🙏在 MySQL 中取消大小写区分主要涉及以下两个层面的配置,具体操作如下: 一、表名大…...
基于TradingView和CTPBee的自动化期货交易系统实现
引言 在量化交易领域,TradingView因其强大的技术分析工具和丰富的指标库而广受欢迎,但是其不支持国内期货自动化交易,CTPBee则是一个优秀的国产Python期货交易接口。本文将介绍如何将两者结合,实现一个完整的自动化交易系统。 本…...
昇腾CANN算子共建仓CANN-Ops正式上线Gitee,首批算子已合入
在人工智能技术呈指数级发展的今天,AI创新已走向更底层的算法创新,以DeepSeek为例,通过MoE模型架构和底层算法创新,不仅获取极佳的模型性能,又更大程度释放硬件性能,降低硬件使用成本。 算子,作…...
基于PyQt5的自动化任务管理软件:高效、智能的任务调度与执行管理
基于PyQt5的自动化任务管理软件:高效、智能的任务调度与执行管理 相关资源文件已经打包成EXE文件,可双击直接运行程序,且文章末尾已附上相关源码,以供大家学习交流,博主主页还有更多Python相关程序案例,秉着…...
Pycharm(八):字符串切片
一、字符串分片介绍 对操作的对象截取其中一部分的操作,比如想要获取字符串“888666qq.com前面的qq号的时候就可以用切片。 字符串、列表、元组都支持切片操作。 语法:字符串变量名 [起始:结束:步长] 口诀:切片其实很简单,只顾头来…...
C++编程学习笔记:函数相关特性、引用与编译流程
目录 一、函数的缺省参数 (一)全缺省参数 (二)半缺省参数 二、函数重载 (一)参数类型不同 (二)参数个数不同 (三)参数类型顺序不同 三、引用相关问题…...
Nginx 配置 HTTPS 与 WSS 完整指南
Nginx 配置 HTTPS 与 WSS 完整指南 本教程将手把手教你如何为网站配置 HTTPS 加密访问,并通过反向代理实现安全的 WebSocket(WSS)通信。以 https://www.zhegepai.cn 域名为例,完整流程约需 30 分钟完成。 一、前置准备 1.1 域名…...
链表基本操作
文章目录 1、单链表1.1 链表的创建1.2 链表的遍历1.3 链表的删除1.4 链表的插入1.5 链表和数组 2、双向链表2.1 双链表的创建2.2 双链表的删除2.3 双链表的插入2.4 双向循环链表2.5 双链表优缺点 1、单链表 链表是一种物理存储单元上非连续、非顺序的存储结构,插入…...
【huggingface 数据下载】ssh / https 不同的下载流程,hf 镜像下载注意事项
ssh 下载流程 在 linux 服务器上生成 ssh key将 pub key 放入 huggingface 的 setting 中通过 git lfs install 然后 git clone githf.co … 来下载数据 遇到的问题 一直卡在 Updating files 后 卡住的可能原因: 系统当前限制了允许监视的最大文件数࿱…...
简单版CentOS7配置haproxy
一、实验步骤 1、自行下载pes的tar包 然后解压到家目录下 tar -xzvf pes.tar.gz 2、创建一个目录 mkdir docker-compose-pes-lb2 3、在这个目录下写两个文件docker-compose.yml和haproxy.cfg docker-compose.yml version: 3 services: db: image: mysql:5.7.44 container…...
leetcode146.LRU缓存
思路源自 【面试高频】146. LRU 缓存 采用哈希表双向链表 put一个键值对时,采用头插法将缓存块置于等级较高的位置,如果put数量超出限制,那么就将尾部的缓存块删除,以此达到置换的一个效果 get一个键值对也是同样的思路…...
SpringIoC和DI
文章目录 OCP开闭原则DIP(依赖倒置原则)IOC(控制反转)依赖注入DI基于XML配置Beanset注入构造注入 使用注解存储beanController方法注解Bean扫描路径依赖注入三种注入方式优缺点分析 引入 当我们写了一个程序,遵循SpringMVC三层架构,表现层调用业务逻辑层…...
vue 路由
目录 一、路由的使用 二、声明式导航 2.1 声明式导航 2.2 声明式导航路由传参 2.2.1.字符串写法 2.2.2.对象写法 2.2.3 query 传参和 param 传参总结 2.3 命名路由 2.4 可选操作符 2.5 props 参数 三、编程式导航 3.1 replace 和 push 跳转…...
JAVA常见的 JVM 参数及其典型默认值
在 Java 线上应用中,JVM 参数的默认值取决于具体的 JVM 实现(如 Oracle JDK、OpenJDK、Zulu 等)、版本(如 Java 8、11、17 等)以及运行环境(物理机、容器等)。以下是常见的 JVM 参数及其典型默认…...
文件压缩与解压(zip4j)
maven依赖 <dependency><groupId>net.lingala.zip4j</groupId><artifactId>zip4j</artifactId><version>2.11.5</version></dependency>示例 //参数配置ZipParameters parameters new ZipParameters();parameters.setCompres…...
【操作系统】查内存泄漏方法
【操作系统】查内存泄漏方法 1. 通用检测方法1.1 代码审查1.2 运行时监测 2.Linux平台检测工具2.1 Valgrind工具套件2.2 AddressSanitizer (ASan)2.3 mtrace 3.Windows平台检测工具3.1 Visual Studio诊断工具3.2 CRT调试堆 4.嵌入式系统检测方法4.1 RT-Thread内存检测4.2 自定义…...
oracle常用sql
获取主键 1. 查询主键的两种常用方法 Oracle 的主键信息存储在以下两个视图中: USER_CONSTRAINTS:存储当前用户下所有表的约束信息(如主键、外键等)。 USER_CONS_COLUMNS:存储约束对应的列信息。 方法 1ÿ…...
【第十三届“泰迪杯”数据挖掘挑战赛】【2025泰迪杯】【思路篇】A题解题全流程(持续更新)
【第十三届“泰迪杯”数据挖掘挑战赛】【2025泰迪杯】A题解题全流程-思路(持续更新) 写在前面: 1、A题、C题将会持续更新,陆续更新发布文章 2、赛题交流咨询Q群:1037590285 3、全家桶依旧包含: 代码、…...