自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(146)
  • 收藏
  • 关注

原创 vxwokrs 异常处理记录

因此在定位异常问题过程中,可以通过内存管理先查看一下先前是否有内存写越界的记录,但是内存写越界只有在释放该内存区时才能检查到,如果该内存没有被释放,则即使写越界也是不知道的。vi) 多任务抢占引起的问题,当多个任务共同访问一个或者多个变量时,如果互斥不当,可能会产生同步或互斥的问题,比较典型的是:任务A和B都使用一个变量指针P;i) 可以使用“checkStack”命令看是否产生了堆栈溢出,如果是XXX任务的堆栈溢出,则在checkStack的打印中,XXX的堆栈状态会显示成“overflow”。

2025-09-10 14:32:16 194

原创 vxwokrs [tcp、select]

本文基于 VxWorks 平台,通过 select 机制实现了一个支持多客户端的 TCP 服务器,核心优势在于:高效 I/O 多路复用:单任务处理多客户端连接,降低资源开销;实时性适配:超时控制与任务优先级配置,满足嵌入式实时需求;可靠性设计:完善的错误处理与优雅退出机制,确保资源不泄漏。该方案可广泛应用于工业控制、车载通信、航空航天等嵌入式场景,为设备间数据交互提供稳定高效的通信基础。实际开发中,可根据业务需求扩展功能(如数据解析、加密传输),进一步提升服务器的实用性。

2025-09-10 14:04:25 387

原创 vxworks【udp、select】

include "vxWorks.h" // VxWorks 系统核心头文件#include <sys/socket.h> // BSD socket 接口(socket、bind、recvfrom 等)#include <netinet/in.h> // 网络地址结构(sockaddr_in、htons 等)#include <sys/select.h> // I/O 多路复用(select 函数)#include <string.h> // 内存操作函数(memset 等)

2025-09-10 11:32:14 542

原创 vxwokrs [自启动应用和deflate与inflate的使用]

当动态模块中的函数被attribute((constructor)) 修饰后,通过 loadModule 加载模块时,该函数会自动执行,无需使用 symFind 查找符号并手动调用。这一特性可简化模块加载流程,尤其适用于插件式架构或需要自动初始化的库模块。实际使用时需确保编译器、模块格式支持,并注意初始化顺序与错误处理。

2025-09-10 10:34:47 553

原创 vxworks 压缩与解压缩【deflate、inflate】

deflate是zlib库提供的核心压缩函数,用于将输入数据压缩为DEFLATE格式(一种无损数据压缩算法,广泛用于gzip、PNG等标准)。它支持流式压缩,可分多次处理数据,并通过控制参数平衡压缩率与速度,适用于各类需要动态压缩的场景(如网络传输、日志存储等)。vxInflate是Wind River VxWorks实时操作系统提供的专用解压缩函数,用于在嵌入式环境中快速解压缩数据(通常为DEFLATE或zlib格式的压缩数据)。

2025-09-10 10:13:14 573

原创 vxwokrs 自启动应用

这里可能会遇到一个问题,就是sata/sd/usb 之类的不工作。如果是读flash的内容启动就不用多次了。后续介绍一种自加载,不用symFind。

2025-09-09 14:39:13 130

原创 zynq7010 运行vxwokrs7【增加sd卡,sdio驱动和文件系统】

之前为50MHZ,查看手册后修改为100MHZ。添加 DRV_ZYNQ_SDHC_CTRL。添加 DRV_SDSTORAGE_CARD。添加 INCLUDE_DOSFS。烧写流程参考之前的文章。

2025-09-08 16:55:49 153

原创 zynq7010 vxworks7 出现ERROR: ipcom_drv_eth_init: drvname:gem, drvunit: 0问题解决

【代码】zynq7010 vxworks7 出现ERROR: ipcom_drv_eth_init: drvname:gem, drvunit: 0问题解决。

2025-09-03 16:32:43 58

原创 在 Zynq 7010 上运行 VxWorks 7.0 的详细流程 [完结]

串口时钟根据手册可能和vxworks7生成的默认代码不一致。

2025-09-02 17:37:21 189

原创 MIPS内存体系结构与龙芯1E300地址空间映射

场景选择kseg0还是kseg1?原因访问SDRAM(主内存)kseg0(优先)启用缓存提升数据访问速度,适合运行内核代码、频繁读写的数据区。系统复位/引导阶段kseg1无缓存映射确保CPU直接访问物理内存,避免缓存未初始化导致的启动失败。访问外设寄存器(MMIO)kseg1(强制)外设寄存器状态实时变化(如UART接收缓冲区、中断状态寄存器),缓存会导致读写结果不一致。

2025-09-01 13:50:05 599

原创 VxWorks 核心数据结构详解 【消息队列、环形缓冲区、管道、FIFO、双缓冲区、共享内存】

VxWorks 提供了丰富的数据结构工具集,选择时需结合线程安全需求、数据类型、吞吐量和实时性要求:结构化消息传递 → 消息队列;轻量级字节流缓冲 → 环形缓冲区(需同步);单向简单通信 → 管道;固定大小小数据 → FIFO;高频零拷贝数据 → 双缓冲区;超大吞吐量 → 共享内存(需自定义同步)。合理选择数据结构是保证 VxWorks 实时系统高效、稳定运行的关键。

2025-08-26 15:56:38 1042

原创 MIPS汇编快速入门 【龙芯】

MIPS(Microprocessor without Interlocked Pipelined Stages)是一种经典的RISC(精简指令集)架构,以流水线高效、指令简洁、低功耗为特点。龙芯(Loongson)系列处理器(如LS1E、LS1F、LS2K等)早期基于MIPS架构扩展设计,因此掌握MIPS汇编是理解龙芯底层驱动开发(如BSP、设备驱动)的基础。本文结合龙芯硬件特性,从寄存器、指令格式到实战示例,快速入门MIPS汇编。

2025-08-25 17:27:56 1087

原创 ZYNQ [Petalinux的运行]

安装之前先升级更新一下apt-get,输入apt-get update,保证安装的包都可以找得到,现无法安装,就先update一下,如果update之后还是无法安装,就先不用理会。生成一个可以拿到linux下使用的硬件描述文件,最后我们在linux下编译的时候需要用到。后面的需要安装的工具,如果大家发。由于我们导出硬件,生成硬件描述,启动SDK之后自动。这个文件在编译的时候需要用到,因为涉及到硬件的描述信息。配置界面启动之后如下(如果启动不了或者报错,请严格检查之前的每一步,包括包的安装是否安。

2025-08-25 16:38:11 1164

原创 VxWorks6.8 【VxBus介绍】

VxBus是Wind River为VxWorks 6.x及以上版本设计的设备驱动框架,旨在通过标准化的硬件抽象层(HAL)和驱动接口,简化嵌入式系统中设备驱动的开发、移植与管理。其核心目标是实现驱动与硬件平台的解耦,使同一驱动可在不同硬件架构(如x86、ARM、MIPS)上复用,同时支持动态设备枚举与资源分配。VxBus抽象了底层总线(如PCI、USB、PLB、I2C)的差异,驱动开发者无需关注具体总线协议,只需通过统一的接口(如vxbDevRegister、devResourceGet)与硬件交互。例如,

2025-08-25 10:33:34 482

原创 【VxWorks】龙芯上PCI设备的串口驱动开发

在VxWorks系统中,PCI设备的串口驱动开发通常有两种主流方式:直接PCI地址操作(适用于无标准驱动的自定义硬件)和基于tty设备框架(利用系统原生tty驱动接口)。本文结合实际项目代码,详细介绍两种开发流程的核心原理、实现步骤及应用场景,并对比其优缺点。VxWorks上PCI串口驱动开发需根据硬件特性选择合适的方式:直接PCI地址开发适合自定义硬件,需深入理解寄存器配置与PCI地址映射;tty设备开发利用系统框架,简化开发流程,适合标准串口控制器。

2025-08-19 14:50:45 828

原创 VxWorks入门 【VxWorks消息队列函数详解】八

功能创建一个消息队列,指定队列容量、消息最大长度及排队模式(FIFO/优先级)。函数原型int maxMsgs, /* 队列最大消息数(队列容量) */int maxMsgLength, /* 单条消息最大长度(字节) */int options /* 队列选项(FIFO/优先级) */参数说明maxMsgs:队列可容纳的最大消息数量(非0,超出后发送会阻塞或失败)。maxMsgLength:单条消息的最大字节数(发送消息时不可超过此值,否则被截断)。

2025-07-31 09:30:39 119

原创 VxWorks入门 【VxWorks多任务函数详解】七

代码创建2个任务顺序计数。

2025-07-30 14:32:48 625

原创 VxWorks入门 【VxWorks程序运行】六

设置编译选项为gnu。

2025-07-29 16:04:10 217

原创 VxWorks入门 【VxWorks虚拟机安装】六

如果报错修改 config.h

2025-07-29 13:49:19 712

原创 VxWorks入门 【生成VxWorks映像】五

2025-07-29 11:28:11 172

原创 VxWorks入门 【VxWorks命令】四

VxWorks是一个实时操作系统,广泛应用于嵌入式系统中。VxWorks Shell提供了丰富的命令集,帮助用户进行系统管理、调试和开发。以下是一些常用的VxWorks Shell命令及其使用示例。

2025-07-29 10:52:27 329

原创 VxWorks入门 【编译BSP】三

首先,我们复制一份纯净未做修改的 C:\WindRiver\vxworks-6.8\target\config\下的 pcPentium4文件夹,改名为 Pentium4(名称随便你起),再将该改名后文件夹放到config目录下,最好不要带空格或什么特殊符号。我们要修改编译 bootrom、VxWorks 的配置头文件 Config.h 中定义的一些参数,使编译出来的系统引导程序 bootrom 和 VxWorks 的映象符合我们的要求;1 修改config.h。

2025-07-29 10:37:19 692

原创 VxWorks入门 【Win7虚拟机中安装 WorkBench3.2】二

运行uiso9_cn.exe,一路默认安装UItraISO,注意选择附加任务时三项都要勾选,尤其是“安装虚拟ISO驱动器”(默认三项都勾选);2.加载DVD-R175636.1-1-00到虚拟光驱,如图1-2所示,接着打开所加载的虚拟光驱,运行setup程序;5.这一步选择Permanent activation(永久激活),将所给的.lic文件(证书)导入,如图1-4所示。4.这一步将Check都取消勾选,如图1-3所示。图1-1 UItraISO安装。图1-2 加载iso。图1-3 check。

2025-07-28 16:34:09 217

原创 QT开发技术【串口和C++20协程,实现循环发送、暂停、恢复、停止】

协程(Coroutine)是一种比线程更轻量级的并发编程概念。与线程不同,线程由操作系统进行调度,而协程由程序自身控制调度。协程可以在执行过程中暂停(suspend),并在合适的时候恢复(resume)执行,这使得编写异步代码变得更加简洁和直观,避免了传统回调函数带来的嵌套问题,也就是所谓的“回调地狱”。通过结合 Qt 的 QSerialPort 类和 C++20 协程特性,我们实现了一个功能丰富的串口数据发送程序,具备循环发送、暂停、恢复和停止的功能。

2025-07-25 16:03:47 732

原创 QT开发技术【qcustomplot 缩放平移还原以及用动态库报错error LNK2001: 无法解析的外部符号 “public: static struct QMetaObject const 】

interactions:这是一个 QCP::Interactions 类型的枚举值组合,代表用户与绘图区域交互的方式。QCP::iSelectPlottables:用户能够选中绘图区域里的可绘制对象(像曲线、散点等)。QCP::iRangeZoom:用户能够通过鼠标滚轮或者拖动矩形框来缩放绘图区域的坐标轴范围。QCP::iSelectItems:用户能够选中绘图区域的图形项(像文本标签、箭头等)。QCP::iRangeDrag:用户能够通过鼠标拖动来平移绘图区域的坐标轴范围。缩放后再次维持缩放绘制。

2025-07-24 14:38:32 311

原创 QT开发技术 【qt应用限制只能启动一个】

在开发 Qt 应用程序时,可能需要限制程序只能运行一个实例,以避免重复启动。QSharedMemory:通过共享内存检测是否已有实例运行。通过以上方法,可以有效限制 Qt 程序只能启动一个实例,从而避免重复运行的问题。提示用户:使用 QMessageBox 提示用户程序已启动,并退出当前实例。QLockFile:通过锁定文件实现进程间互斥,确保只有一个实例运行。通过共享内存判断是否已有程序运行,如果存在则退出当前实例。通过信号量和共享内存双重保护,确保单实例运行。共享内存:检测是否已有实例运行。

2025-07-07 16:33:43 340

原创 Qt开发技术【时域图通过fft转换为频域图,使用qcustomplot显示】

【代码】Qt开发技术【时域图通过fft转换为频域图,使用qcustomplot显示】

2025-07-07 11:05:39 294

原创 在 Zynq 7010 上运行 VxWorks 7.0 的详细流程【持续更新】

本文介绍了在Zynq 7010开发板上运行VxWorks 7.0的完整流程。主要包括:1)使用Vivado创建硬件设计,配置Zynq模块并生成比特流文件;2)通过Workbench 4创建VxWorks工程,配置启动参数并生成镜像;3)下载运行步骤。此外还讲解了使用Workbench 4开发VSB和VIP工程的方法,包括工程创建、配置和调试流程。文中提供了关键操作截图和注意事项,为开发者提供了完整的Zynq 7010平台VxWorks开发解决方案。

2025-06-24 15:58:00 825

原创 FFTW3库在Windows中的安装和使用

Windows 32位平台下载:FFTW Installation on Windows。

2025-06-18 09:52:18 615

原创 QT开发技术 [QXlsx 导出大量数据的崩溃大坑]

QXlsx 是一个基于 Qt 框架开发的开源库,用于读写 Excel 文件(.xlsx 格式),无需依赖 Microsoft Office 或第三方库。以下从多个方面为你详细介绍 QXlsx:主要特性读写功能:支持创建、读取和修改 Excel 文件,能处理单元格的数值、公式、格式等基本操作。样式设置:可以设置单元格的字体、颜色、对齐方式、边框等样式,还能创建自定义样式并应用到多个单元格。图表支持:支持创建多种类型的图表,如柱状图、折线图、饼图等,并能对图表的样式和属性进行配置。

2025-06-16 09:57:50 395

原创 QT开发技术【ffmpeg EVideo录屏软件 一】

修改实现了目前录制功能 ,目前只实现了录制电脑桌面视频没有加入音频,后续加入音频完善,并完成直播推流功能。

2025-06-09 16:45:01 827

原创 QT开发技术【ffmpeg + QAudioOutput】音乐播放器 完善

成功利用 Qt 和 FFmpeg 实现了一个简单的音乐播放器,掌握了音频解码、播放以及用户界面设计等相关技术。音频解码技术详解音频解码是将压缩的数字音频数据还原为原始波形信号的过程,是现代数字音频处理的核心环节。音频解码的基本流程数据输入:接收压缩的音频数据流(如MP3、AAC、FLAC等格式文件)格式解析:识别音频文件的封装格式和编码标准解码运算:根据特定算法进行解压缩运算,常见方法包括:频率域变换(如MP3使用的MDCT变换)预测编码解算熵解码(Huffman编码等)

2025-06-05 14:58:51 1248

原创 QT开发技术【ffmpeg + QAudioOutput】音乐播放器

在数字化浪潮席卷全球的当下,音视频内容犹如璀璨繁星,点亮了人们的生活与工作。从短视频平台上令人捧腹的搞笑视频,到在线课堂中知识渊博的专家授课,再到影视平台上扣人心弦的高清大片,音视频以其直观、生动的特性,成为信息传播与娱乐休闲的重要媒介。而在这繁华音视频世界的幕后,有一位低调而强大的“魔法工匠”——FFmpeg。FFmpeg 是一款声名远扬的开源音视频处理工具集,凭借其跨平台、功能强大等显著优势,在音视频领域占据着不可撼动的地位。

2025-06-04 16:22:31 1255 2

原创 QT开发技术【QTableView分页实现】

分页的核心思想是将大量数据分成多个较小的“页”,每次只加载和显示其中一页的数据。在 QTableView 中,这通常通过自定义 QAbstractTableModel 来实现。QAbstractTableModel 是一个抽象基类,需要我们重写一些关键方法,如 rowCount()、columnCount()、data() 等,以实现分页逻辑。

2025-05-30 10:51:55 601

原创 QT开发技术 【元对象系统反射机制 】三

三、元对象反射获取函数指针核心代码。通过反射或者xml文件中通道号。

2025-05-28 16:28:24 227

原创 02325 计算机系统结构【202504四川卷】

浮点数尾数 2 2 4 3。缓存 高速度、低价格。

2025-05-14 10:11:18 275

原创 QT开发技术 【元对象系统反射机制高级用法】 二

简易的通过qt的元对象系统,反射创建类,可应用到项目中通过xml,对界面进行删改。当一个界面插件实现使用该方法有奇效。

2025-05-12 15:28:53 323 2

原创 QT开发技术 【元对象系统对象反射】 一

下边开始讲Qt的反射。Qt的反射是基于Qt的元对象系统的。尤其是基本语法的扩展,比如信号槽,元对象系统,让C++一个静态语言有了动态语言的特性(当然你也可以用template来实现,但是这玩意儿一般人又用不起,而且写起来也比较恶心)。moc可以理解将Qt中的一些关键词,比如Q_Object ,Q_PROPERTY等转化为c++的基本语法,所以我们在编译Qt的工程时,首先要qmake->make。Qt最大的特点就是增加了moc的过程,个人理解,Qt扩展了C++的语法,以及增强了自己的基本库。

2025-05-12 10:47:07 803

原创 QT开发技术【qcustomplot 曲线与鼠标十字功能】

【代码】QT开发技术【qcustomplot 曲线与鼠标十字功能】

2025-04-28 09:37:46 396

原创 QT开发技术【QChart添加跟随鼠标的十字线】

【代码】QT开发技术【QChart添加跟随鼠标的十字线】

2025-04-27 16:49:36 253

opencv32位库 visual studio 2022

opencv32位库 visual studio 2022

2025-02-20

assimp库 加载各种模型文件

assimp库 加载各种模型文件

2024-12-17

C/C++面试题以及答案

C/C++面试题以及答案

2024-01-12

C++ 面试笔试题 2024

C++ 面试笔试题

2024-01-21

dpdk内存池mempool的源码实现

dpdk内存池mempool的源码实现

2023-12-26

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除