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驱动-mstar
Linux驱动
开发(最简单的驱动模块,内核printk函数)
1.最简单的驱动模块源码:#include//module_initmodule_exit#include//__init__exit//模块安装函数staticint__initchrdev_init(void){printk(KERN_INFO"chrdev_inithelloworldinit\n");return0;}//模块卸载函数staticvoid__exitchrdev_exit(
学习&笔记
·
2023-10-20 02:20
Linux驱动
嵌入式
LINUX驱动
学习之1.linux 内核打印函数printk
1.linux内核打印函数printk一、函数有头文件二、定义的关键宏三、函数原型四、函数使用(上位编写)五、编译下载(上位机操作)六、修改下位机linux打印内核信息环境七、装载模块/卸载模块测试一、函数有头文件路径:/opt/kernel/include/linux/printk.h头文件包含:#include*注:一般其它头文件已包含了当前头文件,编写代码时可以不用写*二、定义的关键宏#de
weixin_47273317
·
2023-10-20 02:50
linux驱动基础学习
内核
嵌入式
linux
kernel
Linux设备驱动1:模块化编程初步讲解
Linux设备驱动1:模块化编程初步讲解大家好,在掌握了C语言,STM32单片机,Linux网络编程等基础知识之后,接下来开始慢慢渗透
Linux驱动
,本专栏会持续更新,供大家一起学习。诸君共勉。。。
哒宰的自我修养
·
2023-10-20 02:48
Linux设备驱动
linux
内核
驱动
模块化编程
linux驱动
采用内核模块开发的优点,Linux 驱动开发之内核模块开发 (一)—— 内核模块机制基础...
一、内核模块的概念1、什么是模块?内核模块是一些可以让操作系统内核在需要时载入和执行的代码,同时在不需要的时候可以卸载。这是一个好的功能,扩展了操作系统的内核功能,却不需要重新启动系统,是一种动态加载的技术。特点:动态加载,随时载入,随时卸载,扩展功能2、内核模块的加载作用内核模块只是向linux内核预先注册自己,以便于将来的请求使用;由目标代码组成,没有形成完整的可执行程序。只是告诉内核,它有了
weixin_39588679
·
2023-10-20 02:48
Linux驱动
内核模块参数和模块符号导出
当我们写应用程序可以使用scanf等函数来获取我们想要给某一变量设置的值,而驱动程序又不能使用应用层的库函数,我们怎么把值传递给驱动程序呢?我们就需要使用模块参数来完成。有两种方式修改变量的值。1、加载模块时修改变量的值2、模块加载后修改变量的值模块参数的使用内核中提供了宏将普通变量变成模块参数。module_param(name,type,perm);module_param_array(nam
星 野
·
2023-10-20 02:17
Linux驱动
Linux
linux
c语言
驱动开发
《嵌入式
Linux驱动
开发教程》--内核模块
内核模块绝大多数的驱动都是以内核模块的形式实现。宏内核和微内核宏内核(Linux):所有的内核功能都被整体编译在一起,形成单独的内核镜像文件,内核中各功能模块的交互通过直接的函数调用进行。微内核(Windows):功能模块的交互需要微内核提供的通信机制。宏内核添加改变内核的某个功能,需要重新编译整个内核,然后重启整个系统,引入内核模块:内核模块:被单独编译的一段内核代码,根据需求动态的加载、卸载到
一如既往_
·
2023-10-20 02:46
笔记
Linux驱动开发
驱动开发
linux
运维
Linux驱动
—内核模块基本使用
Linux驱动
—内核模块基本使用fs4412内核模块加载怎样编写makefile文件内核模块工具(加载insmod,卸载rmod,查看信息modinfo)加载模块insmod模块信息modinfo模块卸载
Half-up
·
2023-10-20 02:45
linux驱动
linux驱动
Linux驱动
开发:内核模块和字符设备驱动
目录内核模块内核模块的概念内核模块程序的一般形式内核模块的相关工具内核模块参数内核模块和普通应用程序区别字符设备驱动字符设备驱动基础字符设备驱动框架内核模块linux是宏内核(单内核)的操作系统的典型代表,它和微内核(典型代表window操作系统)的最大区别在于所有的内核功能都能被整体编译在一起,形成一个单独的内核镜像文件,显著的优点就是效率非常高,内核中各功能模块的交互通过直接的函数调用来进行,
迷途君
·
2023-10-20 02:45
linux驱动开发
驱动开发
linux
运维
第5讲
Linux驱动
编写之“内核模块”操作
第5讲、驱动编写之内核模块1、内核模块的编写2、内核模块的编译*静态编译*动态编译3、模块加载和卸载命令4、内核模块传参知识回顾:1.1在内核中添加编译选项makemenuconfig//调用了Kconfig文件makeuImage//调用了Makefilemakemodules//调用了Makefile1.2、文件系统基本概念1.3根文件系统制作目录结构系统启动时需要的文件init进程(PID:
Leon_George
·
2023-10-20 02:44
Linux3.4.2驱动开发
内核模块的编译安装等操作
Linux驱动
正点原子嵌入式
linux驱动
开发——pinctrl和gpio子系统
在上一篇笔记中,学习编写了基于设备树的LED驱动,但是驱动的本质还是没变,都是配置LED灯所使用的GPIO寄存器,驱动开发方式和裸机基本没区别。Linux是一个庞大而完善的系统,尤其是驱动框架,像GPIO这种最基本的驱动不可能采用裸机驱动开发方式。Linux内核提供了pinctrl和gpio子系统用于GPIO驱动,本章就学习一下如何借助pinctrl和gpio子系统来简化GPIO驱动开发。pinc
努力自学的小夏
·
2023-10-19 23:04
linux学习
linux
驱动开发
stm32
学习
笔记
正点原子嵌入式
linux驱动
开发——Linux并发与竞争
在
Linux驱动
编写过程中对于并发控制的管理非常重要,本章就来学习一下如何在
Linux驱动
中处理并发。并发与竞争并发与竞争简介并发就是多个“用户”同时访问同一个共享资源。
努力自学的小夏
·
2023-10-19 23:04
linux学习
linux
驱动开发
学习
笔记
stm32
正点原子嵌入式
linux驱动
开发——Linux按键输入
在前几篇笔记之中都是使用的GPIO输出功能,还没有用过GPIO输入功能,本章就来学习一下如果在Linux下编写GPIO输入驱动程序。正点原子STM32MP1开发板上有三个按键,就使用这些按键来完成GPIO输入驱动程序,同时利用原子操作来对按键值进行保护。Linux下按键驱动原理按键驱动和LED驱动原理上来讲基本都是一样的,都是操作GPIO,只不过一个是读取GPIO的高低电平,一个是从GPIO输出高
努力自学的小夏
·
2023-10-19 23:04
linux学习
linux
驱动开发
学习
笔记
stm32
【正点原子Linux连载】第十七章GPIO中断试验-摘自【正点原子】I.MX6U嵌入式
Linux驱动
开发指南V1.0
1)实验平台:正点原子阿尔法Linux开发板2)平台购买地址:https://item.taobao.com/item.htm?id=6036727444342)全套实验源码+手册+视频下载地址:http://www.openedv.com/thread-300792-1-1.html3)对正点原子Linux感兴趣的同学可以加群讨论:9354467414)关注正点原子公众号,获取最新资料更新第十七
正点原子
·
2023-10-19 23:02
LINUX
linux
arm
嵌入式
跟我一起学RT-Thread之硬件资源简介
Linux驱动
开发最终也是操作的寄存器,但是在操作寄存器之前要先编写一个符
非常规自我实现
·
2023-10-19 23:30
物联网
RTT
IMX6ULL
正点原子嵌入式
linux驱动
开发——Linux蜂鸣器
蜂鸣器驱动原理有源蜂鸣器只要通电就会叫,所以可以做一个供电电路,这个供电电路通过一个IO来控制其通断,一般使用三极管来搭建这个电路。在Linux下编写蜂鸣器驱动就需要以下工作:设备树中创建蜂鸣器节点,加入GPIO信息。编写驱动程序和测试APP。硬件原理图分析上图中通过一个PNP型的三极管8550来驱动蜂鸣器,通过PC7这个IO来控制三极管Q1的导通,当BEEP输出低电平的时候Q1导通,相当于蜂鸣器
努力自学的小夏
·
2023-10-19 23:57
linux学习
linux
驱动开发
stm32
笔记
学习
【正点原子MP157连载】第四十四章Linux SPI总线框架-摘自【正点原子】STM32MP1嵌入式
Linux驱动
开发指南V1.7
1)实验平台:正点原子STM32MP157开发板2)购买链接:https://item.taobao.com/item.htm?&id=6292707218013)全套实验源码+手册+视频下载地址:http://www.openedv.com/thread-318813-1-1.html4)正点原子官方B站:https://space.bilibili.com/3946208905)正点原子STM
正点原子
·
2023-10-19 11:50
LINUX
stm32
linux
驱动开发
IMX6ULL开发板,系统移植——第一步Uboot移植
此篇为笔者在学习Linux开发时所遇到的一些操作凝练,旨在想学习Linux开发的小伙伴能不被Uboot移植难住,从而快速进入学习
Linux驱动
开发。
艾斯'ICE
·
2023-10-19 06:57
驱动开发
linux device_attr 权限,Linux内核宏DEVICE_ATTR使用
1、前言在
Linux驱动
程序编写中,使用DEVICE_ATTR宏,可以定义一个structdevice_attribute设备属性,并使用sysfs的API函数,便可以在设备目录下创建出属性文件,当我们在驱动程序中实现了
网易体育
·
2023-10-18 21:47
linux
device_attr
权限
Linux驱动
API之register_chrdev
register_chrdev--->为字符型驱动申请主设备号函数原型:intregister_chrdev(unsignedintmajor,constchar*name,conststructfile_operations*fops);参数1:major需要申请的主设备号(major>=0)。若为0,则动态随机分配主设备号,若与已存在设备重复,则申请失败。参数2:name设备名称(某类设备的类
marike1314
·
2023-10-18 21:45
linux
api
struct
file
linux 驱动分类
linux驱动
分类
linux驱动
的分类跟Wince不同,wince是分成流驱动和本机驱动两种类型,而linux分为字符设备驱动、网络设备驱动、块设备驱动。
David_Hu
·
2023-10-18 21:43
AM335x
Linux
驱动分类
字符设备
register_chrdev
platform
driver
misc
driver
Linux驱动
——字符设备驱动基本框架和相关内容详细说明
在Linux系统中通常把驱动分成三类:字符设备驱动、块设备驱动、网络设备驱动,关于三种设备设备驱动的相关定义如下:字符设备:只能一个字节一个字节的读写的设备,不能随机读取设备内存中的某一数据,读取数据需要按照先后顺序进行。字符设备是面向流的设备,常见的字符设备如鼠标、键盘、串口、控制台、LED等。块设备:是指可以从设备的任意位置读取一定长度的数据设备。块设备如硬盘、磁盘、U盘和SD卡等存储设备。网
基尔霍夫原来是码农
·
2023-10-18 21:12
boot
Linux驱动
ARM
驱动开发
正点原子嵌入式
linux驱动
开发——设备树下LED驱动
经过对设备树的学习以及驱动开发中常用的OF函数介绍,本篇笔记将之前的新字符设备驱动的LED,换成设备树形式。设备树LED驱动原理在之前的新字符设备驱动实验中,直接在驱动文件newchrled.c中定义有关寄存器物理地址,然后使用io_remap函数进行内存映射,得到对应的虚拟地址,最后操作寄存器对应的虚拟地址完成对GPIO的初始化。现在使用设备树来向Linux内核传递相关的寄存器物理地址,Linu
努力自学的小夏
·
2023-10-18 14:35
linux学习
linux
驱动开发
stm32
学习
笔记
LCD简介
lcd简介LCD简介1、分辨率2、像素格式3、LCD时间参数4、RGBLCD屏幕时序6、像素时钟此文章摘抄于正点原子的嵌入式
linux驱动
开发指南,仅作为笔记,以放便忘记时查阅LCD简介 LCD全称是
拱-卒
·
2023-10-18 08:10
lcd
嵌入式硬件
linux
linux等待队列wait_queue_head_t和wait_queue_t
学号:19021211263等待队列在linux内核中有着举足轻重的作用,很多
linux驱动
都或多或少涉及到了等待队列。因此,对于linux内核及驱动开发者来说,掌握等待队列是必须课之一。
__来日方长__
·
2023-10-18 06:59
Linux驱动
开发之按键中断实验【完整教程】
【完整代码在文章最后面】本实验目的是驱动正点原子阿尔法开发板上的KEY0按键,采用中断的方式,并且采用定时器来实现按键消抖,应用程序APP读取按键值并且打印出来。 实验前需要了解的知识:什么是中断:中断使得硬件得以发出通知给处理器。中断本质上是一种特殊的电信号,由硬件设备发向处理器,不同设备对应的中断不同,而每个中断都通过一个唯一的数字标志。什么是中断处理函数:中断处理函数是被内核调用来响应中断
拼个世界给自己
·
2023-10-18 03:19
Linux
驱动开发
驱动开发
linux
c#
运维
centos
linux驱动
开发5 按键中断实验(定时器和中断)
led:IO的输出;key:IO的输入法一:直接读写IO使用while(1)无限读取,但CPU占用达到了99.6%,所以不行#include#include#include#include#include#include#include#include#include#include#include#include#include#include#include#include#include/*
西伯利亚大草原的狼
·
2023-10-18 03:14
Linux驱动层开发
驱动开发
linux
运维
【正点原子Linux连载】第十二章官方SDK移植试验-摘自【正点原子】I.MX6U嵌入式
Linux驱动
开发指南V1.0
1)实验平台:正点原子阿尔法Linux开发板2)平台购买地址:https://item.taobao.com/item.htm?id=6036727444342)全套实验源码+手册+视频下载地址:http://www.openedv.com/thread-300792-1-1.html3)对正点原子Linux感兴趣的同学可以加群讨论:9354467414)关注正点原子公众号,获取最新资料更新第十二
正点原子
·
2023-10-18 00:07
LINUX
单片机
linux
嵌入式
正点原子嵌入式
linux驱动
开发——Linux设备树
掌握设备树是
Linux驱动
开发人员必备的技能!
努力自学的小夏
·
2023-10-17 19:45
linux学习
linux
驱动开发
stm32
笔记
学习
嵌入式-STM32-CubeMX系列教程--首篇
#嵌入式##STM32HAL库##CubeMX#嵌入式-STM32-CubeMX系列教程–首篇1.自述首先简单介绍下我自己,目前大四在某公司从事嵌入式STM32单片机的开发实习工作,最终目标是想转到
Linux
苗大壮
·
2023-10-17 16:33
CubeMX
stm32
单片机
嵌入式
platform 设备驱动实验
目录
Linux驱动
的分离与分层驱动的分隔与分离驱动的分层platform平台驱动模型简介platform总线platform驱动platform设备硬件原理图分析试验程序编写platform设备与驱动程序编写测试
行稳方能走远
·
2023-10-16 19:41
正点IMX6ULL驱动开发
驱动开发
linux
运维
Android USB Accessory分析
blog.csdn.net/yingzhao80/article/details/45511351Android下USBAccessory的实现分析摘要:本文介绍了USBAccessory的一些背景知识,并从
Linux
dyq1991
·
2023-10-16 17:21
usb
正点原子嵌入式
linux驱动
开发——新字符设备驱动实验
经过之前两篇笔记的实战操作,已经掌握了Linux字符设备驱动开发的基本步骤,字符设备驱动开发重点是使用register_chrdev函数注册字符设备,当不再使用设备的时候就使用unregister_chrdev函数注销字符设备,驱动模块加载成功以后还需要手动使用mknod命令创建设备节点。register_chrdev和unregister_chrdev这两个函数是老版本驱动使用的函数,现在新的字
努力自学的小夏
·
2023-10-16 16:06
linux学习
linux
驱动开发
学习
笔记
stm32
正点原子嵌入式
linux驱动
开发——字符设备驱动开发
经过之前这么多篇笔记的学习,Ubuntu操作系统以及完整的Linux系统移植,已经初步掌握了开发板系统搭建的过程,在STM32MP157上搭建了自己的简单开发系统,从这一篇笔记开始就可以证实
Linux驱动
开发的学习了
努力自学的小夏
·
2023-10-16 16:35
linux学习
linux
驱动开发
stm32
学习
笔记
正点原子嵌入式
linux驱动
开发——LED驱动开发
在上一篇笔记中,详细的讲解了字符设备驱动开发步骤,并且用一个虚拟的chrdevbase设备为例完成了第一个字符设备驱动的开发。本章就开始编写第一个真正的Linux字符设备驱动。在正点原子STM32MP157开发板上有一个LED灯,本章就学习一下如何编写Linux下的LED灯驱动。Linux下LED灯驱动原理Linux下的任何外设驱动,最终都是要配置相应的硬件寄存器。所以LED灯驱动最终也是对STM
努力自学的小夏
·
2023-10-16 16:03
linux学习
linux
驱动开发
stm32
笔记
学习
【正点原子MP157连载】 第五章 STM32MP1启动详解-摘自【正点原子】【正点原子】STM32MP1嵌入式
Linux驱动
开发指南V1.7
1)实验平台:正点原子STM32MP157开发板2)购买链接:https://item.taobao.com/item.htm?&id=6292707218013)全套实验源码+手册+视频下载地址:http://www.openedv.com/thread-318813-1-1.html4)正点原子官方B站:https://space.bilibili.com/3946208905)正点原子STM
正点原子
·
2023-10-16 13:02
正点原子
stm32
linux
驱动开发
通俗易懂:把驱动编译进内核
编写好
linux驱动
以后有两种测试方法,一种是把驱动编译成模块,另外一种是把驱动直接编译到内核中。编译成模块可以方便的使用insmod或者modprobe命令测试驱动。
小小的技术宅
·
2023-10-14 18:33
内核
linux
嵌入式
Linux下把驱动编译进内核及图形化配置的方式进行选择
一、
Linux驱动
编译的两种方法日常开发工作中,
Linux驱动
模块编译通常有两种方法:1、将驱动编译成模块然后使用insmod、rmmod等命令使模块加载进内核,或从内核卸载模块。
suifen_
·
2023-10-14 18:02
linux
c语言
嵌入式硬件
大总结:基于Kernel5.4的Linux外设驱动实战--Apple的学习笔记
前言大总结:动手写
Linux驱动
练习--Apple的学习笔记是对驱动的基础复习及实现简单的驱动。于是我又去买了陀螺仪和OLED屏幕作为外设来玩
Linux驱动
。
applecai
·
2023-10-14 10:30
[清华大学]漏洞挖掘之状态敏感的模糊测试StateFuzz
Dr.赵博栋Prof.张超清华大学网络研究院INSC本文主要介绍了通过StateFuzz对
Linux驱动
程序进行模糊测试,该Fuzz方法由赵博栋博士在InForSec会议上分享,并在USENIXSecurity
IT鹅
·
2023-10-14 07:21
网络
安全
web安全
pinctl和gpio子系统
以下内容来自正点原子
Linux驱动
pinctl子系统设置引脚的复用和电气属性。
我要暴富
·
2023-10-14 04:36
Linux驱动
驱动开发
Linux驱动
开发:gpio子系统
目录1、GPIO配置流程2、GPIO子系统API2.1of_find_node_by_path2.2of_get_named_gpio2.3gpio_request与gpiod_get与gpiod_get_index2.4gpio_direction_input与gpiod_direction_input2.5gpio_direction_output与gpiod_direction_output
凛冬将至__
·
2023-10-14 04:29
Linux驱动开发
驱动开发
linux
gpio子系统
Linux驱动
认知简明导论 ① —— 从用户空间贯穿到底层驱动
原创首发于CSDN,转载请注明出处,谢谢!https://blog.csdn.net/weixin_46959681/article/details/116765305文章目录前言从用户态空间贯穿到底层驱动说明参考资料更新时间记录前言笔者曾在博文——Linux文件系统——“文件类型”小节里的设备文件/dev添加过注释:使用单片机点亮led灯与通过Linux内核驱动点亮led灯,两者天差地别,后者所
古希腊的汉密士
·
2023-10-14 00:23
#
Linux驱动开发
Linux
驱动
操作系统
linux驱动
模块传参
一、简介 在装载内核模块时,用户可以向模块传递参数,形式为“insmode(或modprobe)模块名参数名=参数值”,如果不传递,参数将使用模块内定义的缺省值。如果模块被内置,就无法insmod了,但是bootloader可以通过在bootargs里设置“模块名.参数名=值”的形式给该内置的模块传递参数。二、传参的方法2.1传递普通的参数 传递普通的参数,比如charint类型,使用如下函数
温人之周.
·
2023-10-13 07:40
linux开发笔记(迅为)
linux
正点原子嵌入式
linux驱动
开发——Buildroot根文件系统构建
上一小节学习了如何使用busybox来构建根文件系统,但是busybox构建的根文件系统不齐全,很多东西需要自行添加,比如lib库文件。在后面的驱动开发中很多第三方软件也需要自己去移植,这些第三方软件有很多又依赖其他的库文件,导致移植过程非常的繁琐。本章来学习一下另外一种更加实用的根文件系统构建方法,那就是使用buildroot来构建根文件系统。buildroot简介buildroot简介在上一篇
努力自学的小夏
·
2023-10-12 20:53
linux学习
linux
驱动开发
stm32
学习
笔记
正点原子嵌入式
linux驱动
开发——Busybox根文件系统构建
以后就在这个最小系统上编写、测试
Linux驱动
,移植一些第三方组件,逐步的完善这个最小系统。最终得到一个功能完善、驱动齐全、相对完善的操作系统
努力自学的小夏
·
2023-10-12 20:38
linux学习
linux
驱动开发
stm32
笔记
学习
linux驱动
程序设计10 中断与时钟
本章主要讲解Linux设备驱动编程中的中断与定时器处理。由于中断服务程序的执行并不存在于进程上下文中,所以要求中断服务程序的时间要尽量短。因此,Linux在中断处理中引入了顶半部和底半部分离的机制。另外,内核对时钟的处理也采用中断方式,而内核软件定时器最终依赖于时钟中断。10.1节讲解中断和定时器的概念及处理流程。10.2节讲解Linux中断处理程序的架构,以及顶半部、底半部之间的关系。10.3节
oushaojun2
·
2023-10-12 19:39
linux
linux驱动
Linux内存管理 | 二、虚拟地址空间布局
我的圈子:高级工程师聚集地我是董哥,高级嵌入式软件开发工程师,从事嵌入式
Linux驱动
开发和系统开发,曾就职于世界500强企业!创作理念:专注分享高质量嵌入式文章,让大家读有所得!
卍一十二画卍
·
2023-10-12 09:12
Linux内存管理
linux
Linux驱动开发
内存管理
Linux内存管理
MMU
【正点原子Linux连载】第二十七章 SPI实验 -摘自【正点原子】I.MX6U嵌入式
Linux驱动
开发指南V1.0
1)实验平台:正点原子阿尔法Linux开发板2)平台购买地址:https://item.taobao.com/item.htm?id=6036727444342)全套实验源码+手册+视频下载地址:http://www.openedv.com/thread-300792-1-1.html3)对正点原子Linux感兴趣的同学可以加群讨论:9354467414)关注正点原子公众号,获取最新资料更新第二十
正点原子
·
2023-10-12 06:12
LINUX
linux
stm32
L14D2 学习方法
一、学习方法(一)学习
Linux驱动
开发的前提条件越往底层方向越高。代码量堆积,注意总结套路,掌握原则,借鉴成熟方案。
socket()
·
2023-10-11 23:20
学习方法
正点原子嵌入式
linux驱动
开发——Linux内核移植
之前的两篇笔记,简单了解了一下Linux内核顶层Makefile和Linux内核的启动流程,本篇内容来学习一下如何将ST官方提供的Linux内核移植到正点原子的STM32MP157开发板上。通过本章的学习,将掌握如何将半导体厂商提供的LinuxBSP包移植到自己的平台上。Linux内核初次编译编译正点原子出厂Linux源码之前的Linux内核第一篇笔记,就是编译正点原子STM32MP157开发板出
努力自学的小夏
·
2023-10-11 14:49
linux学习
linux
驱动开发
学习
笔记
stm32
上一页
6
7
8
9
10
11
12
13
下一页
按字母分类:
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
其他