E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
Linux驱动框架学习
NODE笔记 0
node.js中的文件系统fs模块(API)0.相关操作函数:1.文件写入2.文件读取3.补充文件状态查看:路径问题:三、简单应用与总结批量重命名文件去除指定内容小结:前言node.js内置网络服务器,是前端
框架学习
的基础
灰乌鸦乌卡
·
2024-01-25 21:48
前端
node.js
RPC
框架学习
好的参考学习
QiuRPCQiuRPC参考手册RPC常见功能一个通用的网络RPC框架,它应该包括如下元素:1.具有服务的分层设计,借鉴Future/Service/Filter概念2.具有网络的分层设计,区分协议层、数据层、传输层、连接层3.独立的可适配的codec层,可以灵活增加HTTP,Memcache,Redis,MySQL/JDBC,Thrift等协议的支持。4.将多年各种远程调用Highavailab
qi20088
·
2024-01-25 09:16
分布式开发(SOA)
java
数据库
netty
【Go学习】Ginkgo测试
框架学习
实践 + 问题记录 + 怎么解决(0)
1、ginkgo测试框架介绍:https://onsi.github.io/ginkgo/2、重点是学习实践+问题记录+怎么解决3、送福利:国内好用的ChatGpt有很多,比如:天工、文心一言、讯飞星火、通义万相等1.安装xxx@macdeMacBook-Pro-3/Volumes/mac/study/.../ginkgogogetgithub.com/onsi/ginkgo/v2/ginkg
dssky_2008
·
2024-01-25 02:28
Golang学习
golang
ginkgo
测试框架
linuxPWM子系统源码分析--Apple的学习笔记
一,前言所谓学习,那么就和单纯完成任务是不同的,我的学习也是有目标的,那么从
linux驱动
开发的角度来说,若只是配置下就能用了,这样有点知其然而不知其所以然,所以我的目标就是先会用,然后学习框架及源码,
applecai
·
2024-01-24 21:03
系统移植(系统移植环境搭建及简单概念)
系统=linux内核+根文件系统;根文件系统=库(/lib和/usr/lib)+命令(/bin和/usr/bin)+配置文件(/etc)+GUI(图形化界面,如:QT)1、为什么学习系统移植为后边学习
linux
°嘟嘟嘟嘟
·
2024-01-24 19:38
系统移植
内核
uboot
arm
10系统移植
>从U盘中启动老毛桃(引导安装系统)->安装windows驱动->安装应用程序linux系统移植:通过拨码开关选择启动方式(SD卡启动)->bootloader(uboot)引导安装linux->安装
linux
scw_zch
·
2024-01-24 19:07
培训课程
移植
Day1.复习Linux系统移植的内容,将内核启动流程根文件系统的制作过程整理一下。
学习这门课程目的是为后面
Linux驱动
开发做准备,然后是驱动开发工程师必备技能。
m0_69078052
·
2024-01-24 19:05
linux
驱动开发
运维
Linux驱动
安装遇到的问题(Kernel configuration is invalid)(Invalid module format)
Linux驱动
编译安装遇到的问题(Kernelconfigurationisinvalid)(Invalidmoduleformat)前言1.Kernelconfigurationisinvalid2.
花好约猿上王者
·
2024-01-23 21:04
Linux
linux
驱动开发
Linux驱动
学习13(初步认识ioremap)
几乎每一种外设都是通过读写设备上的寄存器来进行的,通常包括控制寄存器、状态寄存器和数据寄存器三大类,外设的寄存器通常被连续地编址。根据CPU体系结构的不同,CPU对IO端口的编址方式有两种:(1)I/O映射方式(I/O-mapped)典型地,如X86处理器为外设专门实现了一个单独的地址空间,称为"I/O地址空间"或者"I/O端口空间",CPU通过专门的I/O指令(如X86的IN和OUT指令)来访问
iteye_11495
·
2024-01-23 14:32
操作系统
嵌入式
【
Linux驱动
】休眠与唤醒 | POLL机制 | 异步通知 | 阻塞与非阻塞 | 软件定时器
作者:一只大喵咪1201专栏:《
Linux驱动
》格言:你只管努力,剩下的交给时间!
一只大喵咪1201
·
2024-01-23 05:07
Linux驱动
linux
c语言
驱动开发
arm开发
架构
ARM-
Linux驱动
内核(S3C2440)
Linux启动流程驱动(程序):驱使设备行动的程序1.启动bootloader---引导操作系统启动的(裸机)程序,为操作系统启动准备环境,并引导操作系统启动2.启动kernel---操作系统核心(俗称的操作系统)3.加载根文件系统---一堆文件的集合(根目录下的文件)存储分类RAM(随机存储)SRAM静态DRAM动态SDRAM同步动态SDR(DDR2\3\4\5)ROM(只读存储)PROM可编程
Omedetou。
·
2024-01-22 22:05
linux
arm开发
运维
框架学习
法之道德经思想框架
1.第四十八章:为学日益。为道日损,损之又损,以至于无为。无为而无不为。取天下常以无事,及其有事,不足以取天下。原注解:求学是做加法,知识一天比一天增加;求道则要做减法,一天比一天减少。减少又减少,直至无可再减,只留下真知灼见。无为而无不为,这是“道”的真谛所在。治理天下的人应抱持清静无为的治国理念,如果经常以繁苛政举扰攘民生,就不能够治理好国家了。牛爸翻译:学习,每天在思考中,都发现有增加。思考
牛强简书
·
2024-01-22 07:22
PIG
框架学习
3——Redisson 实现业务接口幂等
零、前言业务接口幂等问题是在开发中遇到的,如果对业务接口代码不进行幂等控制,并且在前端没有对请求进行限制的情况下,可能会出现多次对接口调用,导致错误异常的发生。就上述情况,对PIGX自带的业务接口幂等实现进行了相关的学习,相关具体内容可以参考官方文档,本文章只是作为学习笔记。一、接口幂等概念幂等性原本是数学上的概念,在数学中表示对同一操作的多次执行,产生的结果与仅执行一次的结果相同。用在接口上就可
重生之我是Banana
·
2024-01-22 06:05
从零开始的PIG框架学习生活
学习
java
前端
框架学习
Vue (1) 概念,常用指令
Vue是什么概念:Vue是一个用于构建用户界面的渐进式框架1.构建用户界面:基于数据动态渲染页面2.渐进式:循序渐进的学习(学一点就能用一点)(1)Vue核心包开发场景:局部模块改造(2)Vue核心包&Vue插件工程化开发场景:整站开发3.框架:一套完整的项目解决方案,提升开发效率(理解记忆规则)优点:大大提升开发效率(70%以上)缺点:需要理解记忆规则->官网创建Vue实例初始化渲染核心步骤:1
Flyoungbuhu
·
2024-01-22 06:30
vue.js
前端框架
学习
linux驱动
(五):framebuffer
本文主要探讨210的framebuffer驱动知识。frameBuffer用户态进程直接调用显卡写屏,framebuffer接口是给用户态进程用于写屏framebuffer设备文件为fbx清屏:ddif=/dev/zeroof=/dev/fbx清屏:$ddif=/dev/zeroof=/dev/fb0bs=1024count=768截屏:ddif=/dev/fbof=fbfilefb.hstruc
菜_小_白
·
2024-01-22 02:24
linux
c语言
驱动开发
linux驱动
(六):input(key)
本文主要探讨210的input子系统。input子系统input子系统包含:设备驱动层,输入核心层,事件驱动层事件处理层:接收核心层上报事件选择对应structinput_handler处理,每个input_handler对象处理一类事件,同类事件的设备驱动共用同一handler核心层:连接设备驱动层和事件处理层,为设备驱动层提供输入设备驱动接口(structinput_dev)以及输入设备驱动注
菜_小_白
·
2024-01-22 02:24
linux
驱动开发
c语言
linux驱动
(八):block,net
本文主要探讨210的block驱动和net驱动。block随机存取设备且读写是按块进行,缓冲区用于暂存数据,达条件后一次性写入设备或读到缓冲区块设备与字符设备:同一设备支持块和字符访问策略,块设备驱动层支持缓冲区,字符设备驱动层没有缓冲块设备单位:扇区(Sectors):1扇区为512(倍)字节,块(Blocks):1块包含1个或多个扇区,段(Segments):若干相邻块组成,页(Page):内
菜_小_白
·
2024-01-22 02:24
linux
c语言
驱动开发
linux驱动
入口函数module_init如何被调用
大多的
Linux驱动
程序需要包含下面三个头文件:#include#include#includeinit.h定义了驱动的初始化和退出相关的函数。kernel.h定义了经常用到的函数原型及宏定义。
爱因私谈
·
2024-01-21 10:00
【
linux驱动
】结合
linux驱动
在迅为rk3568开发板上点亮一个LED灯的详细教程
文章目录分析驱动编写测试程序编写开发环境:迅为3568开发板+ubuntu18.04任务:给LED写一个驱动程序,要求当应用程序写入驱动的数据为’1’时点亮LED;当应用程序写入数据为‘0’时熄灭LED。分析步骤一:确定控制引脚打开原理图确定LED的GPIO引脚位置,通过下图知GPIO0_B7可以控制LED9。GPIO0_B7通过一个三极管控制LED9:GPIO0_B7为低电平时,三极管截止,LE
☞黑心萝卜三条杠☜
·
2024-01-21 02:19
LINUX
linux
单片机
运维
【
linux驱动
】讲解
linux驱动
开发中的并发与并行,并且给出解决驱动开发中资源竞争的解决方案(下)
文章目录解决资源竞争的方法自旋锁信号量互斥锁开发环境:迅为3568开发板+ubuntu18.04前文【
linux驱动
】讲解
linux驱动
开发中的并发与并行,并且给出解决驱动开发中资源竞争的解决方案(上)
☞黑心萝卜三条杠☜
·
2024-01-21 02:19
LINUX
linux
驱动开发
运维
【
linux驱动
】详细剖析第一个hello word驱动程序
文章目录驱动程序的框架驱动程序的使用示例驱动程序的框架
Linux驱动
的基本框架主要由模块加载函数,模块卸载函数,模块许可证声明,模块参数,模块导出符号,模块作者信息等几部分组成,其中模块参数,模块导出符号
☞黑心萝卜三条杠☜
·
2024-01-21 02:18
LINUX
linux
【
linux驱动
】在迅为RK3568开发板上设置文件私有数据的详细教程
文章目录文件私有数据的相关概述文件私有数据的使用实例开发环境:windows+ubuntu18.04+迅为rk3568开发板文件私有数据的相关概述在linux中尽管没有明确规定要是用文件私有数据,但是在
linux
☞黑心萝卜三条杠☜
·
2024-01-21 02:47
LINUX
linux
Android筑基——RxJava
框架学习
笔记
目录1.前言2.正文2.1RxJava里的观察者模式和普通的观察者模式有什么区别?2.2RxJava观察者模式的订阅流程2.2.1创建自定义`Observer`对象2.2.2创建`ObservableOnSubscribe`对象2.2.3创建`ObservableCreate`对象2.2.4调用`Observable.subscribe()`订阅方法2.2.5创建`CreateEmitter`对象
willwaywang6
·
2024-01-20 01:19
#
著名开源库学习
RxJava
观察者模式
装饰器模式
map
时序图
高通WLAN
框架学习
(7)- - SAR(比吸收率)
写博客之前先简单的介绍下什么是SAR,大致意思如下所述:手机等无线产品的电磁辐射问题一直是公众密切关注的问题,用什么来衡量这种辐射的大小呢?这里有个术语叫SAR,SAR的英文全称为SpecificAbsorptionRate,中文一般称为电磁波吸收比值或比吸收率。是手机或无线产品之电磁波能量吸收比值,SAR的意义为单位质量的人体组织所吸收或消耗的电磁功率,单位为W/kg。本博客主要讲述的内容是:介
专业开发者
·
2024-01-20 00:54
WIFI
学习
android
gin
框架学习
(三)
0.前言在本节中,首先完成了登录接口,然后在项目中添加了基于jwt的身份鉴权实现。1.登录接口1.1bcrypt包的介绍之前我们完成的注册接口中,将用户密码明文保存在后端数据库中,这是对用户隐私的一种侵犯。接下来我们要通过bcrypt包,将用户密码加密后,再保存在数据库中。bycrypt是go官方包之一,是一个加密包,其进行的加密是非可逆的,也就是说从解密结果无法对密码进行推测,非常符合对用户密码
雨雨不怕雨
·
2024-01-19 22:13
GO语言
gin
学习
Golang个人web框架开发-学习流程
Golang-个人web框架github仓库创建github仓库web
框架学习
开发周期第一阶段--了解第一阶段思考小结第二阶段第三阶段github仓库github地址:ameamezhou/golang-web-frame
wx-zhou
·
2024-01-19 19:04
golang
学习
后端
web框架开发
保姆教程
持续更新
Linux驱动
开发高精度定时器的精度测量
前言今天我们来评测linux内核的高精度定时器。顺便利用通过Tektronix示波器和DS100Mini数字示波器进行交叉测试。因项目需要用到精准的时间周期,所以要评估它的可行性,并验证正点原子的示波器能不能支撑嵌入式开发流程。Linux高精度定时器说明其实传统的低分辨率定时器随着技术的演进,已经无法满足开发需求。而且硬件的不断发展,硬件定时器的精度也越来越高,这也给高精度定时器创建了有利条件。低
Rice嵌入式开发
·
2024-01-19 18:32
Linux
嵌入式
编程语言
java
linux
大数据
rk3566-Android11 从驱动到 app 第二章添加 hall 层
hw_module_t2)hw_module_methods_t3)hw_device_t2.程序编写3.编译程序4.验证程序5.添加权限1)设备节点添加权限2)添加shelllinux权限作者:baron对
linux
baron-z
·
2024-01-19 13:36
安卓从驱动到
app
的整体流程梳理
java
开发语言
android
linux
驱动开发
c语言
嵌入式硬件
深入浅出Linux图形化架构
本文可能需要你有一些系统架构,内核模块,
Linux驱动
,VFS(虚拟文件系统)子系统等背景知识;本文不是对OpenGL图形学的介绍,而是从OS层次对图形显示架构进行的讨论;本文主要以文字叙述为主,配以少量框图解释
aiyo_
·
2024-01-19 05:44
X-window
linux
若依
框架学习
笔记_mybatis
一、在框架中引用的先后顺序在ruoyi-system的resources下的xml中定义方法在java下的mapper包中引用方法在java下的service包中再引用mapper的方法二、xml中的写法标签:resultMap返回数据sql查询语句可包含在其他操作中select查询insert插入update更新delete删除属性:id引用标记parameterType参数类型可以是定义的do
xingnang2008
·
2024-01-19 03:34
学习
笔记
mybatis
若依
框架学习
————持续更新
若依
框架学习
一、01-登录流程1、用户发送请求进入到登录页面2、用户点击登录按钮二、02-首页一、01-登录流程1、用户发送请求进入到登录页面//SysLoginController.java@GetMapping
young sir
·
2024-01-19 03:33
ruoyi学习
java
shiro
mybatis
springmvc
spring
boot
【前端】若依
框架学习
笔记——分页
0":total="queryParams.total":page.sync="queryParams.pageNum":limit.sync="queryParams.pageSize"@pagination="getLists"/>v-show="queryParams.total>0":用于判断是否存在数据,有这显示,无不显示。:total="queryParams.total":显示数据总
搞毕设中╯﹏╰
·
2024-01-19 03:33
前端
若依框架学习笔记
前端
若依
框架学习
(三)PageHelper
用户数据分页对于如何分页显示用户数据,我们首先找到当前路由地址是:http://localhost/system/user这说明应该在对应的Controller有/system/user,并且有pageNum=1和pageSize=10这两个参数,找到对应的Controller后,往下找就找到了这里先讲下@PreAuthorize注解,这是SpringSecurity的注解,作用是限制对该方法的访
m0_67390773
·
2024-01-19 03:03
前端
html
学习
前端
java
若依
框架学习
之获取菜单下拉树
思路获取完整菜单列表,构建下拉树构建前端下拉树列表:1.构建树结构,如果是顶级节点,遍历该父节点的所有子节点2.递归获取子节点列表代码controller层/***获取菜单下拉树列表*/@GetMapping("/treeselect")publicAjaxResulttreeselect(SysMenumenu){LoginUserloginUser=tokenService.getLoginU
qq_44654771
·
2024-01-19 03:03
学习
java
开发语言
若依
框架学习
dict
最近学习一下若依,发现框架中对于字典的使用很频繁,对于这一块并不了解,查了一下src\api\system\dict\data.jssrc\utils\dict\DictData.js对于为什么要在前面加上dict.type还是不太清楚
Hzlyyds
·
2024-01-19 03:31
Vue
若依学习
学习
前端
javascript
vue.js
2021-11-06若依
框架学习
第一软依阶段性的学习掌握了基本的生成工具在系统工具里面找到对应的代码生成工具然后可以选择创建或者导入工具选择对应的如果是导入直接导入就好如果是创建需要写你表的语句和字段(建议在数据库生成好的拿到直接生成)创建好后点击编辑找到生成信息对表的生成模块和生成路劲要注意,然后就是就是保存,在页面里面点击生成代码把代码解压后把文件放入相应的路径就可以了
attempt1strive
·
2024-01-19 03:31
若依
java
若依
框架学习
(1)——环境配置
首先放上链接:git地址:https://gitee.com/y_project/RuoYi/tree/v4.6.1学习地址:http://doc.ruoyi.vip/ruoyi/下载若依前往Gitee下载页面(https://gitee.com/y_project/RuoYi)下载解压到工作目录配置maven。maven下载地址(https://maven.apache.org/download
石雕冰
·
2024-01-19 03:00
若依框架学习
学习
java
若依
框架学习
1、若依框架前后端分离版服务器部署,前端nginx的配置2、RuoYi(若依)前后端分离版本,windows下部署(nginx)3、若依:IDEA下(若依前后端分离版Vue3)添加新模块4、若依Nginx部署相关问题一下午踩坑(页面刷新404、系统资源404,后端接口404等等)5、若依springboot框架新增模块调接口报4046、若依(RuoYi)系统添加自定义的模块7、ruoyiyudao
chxljtt
·
2024-01-19 03:30
java
学习
sas硬盘顺序不对linux,LSISAS1068E
Linux驱动
扫描硬盘顺序问题
问题现象在使用LSISAS1068E的服务器上(驱动名称为mptsas),为了业务运行可靠性,将第1、2块盘做RAID1,并且希望把Linux系统安装在RAID1,且硬盘盘符为/dev/sda。但部署完系统后,发现RAID1的盘符并不是/dev/sda,而是/dev/sdk(假设机器插满12块硬盘),即系统没有部署在RAID1上,而不是安装在了第3块硬盘上。问题原因从问题现象看,Linux内核并没
李永菜
·
2024-01-18 18:40
sas硬盘顺序不对linux
linux驱动
之GPIO子系统
一、前言在嵌入式中,GPIO作为一个常用的信息输入输出手段经常被用在各种场合,那么今天本文就来简单地说一下嵌入式linux中的GPIO子系统。本文为笔者的理解,如果错漏还望指出二、GPIO子系统介绍在嵌入式linux中,GPIO和引脚通常联系在一起。但是在嵌入式linux系统的代码结构中,他们的关系远比我们想象的复杂。2.1pinctrl在嵌入式linux中,用pincontrolsubsyste
wipping的技术小栈
·
2024-01-18 16:37
Appium —— 初识移动APP自动化测试框架Appium
说到移动APP自动化测试,代表性的测试框架非Appium莫属,从今天开始我们将从APP结构解析、Appium
框架学习
、安卓/iOS自动化测试实战、自动遍历回归测试、自动化测试平台及持续集成,多个维度一起由浅入深的学废
MAYUHAO1011
·
2024-01-18 16:26
接口测试
自动化测试
appium
selenium
测试工具
python
压力测试
自动化测试
测试工程师
SM7250(高通5G)平台LCD bringup
文章首次写在个人微信公众号【
Linux驱动
】。
肥龙在天.
·
2024-01-18 11:37
lcd
Android开发
android
【
linux驱动
】用户空间程序与内核模块交互-- IOCTL和Netlink
创建自定义的IOCTL(输入/输出控制)或Netlink命令以便用户空间程序与内核模块交互涉及几个步骤。这里将分别介绍这两种方法。一、IOCTL方法1.定义IOCTL命令在内核模块中,需要使用宏定义你的IOCTL命令。通常情况下,IOCTL命令包括了一个命令编号、请求类型的方向(读/写/两者)以及数据大小:#include#defineMY_IOCTL_TYPE'x'//通常是一个字符#defin
一尘之中
·
2024-01-18 08:06
编程
#
C语言
linux
linux
CVTE面经 非双一流逆袭C厂
选择题涵盖了C++、
linux驱动
、内存使用和数据结构。选择题比较难(大部分忘记)两道算法题:1、链表反转后并去掉链表中指定的节点。2、输入一个数字,转换成原码
小昭dedug
·
2024-01-17 14:07
大公司校招面试宝典(嵌入式)
c语言
python flask
框架学习
(二):flask 蓝图 blueprint的应用
概述蓝图的作用:对视图函数进行分门别类即模块化,使项目结构更加清晰,方便管理。蓝图相当于子app,所用的函数和主app类似。如果不用蓝图,分离视图函数在不同页面,用主app注册,会出现循环引用错误。1.user.py用户模块,导入Blueprint,实例化一个蓝图对象fromflaskimportBlueprint#1.url_prefix&static_folder&template_folde
cooqes
·
2024-01-17 00:17
Linux设备调试-GDB调试器
前言“工欲善其事,必先利其器”,为了方便
Linux驱动
设备的开发和调试,建立舒适的开发环境、使用必要的软件工具,以及掌握常用的调试技巧是比较重要的。
@宁兰
·
2024-01-16 07:24
linux
Linux驱动
IO篇——阻塞/非阻塞IO
文章目录非阻塞IO阻塞IO等待队列等待队列变体非阻塞IO在应用程序中,使用open函数打开一个/dev目录下的一个设备文件时,默认是以阻塞的方式打开。所谓阻塞,就是当我们请求的资源不可用时(资源被占用,没有数据到达等等),会使得进程休眠,从现象看就是卡在那里。应用层如果我们希望以非阻塞方式打开设备文件,则应该在open设备文件时,添加一个O_NONBLOCK的flag参数,例如:fd=open("
嵌入式Linux充电站
·
2024-01-15 20:10
Linux驱动
#
——IO操作篇
linux
驱动开发
【
Linux驱动
】platform 设备驱动分离(二)—— LED驱动(无设备树)
在没有设备树的情况下,需要手动注册platform设备,下面分别注册platform设备和platform驱动,以此来驱动LED。一、platform设备注册新建文件led-device.c文件,该文件保存的是外设信息,在当前背景下便是LED相关的寄存器信息,该文件最终会被编程成ko模块文件,加入到Linux内核中。1、注册/注销platform设备在Linux内核中使用platform_devi
仲夏夜之梦~
·
2024-01-15 20:09
linux
运维
服务器
【
Linux驱动
】platform 设备驱动分离(一)—— 驱动分层及相关API
以目前为止的逻辑,无论是获取设备属性信息,还是实现驱动逻辑,都是放在一个驱动模块中。在没有设备树的情况下,如果我们只需要修改设备信息(如寄存器地址),那么我们就需要重新编译整个驱动模块。很显然,设备信息的变化不应该影响到驱动逻辑的正常运行,这就需要引入驱动分层的概念。一、整体架构驱动分层总体可以分为三层设备层:负责管理设备属性信息,包含了一些外设硬件信息,如寄存器地址、引脚配置信息等驱动层:负责驱
仲夏夜之梦~
·
2024-01-15 20:09
数据结构
【
Linux驱动
】Linux中断(二)—— 按键中断驱动
前一篇已经在设备树的gpio-led节点中引入了中断信息,接下来将通过API来获取设备树中的中断信息。gpio-led节点具体内容如下:gpio-key0{pinctrl-names="default";pinctrl-0=;//pinctrl子系统配置电气属性key-gpio=;//gpio子系统进行引脚初始化interrupt-parent=;//中断类型为gpio1interrupts=;/
仲夏夜之梦~
·
2024-01-15 20:39
linux
上一页
1
2
3
4
5
6
7
8
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他