DragonOS的中断处理设计

Claude Code × SolidWorks:批量填属性、格式转换、BOM 汇总自动化实战 摘要:本文介绍利用 Claude Code 生成 VBA 宏实现 SolidWorks 批量处理任务的自动化方案。包含5个实战案例:批量填写自定义属性(60分钟任务→10秒)、批量格式转换(80分钟→30秒)、多配置工程图自动生成(120分钟→2分钟)、滚珠丝杠选型计算(15分钟→10秒)和装配体递归BOM导出(40分钟→1分钟)。所有代码基于SolidWorks 2020+ API,提供完整VBA实现和操作指南,可显著提升设计效率。 阅读详情

在这里简单记录一下目前DragonOS中的中断处理的设计吧。

首先,先上DragonOS的GitHub链接:GitHub - fslongjin/DragonOS: 一个64位的操作系统。A x86_64 operating system.icon-default.png?t=M3K6https://github.com/fslongjin/DragonOS

写这篇文章的时候,代码版本长这样:update README.md · fslongjin/DragonOS@5ec1b82 · GitHubicon-default.png?t=M3K6https://github.com/fslongjin/DragonOS/commit/5ec1b825e6f8b780027b29ec80b8d672dd8884bd

中断响应流程

1.硬中断

1.1. 中断处理模型

1.1.1. hardware_intr_controller结构

该结构提供了对硬件中断的控制方法的统一抽象。

成员参数返回值描述
enableirq_numvoid使能中断操作接口
disableirq_numvoid禁止中断操作接口
installirq_num, void*argul安装中断操作接口
uninstallirq_numvoid卸载中断操作接口
ackirq_numvoid应答中断操作接口

1.1.2. irq_desc_t结构

该数据结构提供了对中断服务程序的抽象

成员类型参数返回值描述
controllerhardware_intr_controller––硬件中断控制结构
irq_namechar*––中断名
parameterul––中断处理函数的参数
handler函数irq_num
parameter
regs
void中断服务程序
flagsul––自定义标志位

1.1.3. 中断注册程序irq_register

该程序用于注册中断服务程序。

  * @param irq_num 中断向量号

  * @param arg 传递给中断安装接口的参数

  * @param handler 中断处理函数

  * @param paramater 中断处理函数的参数

  * @param controller 中断控制器结构

  * @param irq_name 中断名

1.1.4. 中断卸载程序irq_unregister

该程序用于卸载中断服务程序。

 * @param irq_num 中断向量号

2.软中断

软中断与硬中断类似,只是其由软件方式创建,且在处理时可被中断。可作为中断下半部使用,任务处理实时性低于硬中断。

软中断模块设计与硬中断的设计类似。其包括了一个软中断向量表及一些函数模型。

2.1软中断向量表表项定义

表项类型定义为softirq_t

成员类型参数返回值描述
action函数void*datavoid软中断处理函数
datavoid*––传递给软中断处理函数的数据

2.2软中断注册程序register_softirq

 * @param irq_num 软中断号

 * @param action 响应函数

 * @param data 响应数据结构体

2.3软中断卸载程序unregister_softirq

 * @param irq_num 软中断号

2.4软中断处理程序do_softirq

在该函数中,先检测软中断是否正在被处理,如果空闲,则发起处理并置位标志位。

转载请注明来源:DragonOS的中断处理设计 | | 龙进的博客icon-default.png?t=M3K6https://longjin666.cn/?p=1401

RK3588平台开发系列讲解(硬件篇-功能外设2) RK3588 芯片内置两个USB3.0 OTG控制器(内嵌2个USB2.0 OTG,下图绿色处),1个USB3.0 HOST 控制器,2个USB2.0 HOST控制器。这些控制器与PHY的内部复用图如下:USB3.0 OTG0 控制器支持SS/HS/FS/LS, 内嵌的USB2.0(HS/FS/LS)信号采用USB2.0 OTG PHY, 信号名见下图的红色方框内;RK3588目前仅此接口支持做Fireware的Download,应用中请务必要预留出。 阅读详情

相关推荐

Tartancalib标定OAK-FFC_4p(上)

1.使用Tartancalib标定双目或多目相机前,先对单个相机标定获得内参,再获得外参。

qq_51731421的博客 1277

python字典dragonloot_Github 上有没有优秀的Java 项目推荐?

star:21K介绍:awesome项目是github的一个神奇项目,awesome-java 就是akullpp发起维护的Java资源列表,内容包括:构建工具、数据库、框架、模板、安全、代码分析、日志、第三方库、书籍、Java 站点等等star:7K介绍:一个前后端分离的人力资源管理系统,采用SpringBoot+Vue开发。这个项目的权限管理模块已经开发完成,其他模块还在开发当中。可以管理角色...

weixin_39629129的博客 154

eNSP-交换机VLAN配置

VLAN

乌托托的博客 8809

本地代码上传至github

github创建代码仓库并进行多人协同编辑

qq_34532413的博客 477

手把手教你逆向抖店滑块验证码:从抓包到生成captchaBody的完整流程(附Python复现代码)

本文详细解析了抖店滑块验证码的逆向过程,从抓包分析到参数生成,最终用Python完整复现验证流程。涵盖关键接口分析、指纹参数生成、轨迹加密逻辑及核心加密算法实现,帮助开发者突破抖店的多重安全机制,实现高效的人机验证绕过。

weixin_30681121的博客 425

手把手教你如何修改YOLO11的模型结构(以CBAM和可变性卷积为例)

YOLO11修改模型结构

2401_86807530的博客 1万+

Drogon 项目安装和配置指南

### 项目介绍 Drogon 是一个基于 C++14/17/20 的 HTTP 网络应用框架,旨在帮助开发者轻松构建高性能的 Web 应用服务器程序。Drogon 是一个跨平台的框架,支持 Linux、macOS、FreeBSD、OpenBSD、HaikuOS 和 Windows 等操作系统。它提供了丰富的功能,包括异步编程模式、HTTP/1.0/1.1 支持、WebSocket 支持、JSON...

gitblog_09446的博客 1106

IC617多线程仿真卡死?手把手教你用TigerVNC替换解决ADE XL Explorer问题(附Manjaro/Centos8实测)

本文针对IC617在Manjaro、CentOS 8等高版本Linux系统中运行ADE XL Explorer进行多线程仿真时出现的卡死问题,提供了详细的诊断与解决方案。文章指出问题根源在于软件内置的旧版VNC组件不兼容,并手把手指导用户通过使用TigerVNC替换原组件来彻底解决,附有在Manjaro和CentOS 8系统上的实测步骤与验证方法。

hill8的博客 774

Windows 安装 drogon

windows 安装 drogondrogon 介绍安装 vcpkg安装流程添加 vcpkg 环境变量安装 drogon常见错误简单使用创建项目 drogon 介绍 Drogon是一个基于C++14/17的Http应用框架,使用Drogon可以方便的使用C++构建各种类型的Web应用服务端程序。 本版本库是github上Drogon工程的镜像库。Drogon是作者非常喜欢的美剧《权力的游戏》中的一条龙的名字(汉译作卓耿),和龙有关但并不是dragon的误写,为了不至于引起不必要的误会这里说明一下。 dr

aydon的博客 5106

C#工业通信完整项目实战:从协议解析到数据库存储,打造工业级全链路数据闭环(完整可复用源码)

工业自动化的核心诉求是「数据闭环」:从工业设备采集真实生产数据 → 解析校验获得有效数据 → 持久化存储到数据库形成生产台账 → 数据分析/报表展示/异常预警,形成采集→解析→处理→存储→应用的全链路数据流转,这也是工业上位机开发的终极落地形态,区别于单纯的「数据采集」demo。本次实战是一套工业级完整投产级项目,基于C# WinForm + .NET Framework 4.8(工业标配)✅双通信链路完美适配:同时封装TCP网口 + 串口(RS232/485)

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 1038

SAP PS 收入确认方法配置清单(成本推导收入 / 项目进度推导收入)

摘要:本文详细介绍了SAPPS模块中两种收入确认方法的配置流程:成本推导收入(成本比例法)和项目进度推导收入(里程碑法)。通过事务码OKG1-OKG5等关键配置步骤,分别实现基于累计成本比例和里程碑完成权重的收入确认逻辑。文章对比了两种方法的适用场景和管控要点:成本法适用于成本与进度强相关的项目,需严控预计总成本;进度法则依赖明确的里程碑验收。同时提供了落地建议,包括项目类型绑定、数据校验和变更管控等最佳实践,为SAPPS系统收入确认功能实施提供完整指导。

金牌架构师 952

Drogon 框架教程

Drogon 是一个基于 C++14/17/20 的 HTTP 应用程序框架,适用于构建高性能、高并发的Web服务器。它运行在Linux、macOS、Unix、Windows等平台上。Drogon 使用非阻塞I/O网络库,基于epoll(在macOS/FreeBSD上是kqueue),以实现高效的网络IO处理。该项目支持异步编程,并提供了简洁的API来简化Web应用程序的开发。 ## 2. 项目...

gitblog_00141的博客 1113

QGis二次开发 —— 5.1、基于qgis开发雷达扫描、无人机飞行跟踪等(附:源码及工程)

基于qgis开发雷达扫描、无人机飞行跟踪等

325

C++ web框架drogon windows10配置

Drogon是一个基于C++14/17的Http应用框架,使用Drogon可以方便的使用C++构建各种类型的Web应用服务端程序。 使用vcpkg安装

qq_30135687的博客 3759

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

开发DragonOS日志--开发屏幕管理器(scm)与文本显示框架(textui)

发现在执行video_refresh_daemon时,video_refresh_target->vaddr为0,但是这个已经在video_set_refresh_target()之后,而且未执行video_refresh_daemon之前video_refresh_target->vaddr也被修改为0xffff800009800000,不知为何在video_refresh_daemon时,video_refresh_target->vaddr却为0。()再添加断点,却发现不能在窗口输出打印语句并报错。

qq_51351880的博客 242

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

一个在关键路径上面隐藏了11个月的BUG:DragonOS进程切换查错

DragonOS是一个从0开始研发内核及用户态环境的,独立自主的,面向服务器领域的开源操作系统,提供Linux兼容性。GitHub - fslongjin/DragonOS: 一个64位的操作系统。加一行printk(“”);,代码就能正常运行读写几个无关的变量,代码就能跑了加一层函数调用,把某个函数wrap一下,代码就能运行10月份的时候,我和同学调试IDR的源代码,有个单元测试用例就是无法通过。并且,出错的位置总是不相同。将测试用例的数据规模减小之后,就不会报错。

龙进的博客 547

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

C++-Web框架:Drogon、Proxygen、Oat++、Crow、C++ REST SDK、Pistache、Silicon、Civetweb、Wt、cinatra

众所周知,C++ 并不是一种流行的 Web 开发语言,究其原因有很多:语言门槛高、使用难度大、开发效率低 … 话虽如此,但随着 Emscripten 的成熟,未来 C++ 在 Web 方面会发挥更大的潜能,尤其是游戏、3D 应用等方面。Drogon 是一个基于 C++14/17 的 Http 应用框架,使用 Drogon 可以方便的使用 C++ 构建各种类型的 Web 应用服务端程序。Star:3.7k GitHub:https://github.com/an-tao/drogonProxygen 是 Fa

u013250861的博客 6979

DragonOS:新一代开源操作系统,重新定义你的计算体验

DragonOS:新一代开源操作系统,重新定义你的计算体验 DragonOS项目地址:https://gitcode.com/gh_mirrors/dra/DragonOS DragonOS,由开发者构建并维护,是一款基于Linux内核的开源操作系统。它的目标是提供一个安全、高效且高度可定制的工作环境,以满足现代用户的多样化需求。 项目简介 DragonOS 并非只是对现有 Linux 发行版的...

gitblog_00053的博客 721

值得关注,采用 Rust 自研内核的 DragonOS,具有 Linux 兼容性的操作系统。

DragonOS 提供优秀完善的架构设计,相比于同体量的其他系统,DragonOS 还支持虚拟化,并在设备模型、调度子系统等方面具有一定优势。:它能够运行Linux程序,实现了“一次编译,随处运行”的能力,这使得开发者可以更容易地迁移现有的Linux应用程序到DragonOS上。我是渔夫,现在在国内某某云程序员,业余独立开发者,探索副业,生活、技术、非科班转码经验等相关文章,欢迎关注,和渔夫一起成长。:采用 Rust 开发,逐步移除C代码,这将提高操作系统的安全性,减少内存安全问题,提高系统稳定性。

渔夫.AI 695

【大家的项目】DragonOS-使用Rust自研内核的,具有Linux兼容性的轻量化服务器操作系统...

DragonOS龙操作系统是一个面向云计算轻量化场景的,完全自主内核的,提供Linux二进制兼容性的64位操作系统。它使用Rust语言进行开发,以提供更好的可靠性。目前在Rust操作系统领域,DragonOS在Github的Rust内核操作系统排行全国稳居前三位。(在github 搜索language:rust os,并按照star排序,人工筛选国内项目。截止2024年4月14日,DragonOS...

Rust语言学习交流 642

Windows 11终极优化指南:Win11Debloat免费工具一键提升系统性能51%

Win11Debloat是一款完全免费开源的Windows系统优化神器,通过轻量级PowerShell脚本帮助用户一键清理预装应用、禁用隐私追踪、优化系统设置,实测最高可提升51%的系统性能。这款工具专为Windows 10/11设计,提供图形界面和智能默认设置,让系统优化变得简单高效。 ## 你的Windows系统为什么越来越慢? 很多用户发现新买的Windows电脑用不了多久就变得卡顿缓慢

gitblog_00842的博客 688

GitHub的下载项目文件

https://blog.youkuaiyun.com/Woo_home/article/details/88628028 这篇文章就讲了怎么使用了GitHub的使用教程 正在尝试写博客,谢谢!

Lin_home 228

如何使用Picocrypt加密你的敏感文件:从入门到精通的完整教程

Picocrypt是一款非常小巧、简单但又极其安全的加密工具,你可以用它来保护你的敏感文件。它旨在成为文件加密的首选工具,专注于安全性、简洁性和可靠性。Picocrypt使用安全的XChaCha20密码和Argon2id密钥派生函数,提供高级别的安全保障。虽然该项目已归档,但Picocrypt仍然完全功能正常、稳定且安全,你可以继续放心使用。 ## 📋 为什么选择Picocrypt进行文件加密

gitblog_00409的博客 577

2. Hello,DragonOS

1. DragonOS 准备把这个OS的名字称呼为DragonOS 2. 主引导程序 对比: 3. 编写主引导程序 汇编语言 可独立运行于X86架构的主机(无操作系统) 运行后在屏幕打印“Hello,DTOS!” 3.1 汇编小贴士1 mov : 赋值操作,将右操作数赋值给左操作数 mov ax , 0;//将0赋值给ax寄存器 int : 触发中断 int 0x10;//触发0x10中断,对屏幕进行操作 hlt :停止运行,CPU进入暂停状态,不执行任何操作 hlt ; //使程序进入睡眠状态

weixin_46258483的博客 598

简单实现了DragonOS的块设备驱动模型以及AHCI驱动程序

上周写好了DragonOS的AHCI驱动程序,能够通过DMA读写SATA硬盘,在这里简单记录一下。 源代码:https://github.com/fslongjin/DragonOS/tree/cc39911d4db00b9e3890f35ca46f1579e44d5be4/kernel/driver/disk 块设备驱动程序模型 块设备定义 (以下内容来自维基百科) 块设备是指与系统间用块的方式移动数据的设备。这些设备节点通常代表可寻址设备,如硬盘、CD-ROM和内存区域。块设备通常支持随机存取

龙进的博客 524

鸿蒙操作系统实现应用接续跨设备流转实战

应用接续的落地成本很低:一个配置、一个onContinue回调、一处 launchReason 判断,合计不足百行代码,就能让任务在手机、平板、鸿蒙电脑之间无缝续接。随着互助通信共享等组网能力在更多机型下放,这条能力的实用价值会持续放大,建议交互密集型应用尽早接入。

NJPJI_Yang的博客 363
上一篇: 在docker中安装phpmyadmin
下一篇: 实现一个简单的UART驱动程序
灯珑
博客等级 码龄11年 2755粉丝 102原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值