RK3588-UART
前言
专栏总目录本文主要讲解如何关于RK3588开发板UART的使用和调试方法,包括UART作为普通串口和控制台两种不同使用场景一. 功能特点
RockchipUART (Universal Asynchronous Receiver/Transmitter) 基于16550A串口标准,完整模块支持以下功能:
支持5、6、7、8 bits数据位。支持1、1.5、2 bits停止位。支持奇校验和偶校验,不支持mark校验和space校验。支持接收FIFO和发送FIFO,一般为32字节或者64字节。支持最高4M波特率,实际支持波特率需要芯片时钟分频策略配合。支持中断传输模式和DMA传输模式。 支持硬件自动流控,RTS+CTS。二、代码位置
在Linuxkernel 中,使用8250串口通用驱动,以下为主要驱动文件:
drivers/tty/serial/8250/8250_core.c # 8250串口驱动核心
【资料图】
drivers/tty/serial/8250/8250_dw.c # Synopsis DesignWare 8250串口驱动
drivers/tty/serial/8250/8250_dma.c # 8250串口DMA驱动
drivers/tty/serial/8250/8250_port.c # 8250串口端口操作
drivers/tty/serial/8250/8250_early.c # 8250串口early console驱动
SDK中提供的UART默认配置已经使用了8250驱动我们就不需要修改
三、硬件原理图
串口功能的硬件上比较简单,这是只附上调试串口的原理图
四、设备树配置
rk平台的设备树修改路径都是在kernel\\arch\\arm64\\boot\\dts\\rockchip下面,具体哪个文件根据对应开发板来决定,通常描述设备硬件配置在rkxxxx.dtsi中,比如在rk3588s.dtsi中:
uart2: serial@feb50000 {compatible = "rockchip,rk3588-uart", "snps,dw-apb-uart";reg = < 0x0 0xfeb50000 0x0 0x100 >;interrupts = < GIC_SPI 333 IRQ_TYPE_LEVEL_HIGH >;clocks = < &cru SCLK_UART2 >, < &cru PCLK_UART2 >;clock-names = "baudclk", "apb_pclk";reg-shift = < 2 >;reg-io-width = < 4 >;dmas = < &dmac0 10 >, < &dmac0 11 >;pinctrl-names = "default";pinctrl-0 = < &uart2m1_xfer >;status = "disabled";};
4.1作为普通串口
假入我们想使用w3开发板上40PIN上的uart7
我们在dts可以使用如下配置打开
&uart7 {status = "okay";pinctrl-names = "default";pinctrl-0 = < &uart7m1_xfer >;};
4.2作为调试串口
Rockchip UART作为控制台,使用fiq_debugger流程。
在dts中fiq_debugger节点配置如下。由于fiq_debugger和普通串口互斥,在使能fiq_debugger节点后必须禁用对应的普通串口uart节点。
chosen: chosen {bootargs = "earlycon=uart8250,mmio32,0xfe660000 console=ttyFIQ0";};fiq-debugger {compatible = "rockchip,fiq-debugger";rockchip,serial-id = < 2 >;rockchip,wake-irq = < 0 >;/* If enable uart uses irq insteadof fiq */rockchip,irq-mode-enable = < 1 >;rockchip,baudrate = < 1500000 >; /* Only 115200 and 1500000 */interrupts = < GIC_SPI 252 IRQ_TYPE_LEVEL_LOW >;pinctrl-names = "default";pinctrl-0 = < &uart2m0_xfer >;status = "okay";};&uart2 {status = "disabled";};
rockchip,serial-id:使用的UART编号。修改serial-id到不同UART,fiq_debugger设备也会注册成ttyFIQ0设备。 rockchip,irq-mode-enable:配置为1使用irq中断,配置为0使用fiq中断。interrupts:配置的辅助中断,保持默认即可。pinctrl-0:使用的串口引脚rockchip,baudrate:波特率配置五、串口相关问题
5.1设备注册
普通串口设备将会根据dts中的aliase来对串口进行编号,对应注册成ttySx设备。注册的节点为/dev/ttyS4,命名规则是通过dts中的aliases来的。
aliases {serial0 = &uart0;serial1 = &uart1;serial2 = &uart2;serial3 = &uart3;}
对应uart0注册为ttyS0,uart0注册为ttyS1,如果需要把uart3注册成ttyS1,可以进行以下修改
serial1 = &uart3; serial3 = &uart1;
5.2控制台打印相关
Rockchip UART打印通常包括DDR阶段、Miniloader阶段、TF-A (Trusted Firmware-A)阶段、OP-TEE阶段、Uboot阶段和Kernel阶段,我们平时主要关注的是uboot阶段和kernel阶段的打印,在这两个阶段我们可以尝试关闭所有打印或切换所有打印到其他UART,RK平台默认的调试串口是uart2_m0这一组引脚,假如现在我将打印换成其他串口,可以尝试以下做法。
5.2.1DDR Loader修改方法
DDR Loader中关闭或切换打印,需要修改DDR Loader中的UART打印配置,修改文件rkbin/tools/ddrbin_param.txt中的以下参数:
uart id= # UART控制器id,配置为0xf为关闭打印
uart iomux= # 复用的IOMUX引脚 uart
baudrate= # 115200 or 1500000
修改完成后,使用以下命令重新生成ddr.bin固件。
./ddrbin_tool ddrbin_param.txt rk3588_ddr_lp4_2112MHz_lp5_2736MHz_v1.09.bin
5.2.2Uboot修改方法
Uboot中关闭打印,需要在menuconfig中,打开配CONFIG_DISABLE_CONSOLE,保存到.config文件
Uboot中切换打印,由传参机制决定,不需要进行额外修改。uboot解析传参机制相关代码在arch/arm/mach-rockchip/board.c的board_init_f_init_serial()函数中。
5.2.3kernel修改方法
去掉打印需要在menuconfig中,关闭配置CONFIG_SERIAL_8250_CONSOLE。
Device Drivers --->
Character devices --->
Serial drivers --->
[ ]Console on 8250/16550 and compatible serial port
在dts配置中找到类似以下内容,并去掉UART基地址和console相关配置参数
chosen: chosen {bootargs = "earlycon=uart8250,mmio32,0xfeb50000 console=ttyFIQ0 irqchip.gicv3_pseudo_nmi=0 root=PARTUUID=614e0000-0000 rw rootwait";};
将0xfeb50000 console=ttyFIQ0 去掉,然后找到fiq-debugger节点,修改serial-id为0xffffffff,去掉UART引脚复用相关配置。注意,需要保持fiqdebugger节点使能,保持fiq-debugger流程系统才能正常启动
fiq_debugger: fiq-debugger {compatible = "rockchip,fiq-debugger";rockchip,serial-id = < 0xffffffff >;rockchip,wake-irq = < 0 >;/* If enable uart uses irq instead of fiq */rockchip,irq-mode-enable = < 1 >;rockchip,baudrate = < 1500000 >; /* Only 115200 and 1500000 */interrupts = < GIC_SPI 423 IRQ_TYPE_LEVEL_LOW >;status = "okay";};
切换打印串口例如将Kernel打印从UART2切换到UART3,在dts配置中找到类似以下内容,将UART基地址由UART2改为UART3.
bootargs = "earlycon=uart8250,mmio32,0xfe670000 console=ttyFIQ0";
0xfe670000是UART3基地址,然后找到fiq-debugger节点,修改serial-id为3,修改UART3引脚复用配置pinctrl-0 = <&uart3m0_xfer>。注意,同时需要将切换为打印串口的UART3作为普通串口的节点禁用。
六、串口测试
在开发板上跑一套应用程序,可以发送数据,可以接收数据,测试方法可以短接TX_RX
#include < stdio.h >#include < stdlib.h >#include < errno.h >#include < unistd.h >#include < fcntl.h >#include < string.h >#include < termio.h >#include < time.h >#include < pthread.h >int read_data(int fd, void *buf, int len);int write_data(int fd, void *buf, int len);int setup_port(int fd, int baud, int databits, int parity, int stopbits);void print_usage(char *program_name);pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;pthread_cond_t data_ready = PTHREAD_COND_INITIALIZER;int data_available = 0;void *read_thread(void *arg) { int fd = *(int *)arg; char buffer[1024]; // 存储读取的数据 while (1) { int bytes_read = read_data(fd, buffer, sizeof(buffer)); if (bytes_read > 0) { printf("Read Thread: Read %d bytes: %s\\n", bytes_read, buffer); } else { // 处理读取错误或设备关闭的情况 break; } } pthread_exit(NULL);}void *write_thread(void *arg) { int fd = *(int *)arg;char input[1024]; // 存储用户输入的数据 while (1) { printf("Enter data to write (or "q" to quit): "); fgets(input, sizeof(input), stdin); if (strcmp(input, "q\\n") == 0 || strcmp(input, "Q\\n") == 0) { // 用户输入 "q" 或 "Q",退出循环 break; } int len = strlen(input); int bytes_written = write_data(fd, input, len); if (bytes_written > 0) { printf("Write Thread: Wrote %d bytes: %s\\n", bytes_written, input); } } pthread_exit(NULL);}int main(int argc, char *argv[]) //./a.out /dev/ttyS4 115200 8 0 1{ int fd; int baud; int len; int count; int i; int databits; int stopbits; int parity; if (argc != 6) { print_usage(argv[0]); return 1; } baud = atoi(argv[2]); if ((baud < 0) || (baud > 921600)) { fprintf(stderr, "Invalid baudrate!\\n"); return 1; } databits = atoi(argv[3]); if ((databits < 5) || (databits > 8)) { fprintf(stderr, "Invalid databits!\\n"); return 1; } parity = atoi(argv[4]); if ((parity < 0) || (parity > 2)) { fprintf(stderr, "Invalid parity!\\n"); return 1; } stopbits = atoi(argv[5]); if ((stopbits < 1) || (stopbits > 2)) { fprintf(stderr, "Invalid stopbits!\\n"); return 1; } fd = open(argv[1], O_RDWR, 0); if (fd < 0) { fprintf(stderr, "open < %s > error %s\\n", argv[1], strerror(errno)); return 1; } if (setup_port(fd, baud, databits, parity, stopbits)) { fprintf(stderr, "setup_port error %s\\n", strerror(errno)); close(fd); return 1; }pthread_t read_tid, write_tid; int ret; // 创建读取线程 ret = pthread_create(&read_tid, NULL, read_thread, &fd); if (ret != 0) { fprintf(stderr, "Failed to create read thread\\n"); return 1; } // 创建写入线程 ret = pthread_create(&write_tid, NULL, write_thread, &fd); if (ret != 0) { fprintf(stderr, "Failed to create write thread\\n"); return 1; } // 等待读取线程和写入线程结束 pthread_join(read_tid, NULL); pthread_join(write_tid, NULL); close(fd); return 0;}static int baudflag_arr[] = { B921600, B460800, B230400, B115200, B57600, B38400, B19200, B9600, B4800, B2400, B1800, B1200, B600, B300, B150, B110, B75, B50};static int speed_arr[] = { 921600, 460800, 230400, 115200, 57600, 38400, 19200, 9600, 4800, 2400, 1800, 1200, 600, 300, 150, 110, 75, 50};int speed_to_flag(int speed){ int i; for (i = 0; i < sizeof(speed_arr)/sizeof(int); i++) { if (speed == speed_arr[i]) { return baudflag_arr[i]; } } fprintf(stderr, "Unsupported baudrate, use 9600 instead!\\n"); return B9600;}static struct termio oterm_attr;int setup_port(int fd, int baud, int databits, int parity, int stopbits){ struct termio term_attr; if (ioctl(fd, TCGETA, &term_attr) < 0) { return -1; } memcpy(&oterm_attr, &term_attr, sizeof(struct termio)); term_attr.c_iflag &= ~(INLCR | IGNCR | ICRNL | ISTRIP); term_attr.c_oflag &= ~(OPOST | ONLCR | OCRNL); term_attr.c_lflag &= ~(ISIG | ECHO | ICANON | NOFLSH); term_attr.c_cflag &= ~CBAUD; term_attr.c_cflag |= CREAD | speed_to_flag(baud); term_attr.c_cflag &= ~(CSIZE); switch (databits) { case 5: term_attr.c_cflag |= CS5; break; case 6: term_attr.c_cflag |= CS6; break; case 7: term_attr.c_cflag |= CS7; break; case 8: default: term_attr.c_cflag |= CS8; break; } switch (parity) { case 1: term_attr.c_cflag |= (PARENB | PARODD); break; case 2: term_attr.c_cflag |= PARENB; term_attr.c_cflag &= ~(PARODD); break; case 0: default: term_attr.c_cflag &= ~(PARENB); break; } switch (stopbits) { case 2: term_attr.c_cflag |= CSTOPB; break; case 1: default: term_attr.c_cflag &= ~CSTOPB; break; } term_attr.c_cc[VMIN] = 1; term_attr.c_cc[VTIME] = 0; if (ioctl(fd, TCSETAW, &term_attr) < 0) { return -1; } if (ioctl(fd, TCFLSH, 2) < 0) { return -1; } return 0;} int read_data(int fd, void *buf, int len){ int count; int ret; ret = 0; count = 0; //while (len > 0) { ret = read(fd, (char*)buf + count, len); if (ret < 1) { fprintf(stderr, "Read error %s\\n", strerror(errno)); //break; } count += ret; len = len - ret; //} *((char*)buf + count) = 0; return count;} int write_data(int fd, void *buf, int len){ int count; int ret; ret = 0; count = 0; while (len > 0) { ret = write(fd, (char*)buf + count, len); if (ret < 1) { fprintf(stderr, "Write error %s\\n", strerror(errno)); break; } count += ret; len = len - ret; } return count;}void print_usage(char *program_name){ fprintf(stderr, "*************************************\\n" " A Simple Serial Port Test Utility\\n" "*************************************\\n\\n" "Usage:\\n %s < device > < baud > < databits > < parity > < stopbits > \\n" " databits: 5, 6, 7, 8\\n" " parity: 0(None), 1(Odd), 2(Even)\\n" " stopbits: 1, 2\\n" "Example:\\n %s /dev/ttyS4 115200 8 0 1\\n\\n", program_name, program_name );}
运行效果如下:
审核编辑:汤梓红
标签:
相关阅读
-
RK3588-UART
本文主要讲解如何关于RK3588开发板UART的使用和调试方法,包括UART作为 -
巫师2打不开launcher(巫师2打不开)_天...
1、兄弟你的C++运行库忘记装了按照楼上说的。2、你按照C++2005运行库C+ -
今年端午假期或成近五年最火端午!部分...
如果你五一假期没能出游,那么端午节或许将是不错的旅游时机。受假期时 -
中经评论:以“村BA”点燃乡村活力|世界...
中经评论:以“村BA”点燃乡村活力---中国经济网评论员梁瑜认为,一... -
geya手表怎么调日期视频教程(geya手表...
1、您好!谢谢您对格雅表业的关注与支持。2、格雅G06130市场零售价为78 -
当前动态:电脑recovery是什么意思(reco...
1、Recovery是个工程模式,你可以进入它进行系统升级,也可以进行系统 -
国际档案日:侨批漫画述乡愁 “迁台...
6月9日,“侨批·乡愁”——水墨漫画展在福建泉州侨批馆开展。 泉... -
香港岭南大学分数线河北(香港岭南大学...
1、我是教育学院的在校生。2、按排名来说,岭南大学和教育学院在香港都 -
张怡宁将执教印度乒乓球队?假的!
训练营将有一个特殊的教练阵容,包括来自中国的张怡宁,她被誉为历史上 -
每日快讯!霍尊前女友被移交检方,为900...
霍尊前女友陈露栽了,已经被移交检方了,后续的结果大概可以预测,等待 -
入党谈心谈话记录_与入党积极分子谈话记...
1、据我所知,入党积极分子的考核培养是每一个季度填写一次,而且每一 -
放开那三国(放开)
1、只我还放开对太依赖只我还能够释怀只我还放开内心阴霾忘了曾经把我 -
RK3588-UART
本文主要讲解如何关于RK3588开发板UART的使用和调试方法,包括UART作为 -
巫师2打不开launcher(巫师2打不开)_天...
1、兄弟你的C++运行库忘记装了按照楼上说的。2、你按照C++2005运行库C+ -
中经评论:以“村BA”点燃乡村活力|世界...
中经评论:以“村BA”点燃乡村活力---中国经济网评论员梁瑜认为,一... -
今年端午假期或成近五年最火端午!部分...
如果你五一假期没能出游,那么端午节或许将是不错的旅游时机。受假期时 -
geya手表怎么调日期视频教程(geya手表...
1、您好!谢谢您对格雅表业的关注与支持。2、格雅G06130市场零售价为78 -
当前动态:电脑recovery是什么意思(reco...
1、Recovery是个工程模式,你可以进入它进行系统升级,也可以进行系统 -
国际档案日:侨批漫画述乡愁 “迁台...
6月9日,“侨批·乡愁”——水墨漫画展在福建泉州侨批馆开展。 泉... -
香港岭南大学分数线河北(香港岭南大学...
1、我是教育学院的在校生。2、按排名来说,岭南大学和教育学院在香港都 -
每日快讯!霍尊前女友被移交检方,为900...
霍尊前女友陈露栽了,已经被移交检方了,后续的结果大概可以预测,等待 -
张怡宁将执教印度乒乓球队?假的!
训练营将有一个特殊的教练阵容,包括来自中国的张怡宁,她被誉为历史上 -
传《真人快打1》取消了1v1对战模式
《真人快打1》的宣传活动已经开始。在夏季游戏节上NetherRealmStudios -
入党谈心谈话记录_与入党积极分子谈话记...
1、据我所知,入党积极分子的考核培养是每一个季度填写一次,而且每一 -
放开那三国(放开)
1、只我还放开对太依赖只我还能够释怀只我还放开内心阴霾忘了曾经把我 -
国铁:今起12306试行在线选铺服务 想要...
在线选铺服务推出后,旅客在12306网站购买试点车次卧铺车票,可在线自 -
传闻:《极限竞速》新作将于10月10日发售
《极限竞速》的粉丝们等待Turn10这一竞速模拟游戏系列的下一款作品已经 -
国宝画重点丨上天入海,到处“出差”!...
2023年6月10日是“文化和自然遗产日”今年的主场城市活动在四川成都... -
天天观天下!上海嘉定一货车在运输途中...
事发现场。图片来源:网络6月10日,澎湃新闻(www thepaper cn)记者从 -
东莞:从小县城到经济中心城市_天天百事通
东莞:从小县城到经济中心城市,腾飞,制造业,小县城,服务业,东莞市,城区 -
教育部:加强中小学地方课程和校本课程...
记者6月9日从教育部获悉,近日,教育部印发了《关于加强中小学地方课程 -
航海通告2023下载 航海通告下载官网
1、怎么找不到下载航海通告的网页了。相信通过航海通告下载官网这篇文 -
金融赋能高质量发展 第12届金交会参展...
中新网广州6月10日电 (记者 郭军)第12届中国(广州)国际金融交易· -
调查发现美国玩家更喜欢购买新游戏 而...
根据Circana获得的市场数据显示,美国的游戏玩家越来越倾向于购买新游 -
新华全媒+|夜幕下,一个群体带动城市消...
海报制作:方金洋新华社天津6月9日电(记者郭方达宋瑞)放上置物架、挂 -
居理买房暴雷!前员工称“欠薪千万元,...
居理买房暴雷!前员工称“欠薪千万元,丈母娘顶替法人” -
环球速讯:写的书怎么出版(如何出版自...
来为大家解答以上的问题。写的书怎么出版,如何出版自己写的书这个很多 -
当前热文:暗黑4恶念加重巅峰效果介绍
暗黑4恶念加重巅峰效果是很多暗黑玩家都关注的,暗黑4是最新才发售的暴 -
天天看热讯:我市开展工会爱心托管工作...
6月8日,市总工会组织各县(市、区)总工会分管女工工作负责人以及有意 -
世界关注:@高考生,2023年上海高招录取...
日前,2023年上海高考顺利结束。 -
AMRO首席经济学家许和意:中国赴东盟游...
尽管面临外部需求疲软和全球金融环境收紧等挑战,东盟与中日韩地区经济 -
全球看点:气体离心机原理(离心机原理)
来为大家解答以上问题。气体离心机原理,离心机原理这个很多人还不清楚 -
直播者发布“恐同”言论 《使命召唤》...
最近,一位Twitch直播者,同时使北美电竞公司FaZeClan联合所有人Nick‘ -
艾克斯杀手有什么特色内容
《艾克斯杀手(ExeKiller)》是一款非常有趣的带有西部情怀的复古未来 -
英雄联盟手游安妮重做提案活动怎么玩 ...
英雄联盟是一款非常火爆的moba团队竞技手机游戏,这款游戏是由端游同 -
决战平安京管狐极趣稚丸新皮肤怎么样 ...
决战平安京是一款非常竞技游戏,在游戏中玩家将选择自己喜欢的式神进 -
全球今日讯!航海王热血航线狐火锦卫门...
航海王冒险游戏,这款游戏是由著名漫画航海王改编,最先进的游戏引擎 -
第七史诗利姆露装备神器怎么选择 利姆...
第七史诗是一款非常受欢迎的剧情,丰富的剧情活动能帮助玩家了解这个 -
暗黑4防御类威能获取效率怎么提高-实时
《暗黑破坏神4》中的威能是游戏里非常重要的增幅技能的东西,而且某些 -
农场改造者有什么特色内容
《农场改造者(FarmRenovator)》是一款非常有趣的第一人称农场模拟游 -
环球微资讯!《暗黑破坏神4》PC版性能表...
《暗黑破坏神4》现已正式发售。外媒DSOGaming对本作的PC版性能表现进行 -
焦点讯息:叫我大掌柜金陵风云怎么玩 ...
叫我大掌柜是一款非常侦探查案的游戏玩法,很多玩家不知到怎么玩,下 -
天天观速讯丨开发者模式有什么坏处和好...
来为大家解答以上问题。开发者模式有什么坏处和好处,开发者模式有什么 -
三伏天迎三伏,中式悬疑惊悚解谜游戏《...
发行商GameraGames于今日在广州核聚变游戏节上宣布,由拾英工作室开发 -
中方驳斥:无中生有、信口雌黄、恶意诋毁!
驻英国使馆发言人就英国首相苏纳克涉华错误言论答记者问问:据报道,6 -
暗黑4痛割流血三蛮流什么攻击装备好用
《暗黑破坏神4》中的野蛮人职业的好用玩法流派是非常多的,痛割流血三 -
英语四级多少分算过2021 英语四级多少分算过
1、英语四级425分及以上算过。2、全国英语四级在改革后,满分成绩为710 -
全球快报:阿拉德之怒荒古版本手游推荐 ...
,阿拉德之怒是当下一款非常热门的地下城格斗手游,下面小编就为大家整 -
今日播报!《暗影诅咒》即将推出重制版 ...
GrasshopperManufacture分享新视频,宣布即将为《暗影诅咒》发布重制版 -
《真人快打1》7分钟实机 9月19日发售 ...
今日(6月10日),IGN公布《真人快打1》7分钟实机演示,《真人快打1》 -
今日观点!暗黑4怎么提高获取目标威能的效率
《暗黑破坏神4》中的威能是游戏里非常重要的增幅技能的东西,而且某些 -
最火的高爆版传奇手游合集 高人气超级...
,传奇经典系列游戏一直是很多玩家的回忆,它的一些复古玩法以及自由爆 -
暗黑4防御类威能有什么用
《暗黑破坏神4》中的威能是游戏里非常重要的增加技能伤害的东西,而且 -
暗黑4资源类威能有什么用
《暗黑破坏神4》中的威能是游戏里非常重要的增加技能伤害的东西,而且 -
今日聚焦!中国移动办理手机卡_中国移动...
1、方法一:营业厅办理2、目前中国移动手机卡的办理方法挺多的,最简单 -
阿拉德之怒远古版手游大全 阿拉德之怒...
,好玩的阿拉德之怒破解版有哪些?很多小伙伴都想知道有哪些好玩的阿拉 -
聚焦:2023高考今日落幕 多地公布志愿...
10日,2023全国高考将全部落幕,目前,全国多地陆续公布志愿填报时间。 -
《吸血鬼:避世血族2》被取消版本视频泄...
《吸血鬼:避世血族2》的两个被取消版本实机演示视频在网络上泄露。视 -
全球观速讯丨《最终幻想16》新实机公开...
今日(6月10日),IGN日本发布了《最终幻想16》的最新实机演示,《最终 -
手绘风冒险游戏《Hauntii》开发者介绍预告
在昨天(6月9日)举办的夏日游戏节开发者日上,发行商Firestoke和开发 -
天天微动态丨暗黑4痛割流血三蛮流派有什...
《暗黑破坏神4》中的野蛮人职业的好用玩法流派是非常多的,痛割流血三 -
热门:暗黑4痛割流血三蛮流核心技能有什...
《暗黑破坏神4》中的野蛮人职业的好用玩法流派是非常多的,痛割流血三 -
当前速讯:《赛博朋克2077》新MOD完善地...
作者muad_近日为《赛博朋克2077》发布新MOD,为之前keanuWheeze发布的 -
统计数据显示2023年美国游戏玩家女性占...
根据调查机构Circana(前身为NPD)执行董事兼游戏行业分析师MatPiscate -
暗黑4痛割流血三蛮流终极技能有什么用
《暗黑破坏神4》中的野蛮人职业的好用玩法流派是非常多的,痛割流血三 -
西安又要下雨了!具体时间……|新消息
点击上方“陕西新闻广播”,关注我们哦!上周五还是16℃的天儿仅仅... -
Netflix订户数量大幅上升,打击密码共享...
5月25日至5月28日,在Netflix通知100多个国家和地区的用户其将实行打击 -
头条焦点:高质量发展调研行 | 在智慧...
提到港口,你会想到什么?头戴安全帽的工人在操作吊机,还是一辆辆卡车 -
环球微头条丨暗黑4痛割流血三蛮流派有什...
《暗黑破坏神4》中的野蛮人职业的好用玩法流派是非常多的,痛割流血三 -
郑裕美、李善均恐怖悬疑新电影《梦游》...
第76届坎城国际影展影评人周受邀的恐怖电影《梦游(暂译)》,日前在电影 -
暗黑4近战游侠怎么战斗比较好|全球快资讯
《暗黑破坏神4》中的近战游侠是游戏里非常好用的强力职业,而近战游侠 -
休闲风格野生动物主题策略游戏《Growth...
《Growth》是一款休闲风格六角格策略游戏,玩家可以利用动物的独特能力 -
如何将手机音频转成文字 如何把手机上...
在手机上安装语音转文字工具,即可将录音文件转换为文字。1、在转换软 -
月底发售 《AEW:战斗永远》预告展示组...
《AEW:战斗永远》发布最新预告片,展示了游戏中的组队战模式。在《AEW -
每日视讯:《地狱边境》设计师新作《COC...
在昨天(6月9日)举办的夏日游戏节的开发者日展示上,《地狱边境》、《 -
玩家猜想《漫威蜘蛛侠2》毒液身份:最有...
在即将推出的PlayStation独占游戏《漫威蜘蛛侠2》新演示中,创意总监Br -
暗黑4野蛮人先祖锤为什么用双手斧 世界...
《暗黑破坏神4》中的野蛮人职业的先祖锤流是游戏里玩起来很不错的强力 -
开发者描述《终极闪光:破坏者》:旷野...
在夏日游戏节开发者展会期间,《终极闪光:破坏者》发布了一个全新预告 -
老胖秃的深海大冒险 《潜水员戴夫》正...
MINTROCKET近日宣布,《潜水员戴夫》将于6月28日推出1 0正式版,并公布 -
中式惊悚悬疑解谜游戏《三伏》定档 7月...
今日(6月10日),拾英工作室负责人月光蟑螂公布中式悬疑惊悚解谜游戏 -
奥迪中国总裁温泽岳:计划构建中国市场...
“我们正计划构建中国市场专属的奥迪生态系统。我们希望奥迪的数字... -
指甲钳套装_指甲钳人魔
1、电影《古墓荒斋》。这部古老恐怖片是周迅处女作。2、《古墓荒斋》是 -
暗黑4游侠虹吸命精之威能有什么特点 热点
《暗黑破坏神4》中的游侠职业的虹吸命精之威能是游戏里非常好用的一个 -
天天速递!「户外喂鸟器」好设计分享!
顶端设计 最近发现养宠物鸟的年轻人越来越多了,而鸟笼、鸟架、食盒 -
意外险一般赔付多少?赔付多久能到账?
意外险的赔偿标准一般由保险公司根据合同约定进行确定。 不同的保险公 -
“高考劣质笔”事件内情|天天日报
考试用笔漏墨、断墨,污染了考卷,蹭黑了双手……这样的窘况发生在... -
环卫母亲与高考儿子相拥而泣刷屏,普通...
极目新闻评论员徐汉雄6月8日,河北定州市高考英语科目结束,一位身穿环 -
古力娜扎晒时尚大片,凌乱秀发挡不住盛...
6月9日,古力娜扎也再度登上了某时尚正在的封面,彰显了她的无限魅力。 -
【天天新要闻】科雷节以及游戏战斗测试...
今日(6月10日),科隆娱乐官方宣布科雷节将于北京时间6月16日举行!官 -
暗黑4无瑕技法巅峰效果介绍_世界看点
暗黑4无瑕技法巅峰效果是很多暗黑玩家都关注的,暗黑4是最新才发售的暴 -
《巴别塔圣歌》参加2023翠贝卡电影节_环...
在活动上将播放即将推出的冒险的演示,并观看创作者的演讲,这是翠贝 -
暗黑4暗金裤子暗夜凝望什么时候用比较好
《暗黑破坏神4》中的暗金裤子暗夜凝望是游戏里非常适合游侠职业的强力 -
暗黑4暗夜凝望裤子怎么用比较好 全球要闻
《暗黑破坏神4》中的暗金裤子暗夜凝望是游戏里非常厉害的强力装备,非 -
暗黑4大地灭绝巅峰效果介绍|报道
暗黑4大地灭绝巅峰效果是很多暗黑玩家都关注的,暗黑4是最新才发售的暴 -
暗黑4残杀者巅峰效果介绍_今日快讯
暗黑4残杀者巅峰效果是很多暗黑玩家都关注的,暗黑4是最新才发售的暴雪 -
即时看!88dog钥匙开箱网有哪些 八大最...
,说起csgo这款游戏,开箱是最值得大家期待的,也是令广大CSGO玩家无法 -
开箱子csgo网站88有什么 五大最多玩家...
,今天小编给大家推荐几个爆率比较高也可以白嫖枪皮的csgo开箱网站,注 -
2023年新《使命召唤》或将于今年秋季发...
在昨天(6月9日)举办的夏日游戏节上,动视分享了《使命召唤19:现代战 -
关于铁路计次票、定期票 如何购买使用_...
为进一步方便城市间人员乘车往来交流,满足广大旅客差异化出行需求,国 -
全球微资讯!我,“绝版”毕业生,专业...
我,“绝版”毕业生,专业读着读着就没了,学位,高校,毕业生,管理学,... -
0-5!中国女足对手轰然倒下,2分钟连丢2...
正文近日落幕的2024乌兹别克斯坦U20女足亚洲杯预选赛第二阶段B组次轮较 -
开箱子csgo网站毛子网址 十大最正规csg...
,关于幸运盲盒的开箱玩法也是很多csgo玩家比较喜欢的一种盲盒游戏,通