自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

最简示例破局!基础用法秒会,深层原理不绕弯。

跳过晦涩术语,用家常话讲透硬核技术。

  • 博客(231)
  • 资源 (27)
  • 收藏
  • 关注

原创 【Linux/Ubuntu】OpenCode +Oh My OpenAgent安装配置实践

OpenCode配置,Oh My OpenCode配置,Oh My OpenAgent配置指导

2026-03-29 13:22:39 4944

原创 【usb】windows usb驱动框架简介

本文介绍了Windows系统的USB主机端架构,重点解析了三个关键模块:1) USB通用类泛型父驱动程序(Usbccgp.sys),负责管理复合设备并为每个功能创建PDO;2) WinUSB(Winusb.sys),微软提供的通用USB驱动程序,支持内核模式和用户模式交互;3) USB客户端驱动程序,在复合和非复合设备中具有不同的堆栈位置。这些模块共同构成了Windows系统的USB驱动架构,支持设备管理和数据传输功能。

2025-09-26 20:51:22 570

原创 7【鸿蒙/OpenHarmony/NDK】N-API 中 napi_create_async_work 与 napi_call_threadsafe_function 的区别

本文对比了N-API两种异步处理方式:napi_create_async_work适用于一次性耗时的libuv线程池任务,采用"执行-完成"单向模式;而napi_call_threadsafe_function支持自定义线程多次安全调用JS函数,适合持续线程间通信。文章通过表格对比核心差异,详解各自工作流程,并给出选择建议:单次任务用前者,频繁通信选后者,二者也可结合使用。文末提供鸿蒙NDK开发系列教程链接,涵盖环境搭建到接口开发全流程。

2025-09-26 20:48:31 891

原创 6【鸿蒙/OpenHarmony/NDK】多线程调用 JS 总崩溃?用 napi_create_threadsafe_function 搞定线程安全交互

文章摘要: 鸿蒙NDK开发中,napi_create_threadsafe_function是解决非JS线程调用JS函数的关键方案。本文通过实战代码解析其核心用法:1)创建线程安全函数代理,避免线程竞争;2)在异步任务中安全触发JS回调;3)处理跨线程数据同步。典型场景包括后台计算回调、全局数据同步和多线程任务调度。提供完整代码示例,涵盖上下文管理、异步任务创建、线程安全调用及结果回传,帮助开发者规避内存错乱和线程阻塞问题。

2025-09-14 18:15:57 941 2

原创 5【鸿蒙/OpenHarmony/NDK】应用太卡?用 Node-API 异步任务解决:从卡顿根源到流畅方案

鸿蒙NDK异步处理开发指南 本文聚焦鸿蒙NDK开发中的异步处理技术,解析核心概念、应用场景与避坑要点。异步处理通过避免主线程阻塞,保障应用流畅性,适用于文件操作、网络请求等耗时场景。文章结合Node-API开发规范,强调四个关键避坑点: execute回调禁止使用JS环境变量; complete回调仅做结果转换,避免耗时操作; 动态内存需严格遵循申请-传递-释放流程; 异步任务删除须在complete回调后执行。 附官方文档与系列教程链接,帮助开发者系统掌握NDK异步编程。

2025-09-14 17:39:53 1176

原创 4【鸿蒙/OpenHarmony/NDK】如何在鸿蒙Navite C++样例代码中新增一个js接口?

摘要: 本文详细介绍了在鸿蒙应用中使用NDK实现字符串拼接功能的完整流程。首先在Index.d.ts声明JS接口ConcatenateString,通过Dev Eco自动生成C++模板后,重点解析了NAPI_Global_ConcatenateString的实现细节,包括参数校验、内存管理及字符串操作。最后在ETS页面验证接口功能,成功输出拼接结果。文章强调严格的类型检查和错误处理,并提供了Node.js N-API参考文档链接,帮助开发者深入理解底层机制。

2025-09-07 20:56:09 1102

原创 3【鸿蒙/OpenHarmony/NDK】如何在鸿蒙应用中使用NDK?

本文详细解析了鸿蒙NDK开发中如何实现JavaScript与C++的交互。首先介绍了在ETS代码中通过import testNapi from 'libentry.so'引入NDK模块,并通过配置文件使IDE能自动识别模块方法。重点剖析了C++侧的实现:1)使用napi_module_register注册模块;2)在Init函数中绑定JS方法与C++实现;3)通过napi_get_cb_info等NAPI接口处理参数传递和类型转换。文中以加法函数为例,完整演示了从JS调用到C++实现、参数解析和结果返回的全

2025-08-31 22:22:52 1311

原创 2【鸿蒙/OpenHarmony/NDK】什么是NDK? 为啥要用NDK?

什么是NDK,为什么要用NDK?适合使用NDK的场景:应用涉及如下场景时,适合采用NDK开发性能敏感的场景,如游戏、物理模拟等计算密集型场景。需要复用已有C或C++库的场景。需要针对CPU特性进行专项定制库的场景,如Neon加速。不建议使用NDK的场景:应用涉及如下场景时,不建议采用NDK开发纯C或C++的应用。希望在尽可能多的HarmonyOS设备上保持兼容的应用。

2025-08-10 21:57:52 469

原创 1【鸿蒙/OpenHarmony/NDK】C/C++开发教程之环境搭建

本文介绍了如何在鸿蒙系统上使用C/C++开发应用的实操指南。核心内容为:1)确认鸿蒙应用支持C/C++核心逻辑开发,但界面需用ArkTS;2)详细指导DevEco Studio安装及NDK工程创建,强调选择Native C++模板;3)提供真机运行和签名配置的关键操作截图;4)说明成功运行的验证标准(显示"Hello World"及日志输出)。文章采用"问题-解决"结构,配合图文指引开发者快速上手NDK开发,并鼓励读者在评论区交流优化建议。全文突出实操性,将官方文档要

2025-08-10 21:34:24 1944

原创 【Rust】所有权OwnerShip

rust使用由编译器检查的一些规则构成的所有权系统来管理内存。且这不会影响程序的运行效率。

2024-07-26 22:31:27 664

原创 【Rust】字符串String类型学习

使用String::from方法创建字符串,.更新String使用push_str和push追加字符串方法不会改变字符串的所有权使用+操作符或者 format!宏连接字符串Rust不允许使用下标访问字符串里面的单个字符

2024-07-10 22:54:26 974

原创 【Rust】Cargo介绍

为什么要有Cargo,Cargo可以做啥

2024-07-07 18:37:51 978

原创 【Rust】function和methed的区别

function和methed很多都是相通的。不同点在于,methed定义在结构体里面,并且它的第一个参数肯定是self,代表结构体实例。

2024-06-23 18:09:45 765

原创 【OpenHarmony】下载指定时间点的代码

【代码】【OpenHarmony】下载指定时间点的代码。

2023-12-20 11:35:18 519

原创 【自测试】gtest学习笔记

官网:https://google.github.io/googletest/primer.html。

2023-12-13 09:47:38 504

原创 【OpenHarmony】系统编译环境搭建笔记

【OpenHarmony】系统编译环境搭建笔记。

2023-10-24 15:26:51 752

原创 【usb】linux内核USB键盘驱动解析--普通键值上报及转化

在kbd->old中保存了上次报上来的键值,kbd->new中是本次报上来的键值。如果上次报了某键值,但是本次没报,说明该按键被释放了,所以上报案件旧释放事件。如果上次没有报某按键而这次报了,说明该按键是这次被按下了,所以要上报按键按下事件。

2023-04-02 16:03:08 1313

原创 【usb】linux内核USB键盘驱动解析--LED灯的控制

通过事先准备好urb,然后在里面需要时,直接修改leds数据,然后将该urb发送即可。

2023-04-02 14:38:52 2096 2

原创 【libusb】配置描述符解析分析

描述符解析基本分为三部分,查找描述符->解析描述符->保存未做解析的描述符。

2023-03-27 17:43:49 1076

原创 【usb】linux内核USB键盘驱动解析--特殊键值转化及上报

总结一下,117和118行的这个for循环,通过依次查看new[0]元素的各个位,确定该位对应的键是否被按下。并将该键值转化为输入子系统定义的键值,后上报给输入子系统。

2023-03-26 20:05:20 1556

原创 【USB】windows热插拔通知接口分析

window提供了方法,可以用来监听设备的热插拔事件。hRecipient,表示用来接收通知的窗口或者服务。NotificationFilter,过滤器,用来过滤设备通知。Flags,用来说明hRecipient是个窗口还是服务。通知必须绑定到窗口或者服务,也就是说在监听之前,你必须先创建一个窗口或者服务。其基本结构为,具体结构根据字段值的不同而不同,typedef struct _DEV_BROADCAST_HDR {

2023-02-26 11:31:47 1916

原创 【usb】winusb 接口设计分析

对应USB协议里面的标准接口描述符。通过该参数我们可以知道,接口有多少个端点。对于控制传输和等时传输,winusb分别提供了传输接口。。对于批量传输和中断传输,则统一使用一套接口。。上述接口都通过Overlapped机制来控制同步传输或者异步传输。可以通过修改管道策略,个性化的控制管道的行为。除了上述接口,winusb也提供了各种请求,可以灵活使用。比如可以获取接口的所有端点信息等。

2023-02-23 11:28:47 1438

原创 【USB】USB video class (UVC)相关概念学习

标准的视频控制接口描述符,和USB标准接口描述符一样,如下,UVC的配置描述符和标准USB设备的配置描述符是一致的。字段协议和示例有差异。

2023-01-31 17:10:45 2097

原创 【USB】USB相关概念学习

USB 帧和微帧

2023-01-28 15:01:24 566

原创 【usb】设备的生命线

USB设备分配

2022-12-07 22:00:00 609

原创 【USB】macOS usb内核驱动开发入门

【代码】【USB】macOS usb内核驱动开发入门。

2022-11-19 23:01:55 3005

原创 【OpenHarmony】napi基本用法之promise实现

promise是javascript语言中的一个对象,其可以表示一个异步操作的成功或者失败。promise的优势是链式调用,在过去,要想做多重的异步操作,会导致经典的回调地狱。有了promise的链式调用,就可以把回调绑定到返回的 Promise 上,形成一个 Promise 链。console . log('初始化');throw new Error('有哪里不对了');console . log('执行「这个」”');console . log('执行「那个」');

2022-11-07 21:39:43 1962

原创 【工具使用】在线工具集锦

https://cppinsights.io/

2022-11-07 16:12:16 243

原创 【OpenHarmony】napi基本用法----HelloWorld

【代码】【OpenHarmony】napi基本用法----HelloWorld。

2022-10-04 20:49:44 1518

原创 【OpenHarmony】napi基础知识学习

Node.js N-API 是为构建原生插件提供的稳定接口,与JavaScript运行时隔离,确保兼容性。其特点包括:通过状态码返回调用结果、使用出参传递返回值、将JS值抽象为napi_value等。开发时需C/C++工具链,推荐使用node-gyp或CMake.js构建。为方便分发,可使用node-pre-gyp等工具上传预编译二进制文件。N-API提供C语言接口,另有node-addon-api封装C++版本。该API设计确保底层JS引擎更新时无需重新编译插件。

2022-10-04 17:22:43 2031

原创 【OpenHarmony】系统应用权限管控与签名

底层由BundleMgr提供了判断是否是三方应用的能力。上层是否是系统应用取决于签名时的字段,如果是则为普通应用,是则为系统应用。

2022-09-15 21:51:14 3973 8

原创 【安卓】aosp内核源码下载(msm)

【安卓】aosp内核源码下载。

2022-07-17 10:58:33 1937

原创 【OpenHarmony】usb gadget 配置hdc功能cfg文件解读

OpenHarmony configfs 配置usb gadget的hdc功能。cfg文件解读

2022-06-19 22:42:54 2642 3

原创 【linux】windows terminal配置远程linux环境自动登录

一、实现ssh脚本自动登陆目的通过windows terminal实现自动登陆云端机器。做法需要windows安装了wslwsl安装了expect将如下内容,保存为"autossh.ssh",放在wsl的路径下/home/wuchw/private/autossh.sh注意里面的wuchengwen 192.168.1.1 及22改成自己的账户、IP及端口号给予可执行权限chmod +x autossh.sh#!/usr/bin/expect -fspawn ssh w

2022-05-17 10:35:16 2990

原创 【wsl2】常用命令及ext4硬盘扩展与压缩

首先扩展硬盘微软官方这篇文章写的很详细,我就不在赘述了:扩展 WSL 2 虚拟硬盘的大小压缩硬盘首先说一下使用场景。比如我想要下载一套aosp的代码,首先我从国内镜像站点,下载一个压缩包,包含了所有aosp代码。压缩包大小181G。完了我再把这个压缩包解压,解压的时候发现wsl2的磁盘太小了,解压失败,所以就扩展磁盘大小到512G.解压完成,删除压缩包,wsl剩余的空间很大,但是物理机剩余硬盘空间太少了。所以我要释放部分wsl硬盘。压缩操作如下:首先在wsl里面执行fstri..

2022-05-15 12:37:31 3368 2

原创 【usb】安卓usb网络共享(RNDIS)

一、RNDIS简介微软官方对RNDIS的介绍说白了,就是将安卓设备作为一个网卡,通过USB连接到电脑上,供电脑上网。二、使用指导首先为了验证电脑上网确实走的是usb。先把你电脑上的网卡及网线拔了,wifi关了。并且确保此时电脑无法上网。然后把手机通过USB线连接到电脑上,在手机的设置里面搜索USB,找到类似USB共享网络,并打开开关。然后电脑就可以正常上网啦,试下看看能否打开百度。三、补充说明我们在讨论RNDIS,但是上述使用指导里面好像没有看到RNDIS的字眼呀,这是咋回事?

2022-04-09 14:39:37 36356 7

原创 【usb】USB Core功能解析(一)-------linux那些事儿之我是usb

文章目录一、drivers/usb目录结构一、drivers/usb目录结构usb目录下包含如下目录和文件:atm cdns3 class core dwc3 gadget image Kconfig misc mtu3 phy roles storage usbipc67x00 chipidea common dwc2 early host isp1760 Makefile mon musb ren

2022-04-04 19:11:43 3502

原创 【OpenHarmony】make_shared和make_unique失败时总会抛异常,和是否禁用异常无关

一、背景在项目代码里面有很多这种判断:handler_ = std::make_shared<UsbServerEventHandler>(eventRunner_, pms);if (handler_ == nullptr) { USB_HILOGE(MODULE_USB_SERVICE, "Init failed due to create handler error"); return false;}对此不同人有不同看法:有些人认为应该判空,防止后面使

2022-03-29 20:01:34 5494

原创 【usb】usb协议历史发展介绍-------linux那些事儿之我是usb

一、简介USB来自于intel,同时IBM,微软,等企业也参与的标准的建设。在历史发展中,USB为什么能够存活到现在?相比于串口,并口等,其最大的特点是:速度快,扩展能力强,易用性高。USB2.0最快达到480MB/s,USB3.0最快达到4.8GB/s。USB的各个版本都是兼容的。linux在2.6.31版本的内核中对USB3.0进行了支持。USB支持多功能的设备,也就是说一个设备可以同时有多个功能。这是通过在一个设备中包含多个接口,每个借口支持一个功能,来实现的。USB可以支持多

2022-03-26 22:39:31 1436

原创 【OpenHarmony】ohos_shared_library默认关闭了异常机制no-exceptions

文章目录一、背景二、探索1、BUILD.gn2、usbmgr.gni3、ohos.gni4、cxx.gni5、BUILDCONFIG.gn三、总结一、背景发现usb_manager仓下,usb_service.cpp文件里面,有些地方使用了make_shared方法来创建堆内存。并在后面通过判断指针是否为空,来判断内存是否申请成功,如下:handler_ = std::make_shared<UsbServerEventHandler>(eventRunner_, pms);if (

2022-03-19 11:34:42 11135 1

PostgreeSQL数据库中文学习手册

内容覆盖了所有postgreeSQL的语法和函数使用,且每个知识点后面都有示例说明,简单易懂,易上手,非常适合初学者。

2018-05-13

最详细最牛逼cmake英文版教程,没有之一

英文版cmake教程,没有积分的朋友可以到https://cgold.readthedocs.io/en/latest/index.html 这里自行下载,免费的。

2020-08-09

unity virtual reality projects

unity virtual reality projects,英文原版,作者:jonathan linowes

2019-02-24

linux系统fork创建子进程.zip

里面是三个实验,分别是fork创建子进程,各个进程之间的关系,并发还是同步,以及子进程复制父进程代码的说明

2018-04-30

UML和模式应用(第3版)英文版

UML和模式应用(第3版)英文版,以下是它的所有信息: Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and Iterative Development, Third Edition By Craig Larman Publisher : Addison Wesley Professional Pub Date : October 20, 2004 ISBN : 0-13-148906-2 Pages : 736

2019-02-24

linux系统进程间通信共享内存方式实现及简单命令解释器实现.zip

里面是两个实验,一个共享内存方式的进程间通信,另一个是shell命令解释器。两个都是linux版本的。

2018-04-30

数字图像处理,基于积分图的快速均值滤波,

基于积分图的快速均值滤波,数字图像处理,。。。。。。

2018-12-30

【数字图像处理】频域滤波,理想低通滤波器,高斯滤波器,巴特沃斯滤波器

数字图像处理,评语滤波,理想低通滤波器,高斯滤波器,巴特沃斯滤波器

2018-12-30

软工原理与实践影印版第四版英文版课后答案-第4版-Shari Lawrence Pfleeger

软工原理与实践 影印版 第四版 英文版 课后答案 -第4版- Shari Lawrence Pfleeger

2018-11-22

图像平移,缩放,旋转,偏移(vs2017+opecv)

实现了图像平移、缩放、旋转、偏移操作。 环境:vs2017+opencv 、c++语言 博文地址:https://blog.youkuaiyun.com/C2681595858/article/details/82824282

2018-10-21

数字图像处理第三版_冈萨雷斯_中文版_英文版_英文版答案

中文版和英文版有些内容是不一样的,中文译者翻译时没有遵循原作者的意思,改变了部分习题,所以答案是英文版教材此题答案

2018-12-23

IEEE Standard for a Software Quality Metrics Methodology

IEEE Standard for a Software Quality Metrics Methodology IEEE Std 1061™-1998 (R2009) IEEE标准,软件质量度量方法

2019-04-12

有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?

有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?字数不够,字数不够,字数不够,字数不够,字数不够,字数不够

2018-11-22

c语言打印出乘法表9*9

用c写的9*9乘法表,就是打印出乘法表,1*1 = 2,2*2 = 4那种

2018-11-22

c语言输入年月日,输出这是一年中的第几天

c语言 输入年月日 输出这是一年中的第几天,输入时需要英文输入法,输入格式如 2018,11,22 需要逗号隔开

2018-11-22

【数字图像处理】高斯滤波,通过可分离性进行加速

数字图像处理,高斯滤波,通过可分离性进行加速,。。。

2018-12-30

cocos2dx HttpClient网络访问

里面是cocos2dx中HttpClient网络访问实验部分代码(classes和Resources)

2018-06-22

linux多线程程序实验,用不同线程完成一个矩阵乘法,以及子进程计算斐波那契数列,父进程输出结果

linux多线程程序实验,用不同线程完成一个矩阵乘法,以及子进程计算斐波那契数列,父进程输出结果

2018-05-07

数字图像空间滤波

数字图像的空间滤波处理,包括均值滤波、最大值、最小值、中值滤波、基本高通滤波、拉普拉斯、高频补偿

2018-10-21

操作系统经典同步问题之读者写者问题

是线程同步问题的读者写者算法,包括读者优先和写者优先。里面有实验报告,详细说明了实验原理及执行过程,字数够了吗吗

2018-06-03

模式分类第二版(英文版)

原版课本,不是扫描版,很清晰,模式识别第二版,是英文版,英文版

2018-12-16

人月神话(the mythical man month)中文版+英文版

人月神话 the mythical man month 中文版和英文版都有

2019-02-26

直方图均衡

实现了数字图像的直方图均衡处理。 实验环境:c++、opencv+vs2017 博文地址:https://blog.youkuaiyun.com/C2681595858/article/details/82869787

2018-10-21

计算机组成原理+软件硬件接口+原书第五版

计算机组成组成与设计+软硬件接口+原书第五版+机械工业出版社+

2018-12-08

空空如也

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

TA关注的人

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