- 博客(62)
- 收藏
- 关注
原创 x64dbg 脚本常用命令
摘要 本文介绍了x64dbg调试工具的常用命令和使用方法。主要内容包括:变量定义(支持DWORD/QWORD类型)、日志打印(支持寄存器值和汇编指令判断)、内存操作(alloc/free)、单步执行命令(run/step/sto)、断点设置(软件/硬件/内存断点)、内置函数(字符串处理、模块信息、内存校验等)以及流程控制(循环和条件判断)。这些命令采用类汇编语法,可用于辅助软件调试。更详细的命令参考可查看x64dbg官方文档。
2026-01-01 23:32:21
155
原创 泰山派rk3566 wifi基础知识
本文系统介绍了Wi-Fi技术的基础概念及其在嵌入式开发中的应用。首先解释了Wi-Fi作为无线局域网技术的核心特点,包括无线连接、高带宽和广泛兼容性。接着详细阐述了Wi-Fi通信的基本流程和关键技术要素,如频段、信道、调制编码等。重点区分了Wi-Fi网络中的两种基本角色:接入点(AP)和站点(STA)的功能特点。最后指出理解这些概念对优化无线网络性能的重要性,并展望了Wi-Fi技术向更高效率、更低延迟方向的发展趋势。文章结合RK3566开发板平台,为开发者提供了Wi-Fi功能配置使用的实用指导。
2025-10-17 00:06:32
173
原创 泰山派rk3566 audio音频基础介绍
本文介绍了嵌入式系统中音频处理的基础知识,重点围绕RK3566平台的音频子系统展开。文章首先解释了音频信号从模拟到数字的转换过程,包括采样率、位深和声道等核心概念。随后详细分析了嵌入式音频开发中的关键接口:I2C用于控制音频编解码器,I2S作为专用音频数据传输总线,以及PCM作为原始音频格式和ALSA设备抽象的双重含义。通过对这些基础概念和接口的解析,为在RK3566平台上进行音频驱动开发和应用调试提供了理论基础。
2025-10-11 00:16:16
124
原创 SPI总线介绍
本文介绍了SPI总线的基本原理与应用。SPI(串行外设接口)是一种高速全双工同步串行通信协议,采用主从架构,通过SCLK、MOSI、MISO和CS四根信号线实现设备间通信。文章详细解析了SPI的四种工作模式(由时钟极性和相位决定)、数据传输时序(包括单字节和多字节传输)以及内部移位寄存器工作原理。SPI具有传输速率高(10-50Mbps)、全双工通信等优势,但也存在引脚占用多、无硬件校验等局限。该协议广泛应用于微控制器与传感器、存储器等外设的短距离数据交换场景。
2025-10-02 22:37:41
76
原创 I2C总线介绍
本文介绍了I2C总线的基础知识,包括其定义、特点、基本概念和通信时序。I2C是一种两线式串行通信协议,采用主从结构,支持多设备连接。文章详细解析了I2C的数据帧格式、起始/停止条件、地址传输、应答机制以及读写数据的具体流程,并强调I2C通信中SDA数据线先于SCL时钟线启动的关键特性。通过时序图和示例,帮助读者深入理解这一嵌入式系统中广泛使用的重要通信协议。
2025-10-02 22:37:20
94
原创 泰山派rk3566中使用交叉编译工具编译测试程序
本文介绍了在泰山派rk3566开发板中快速验证测试程序的方法。通过使用SDK自带的交叉编译工具链(位于prebuilts/gcc目录),配合buildroot输出的staging目录作为sysroot,可以正确编译针对开发板的测试程序。文中提供了示例hello.c程序和配套Makefile,重点说明了sysroot参数的必要性。编译完成后,可通过adb工具将程序上传至开发板运行测试,介绍了常用的adb命令如push、shell等。这种方法避免了完整编译rootfs的时间消耗,能快速验证程序功能,提高开发效率
2025-10-02 22:36:49
117
原创 rk3566泰山派uart串口基础使用(应用层)
本文介绍了在RK3566泰山派嵌入式Linux系统下使用UART3进行串口通信的方法。主要内容包括:1)硬件连接说明,使用引脚8(TX)和10(RX)进行连接;2)常用串口调试工具介绍(iPOP、MobaXterm);3)Linux应用层操作流程,包括串口参数配置和读写操作;4)提供了两个实用示例:UART回环测试和基于状态机的串口命令处理框架。回环测试通过短接TX/RX验证了UART3正常工作,命令处理框架则实现了数据帧封装和校验机制。文中包含了完整的代码实现和测试结果截图,为嵌入式Linux下的串口开发
2025-10-02 22:36:19
546
原创 uart串口介绍
本文介绍了UART串口通信的基础知识。UART(通用异步收发器)是一种实现串行通信的硬件模块,通过TX/RX双线传输数据,无需共用时钟线。文章详细讲解了UART的关键参数:波特率(通信速度)、数据帧格式(起始位+数据位+停止位)以及流控机制(硬件RTS/CTS和软件XON/XOFF)。作为嵌入式开发中最基础的通信方式,UART广泛用于设备调试、传感器通信等场景。文中特别强调UART属于异步通信,没有时钟信号,通信双方需预先约定相同波特率才能正常传输数据。
2025-10-02 22:35:37
84
原创 万用表和示波器使用
本文介绍了嵌入式开发中万用表和示波器的基本使用方法。万用表主要用于测量电压和识别地线,通过选择合适挡位(如2V/20V)并连接表笔即可测量;蜂鸣器挡位可快速检测GND引脚。示波器用于观察总线波形(如I2C、SPI),通过调节XY轴量程或使用AUTO功能自动显示波形。掌握这两种工具的操作能有效辅助硬件调试,确保电路功能正常。
2025-10-02 22:34:12
93
原创 硬件原理图查看
本文介绍了如何通过原理图和位号图快速定位开发板上的硬件接口位置。首先需要同时使用原理图(了解器件连接方式)和位(确定物理位置)。以查找调试串口为例,在原理图中搜索"uart"找到调试串口UART2,确认其连接至RK3566芯片的GP-IO0_D0_u和GPIO0_D1_u管脚,再通过位号图找到对应接口CN2的物理位置。最后通过放大原理图确认各引脚定义,实现从原理图到物理板件的精准定位。这种方法适用于各类硬件调试场景,如查找测试点、更换元器件等。
2025-10-02 22:33:38
204
原创 泰山派rk3566 linux sdk 修改内核增加模块
本文介绍了在泰山派RK3566 Linux SDK中添加内核模块的方法。首先明确编译环境为Ubuntu 22.04,并指出官方文档参考。核心步骤包括:1) 修改配置文件(rockchip_linux_defconfig)添加模块选项;2) 提供简单测试模块代码示例;3) 编写Kconfig和Makefile文件。最后说明可通过CONFIG_HELLO_MODULE=m生成ko模块,或设为y直接编译进内核。该方法适用于泰山派Linux开发环境的内核模块扩展需求。
2025-10-02 22:32:30
75
原创 立创泰山派rk3566 linuxsdk添加自己的程序
本文介绍了在Ubuntu 22.04环境下,基于RK3566 Linux SDK开发时,如何通过Buildroot系统添加自定义软件包的方法。主要内容包括:1)创建软件包目录结构和配置文件;2)编写Makefile实现编译安装逻辑;3)通过menuconfig配置选择自定义包;4)验证编译结果和rootfs集成效果。文章提供了完整的配置示例和编译命令,适合开发者参考学习Buildroot软件包集成流程。
2025-10-02 22:28:21
317
原创 泰山派rk3566烧录
摘要: 本文介绍了泰山派RK3566开发板的两种烧录方式:Loader升级模式和MASKROM升级模式。Loader模式通过按键组合进入,适用于系统正常启动时的固件升级;MASKROM模式需短接焊点强制进入,常用于救砖或开发调试。教程详细演示了Android和Buildroot镜像的烧录步骤,包括工具使用(RKDevTool)、驱动安装及分区表查看方法,并附官方文档和操作截图。两种模式均支持固件刷写,但MASKROM模式依赖硬件短接,适用性更广。
2025-10-02 22:26:53
376
原创 泰山派rk3566 sdk编译
本文介绍了泰山派RK3566开发板的SDK编译方法,包含Linux和Android两个系统的编译流程。Linux SDK编译使用build.sh全编译后通过mkfirmware.sh打包固件,建议保存dl目录加速后续编译。Android SDK部分以示例代码展示数据读取操作。文章提供了官网文档链接和SDK下载地址,并说明编译产物路径及文件拷贝注意事项,最后总结了两种系统的编译教程。
2025-10-02 22:25:31
197
原创 ffmpeg推流测试
本文介绍了使用FFmpeg在不同系统间推流USB摄像头画面的操作步骤。测试1展示了Windows通过FFmpeg将摄像头画面推流到Linux端播放的方法,包括配置文件说明和具体命令参数解析。测试2实现了从Windows到Linux再到另一个Windows的转发流程,详细说明了中继命令和接收配置。文中还提供了设备故障时的简单处理方法(插拔摄像头),并对比了Windows和Linux系统下的FFmpeg版本差异。这些操作适用于20元左右的普通USB摄像头,为跨平台视频流传输提供了实用方案。
2025-09-13 17:39:41
444
原创 unity基础知识
本文介绍了Unity开发的基础知识,主要包括三个核心概念:1)GameObject作为场景中的基本容器;2)Component为GameObject提供功能模块;3)C#脚本作为自定义逻辑的组件。文章还简述了Unity内存的三大区域(托管域、本地域、外部库域)和项目结构基础(项目、场景、资源、预制体)。最后总结了Unity开发的核心流程:创建场景、添加GameObject、挂载组件、编写脚本并运行测试。这些基础知识为理解Unity游戏开发框架提供了入门指引。
2025-08-27 00:27:12
962
原创 Il2CppInspector 工具linux编译使用
Il2CppInspector工具源码下载编译和使用提示:以下是本篇文章正文内容,下面案例可供参考以上介绍了Il2CppInspector软件的编译和使用。
2025-08-26 20:27:07
429
原创 frida实现简易内存扫描
本文介绍了使用Frida实现内存扫描的方法,主要针对Android设备。通过Process.enumerateRanges和addr.readU32()和memory.scan进行内存扫描。文章提供了完整的JS代码实现,包含以下功能: scan(value):扫描指定int32值 refine(value):二次筛选结果 list():显示扫描结果 write()/read():内存读写操作 自动检测大小端序 支持多种数据类型转换(int32/float等) 代码可直接在Frida CLI中使用
2025-08-26 01:01:30
558
原创 frida hook工具基础使用
本文介绍了Frida动态插桩工具的基本使用方法。Frida支持多平台(Android/iOS/Windows等),可通过JavaScript/Python脚本Hook目标进程。主要内容包括:1)Frida组件说明(server/CLI/Python API等);2)Windows环境配置步骤(启动frida-server、查看进程、进入交互命令行);3)Android模拟器使用方法(root权限、推送server、进程附加);4)两种平台通用的JS脚本注入方式。文章最后指出Frida主要使用JS进行逻辑控制
2025-08-17 11:44:31
1070
原创 c++常用对象内存布局
本文介绍了C++中常用对象string和vector的基本特性及使用方法,重点展示了string类的内存布局分析示例。文章在Linux内核5.10.92环境下,使用gcc 10.3.1编译器,通过代码示例演示了如何检测字符串对象的内部存储结构。通过dumpStringObject和printStringInfo函数,对比分析了短字符串(SSO优化)、长字符串(堆分配)、空字符串和预留容量字符串四种情况下的内存分布特征,包括对象地址、大小、容量、数据指针位置及内容等信息,揭示了不同长度字符串在内存中的存储差异
2025-08-17 00:32:55
585
原创 linux内核报错汇编分析
摘要 本文介绍了Linux内核错误分析的基本方法。当内核报错显示类似device_add+0xcf/0x860信息时,可通过三种方法定位具体代码行:1)通过System.map查找函数地址后反汇编;2)使用addr2line命令直接解析地址;3)利用gdb调试vmlinux文件查看行号信息。这些技术能有效解决内核报错定位困难的问题,帮助开发者快速定位问题根源。
2025-07-29 18:02:51
360
原创 linux内核中kfifo实现队列
本文介绍了Linux内核中的kfifo队列实现,基于5.10.92内核版本。kfifo是一种高效的无锁FIFO队列,适用于内核模块间的数据传递。文章详细说明了kfifo的特点(如字节大小需为2的幂次方)和使用场景(单生产者/消费者无需加锁)。重点展示了一个封装kfifo的接口实现,包括队列创建/销毁(vgpu_kfifo_queue_create/destroy)、阻塞/非阻塞入队(vgpu_kfifo_enqueue/enqueue_nonblock)等核心操作,通过互斥锁和等待队列实现线程安全。代码示例
2025-07-28 22:23:43
283
原创 linux kprobe使用示例
摘要 本文介绍了Linux内核中的kprobe机制及其应用。kprobe允许开发者在不修改内核源码的情况下,在函数调用前后插入探测点,用于调试和性能分析。文章提供了两种实现方式:1)通过模块参数动态指定单个函数进行探测;2)预设函数列表批量注册探测点。当目标函数被调用时,kprobe会打印函数名、地址和调用栈信息。同时附带了ftrace脚本用于获取更详细的调用堆栈。该方案基于Linux 5.10.92内核实现,为内核调试和函数调用跟踪提供了灵活的工具支持。
2025-07-28 18:22:47
503
原创 js游戏简单修改
摘要 本文介绍了如何通过浏览器调试工具修改HTML5 JavaScript游戏。H5 JS游戏是利用HTML5技术和JavaScript开发的网页游戏,无需安装插件即可运行。文章详细说明了使用谷歌开发者工具(chrome://inspect/)进行调试的步骤:通过Inspect功能进入调试界面,使用断点和watch追踪变量,发现游戏画廊的解锁判断逻辑。关键是通过log定位到决定画廊解锁状态的全局变量,将该变量初始化为1并移除相关初始化代码即可解锁内容。该方法适用于通过修改全局变量来调整游戏状态的简单JS游戏
2025-07-05 21:36:10
673
原创 rpgmaker android js常用属性解析
摘要:本文介绍了如何调试RPG Maker制作的HTML网页游戏。通过AndroidKiller解压后,可在项目目录使用Python启动本地服务器(python -m http.server 8000),浏览器访问即可运行游戏。关键文件包括system.json中的switches(开关变量)和variables(游戏属性),通过控制台可直接修改(如$gameSwitches.setValue())。这种调试方式便于开发者实时测试游戏逻辑,无需编程即可快速调整开关状态与变量值。
2025-07-05 21:31:40
453
原创 x64dbg设置条件断点
摘要:本文介绍了使用x64dbg设置条件断点的方法,以调试Windows应用程序。通过CreateWindowExW函数设置窗口名称条件断点,并结合IDA分析代码,定位窗口处理函数。文章详细说明了如何利用RegisterClassW函数和调用堆栈找到窗口过程地址,以及如何对齐IDA与x64dbg中的基地址。最后探讨了如何通过错误输入弹出特定窗口来定位处理函数,为逆向工程分析提供实用技巧。
2025-06-29 18:42:20
1349
原创 linux mcelog inject注入
本文介绍了如何在Linux系统中使用mce-inject工具进行硬件错误注入,以测试系统对机器检查异常(MCE)的处理能力。首先,确保内核版本为5.10.92,并开启CONFIG_ACPI_APEI_EINJ选项,加载mce-inject模块。接着,通过脚本操作mce-inject的相关内核节点,模拟CPU、内存等硬件故障,并观察内核日志的输出。建议使用sw类型错误注入,避免系统panic。最后,总结了mce-inject的使用方法及其在内核日志中的表现。
2025-05-09 17:13:40
546
原创 windows编程字符串处理
Windows编程中主要使用两种字符串类型:ANSI字符串(char)和Unicode字符串(wchar_t)。ANSI字符串使用单字节编码,而Unicode字符串使用双字节编码(UTF-16)。为了编写跨平台的代码,Windows提供了TCHAR类型,它可以根据编译设置自动转换为char或wchar_t。CRT库中提供了对应的处理函数,如strlen和wcslen分别用于处理ANSI和Unicode字符串。提示:以下是本篇文章正文内容,下面案例可供参考。
2025-04-25 22:47:31
1127
原创 linux 手动触发崩溃
在Linux系统中,“crash”通常指的是操作系统遇到严重错误,导致其无法继续正常运行的情况。系统无响应:桌面环境或命令行界面停止响应用户输入,鼠标和键盘操作没有任何效果。内核崩溃(Kernel Panic):这是Linux系统遇到致命错误时的一种保护机制。当内核检测到系统状态无法恢复时,会打印出错误信息并停止所有进程的执行。这些信息通常包括错误类型、发生错误的代码位置等,有助于诊断问题所在。服务或应用程序异常退出。
2025-04-22 16:50:35
729
原创 金庸群侠传2 flash小游戏修改
之前玩过金庸群侠传2加强版的 flash游戏,感觉玩着不错,但是生命上限只有9999,太少了,而且经验获取和技能升级时间太长了,想要修改下。工具和修改后的游戏上传了csdn可以直接下载提示:以下是本篇文章正文内容,下面案例可供参考。
2025-04-13 12:49:41
1668
5
原创 androidstudio安装完成后创建新的示例项目编译报错解决
安装完成android studio想要编译一个自带的demo项目,有编译报错问题解决
2025-03-30 16:49:10
835
原创 stm32 gpio基础操作和中断操作
stm32 gpio基础操作函数示例提示:以下是本篇文章正文内容,下面案例可供参考介绍了stm32gpio的基本输入输出函数,和gpio复用成中断例子。
2024-10-26 22:26:23
459
原创 linux内核双向链表使用list klist
linux内核中大量使用了链表数据结构来存储各种数据,比如device和driver使用klist存储,下面是list和klist使用示例提示:以下是本篇文章正文内容,下面案例可供参考上面介绍了内核中list和klist和测试代码,仅供参考。
2024-09-26 17:34:33
1167
原创 1. stm32创建工程并下载
stm32单片机使用keli5创建工程并下载型号:stm32f103C8T6内核:ARM Cortex-M3主频:72MHz供电:2.0~3.6V(标准3.3V)封装:LQFP48提示:以下是本篇文章正文内容,下面案例可供参考stm32创建工程基础软件配置。
2024-09-21 18:01:16
1234
原创 linux内核 devtmpfs介绍
有一个全局的 requests 结构来接收发送的请求,这个结构是个 链表,新的请求将插入头部,request指向当前设置的req,然后唤醒等待的处理线程,等待处理完成。Devtmpfsd会先调用devtmpfs_setup函数挂载devtmpfs到 “/” 目录,然后进入work_loop,等待请求去创建和删除设备文件。devtmpfs是和tmpfs类似,是存在内存中的,不会存储到硬盘,主要功能是:创建和删除设备节点(mknod)设备节点(dev目录下的设备文件)本质是由vfs_mknod创建。
2024-09-20 16:02:34
1484
原创 socket远程命令通信简单实现
socket远程命令通信简单实现内核版本5.10cli端连接上ser端后,ser发送给cli端命令执行。cli支持命令:CMD_TYPE_TEST :测试,字符串通信CMD_TYPE_EXEC:执行程序CMD_TYPE_DOWNLOAD:下载文件CMD_TYPE_UPLOAD:上传文件上传和下载暂未实现。提示:以下是本篇文章正文内容,下面案例可供参考socket远程命令通信简单实现,目标支持命令:测试,字符串通信,执行程序,下载文件,上传文件。
2024-09-13 18:16:36
736
原创 linux内核kobject使用示例
linux内核kobject使用示例。提示:以下是本篇文章正文内容,下面案例可供参考linux内核kobject使用示例,创建kset后会在/sys 目录下创建kset name的目录,kobj也会自动创建对应name的目录。
2024-09-06 17:30:47
717
il2cppinspectot 编译后可运行程序,x86-64下
2025-08-25
linux kprobe 打印函数调用示例
2025-07-18
金庸群侠传2加强版10倍血气上限技能速升.swf
2025-04-13
cve自动化工具,用于自动从kernelorg下载cve补丁和测试补丁是否可以正常apply
2025-04-08
linux线程池c代码实现,一个管理线程轮询工作线程是否空闲,空闲的话从工作队列中取出work函数给工作线程处理
2024-08-08
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅