OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 6095|回复: 36

使用宇宙第一IDE---Visual Stdio编写调试STM32的方法,智能补全,牛逼的调试能力

[复制链接]

6

主题

72

帖子

0

精华

初级会员

Rank: 2

积分
198
金钱
198
注册时间
2017-7-25
在线时间
39 小时
发表于 2017-8-12 01:20:39 | 显示全部楼层 |阅读模式
去年因为某些原因学习了一下C#,主要是为了写单片机上位机用的,所以接触了一下Visual Stdio 2015这个IDE,用完感觉是真心好,宇宙第一IDE一点毛病都没有。
那时候是单片机,上位机在一起学习,一边用着KEIL,一边用着Visual Stdio,简直就是冰火两重天(当然Keil也有一些优点,毕竟是ARM旗下的IDE嘛)
首先说一下Visual Stdio:①智能补全(再加上VassistX智能补全,简直完美,打几个字母,一条语句就出来了)
                                ②代码高亮显示,关键字,宏定义等等,不同的东西,不同的颜色
                                ③调试:太强大了,在线调试,条件断点,动态变量,还有动态变量的波形图(配上STM32的ADC姑且可以算是个示波器吧,当然跟上千的示波器没法比)
                                ④文件管理也很强大,还能自己写Makefile(当然我这种垃圾是不会的)
                                ⑤实时监控STM32的所有寄存器(在SWD或者JTAG有效的情况下)
                                ⑥很多啊,我这种小菜鸟也就知道着一些,VS的强大我只摸到冰山一角(冰山一角的一角),毕竟是宇宙第一IDE
                         缺点 ①呵,软件大,大,大,除了大,还是大,配置太低的电脑可能有些吃力,当然VS已经优化很多了,至少一般的电脑很少出现卡顿,很流畅。
                                ②Keil调试的时候有seconds这个时间,可以调试时间,但VS上没有(或许是有的,但我无能没发现也不一定)
                                ③(等等......)
                                下面放点图吧(勿喷)

演示图.jpg 智能提示.jpg
首先要准备什么东西
①Visual stdio(版本么随便你吧)
②AvssistX(这个是只能补全代码的插件,可自行百度下破解版,如果不用,也可以用Vs本身就自带的智能补全,也很强大,但这个插件很强)
③Visual GDB(这个是必须的,要编写,调试STM32,这个是必须的,同样还能在线调试Linux,通过SSH,这里就不说了,反正我也不会,这个也百度下破解版)
④VS VIM(这个插件是对于喜欢离开鼠标的狂人,是和Linux的VIM一样的文本编辑器,解放双手,鼠标是程序员思维的破坏者嘛!我暂时还没体会到,但用着很爽)

进入正题:怎么用VS编写STM32并且将程序下载到STM32中
下载进去暂时有两种方法
①通过烧写软件(需要HEX文件,VS生成的16进制文件是ihex,直接把后缀改成hex就能下载了)
②各种在线调试器(什么J-Link啊,ST-Link啊,啦啦啦啦啦,你们都懂的了)
第一:怎么用Visual GDB编写程序,直接上图

步骤一:文件-》新建-》项目
GDB配置1.jpg
步骤二:如图选....英文打着麻烦,我四级还没过呢,......(努力中,不过四级大学不毕业)
GDB配置2.jpg
步骤三:也是吧..按着图来,下载两个Devices(STM32 Devices 和 Atmel ARM Devices)(我也不知道哪个有用,我看我就下啦俩,就全上图了)
GDB配置3.jpg
步骤四:然后按照图示查找自己开发板STM32的型号,选择后NEXT就行啦
注:下面的Execute From意思是吧程序下载到哪里..(当然是选FLASH)
还有C library Type是啥,恩,不知道,我只知道,如果要用Visual GDB内部的控制台显示printf什么的就要选下拉框的第一个,(缺省,不会拼,就是下拉框地最短的那一个)
GDB配置4.jpg
步骤五:就下来就是选使用的库了,有HAL库,还有固件库,还有FreeRTOS的,自己选吧,反正我是固件库
在下面是初始LED,根据自己开发板选GPIO和Pin,下面闪烁时间默认就好了(主要是用来看看链接成功不成功)
GDB配置5.jpg

步骤六:这里是选调试器的,如果使用烧录器下载,这里....emmmmmm,我也不知道了,反正后面是用ihex文件烧录的,梗调试器就没啥关系了.....
注意!:::::!!!!J-LINK的一定要选SWD(low-level)
注意!:::::!!!!J-LINK的一定要选SWD(low-level)
注意!:::::!!!!J-LINK的一定要选SWD(low-level)
三遍!!!!!!!!!!!!!!!!!!!!!!!!!
然后finish
GDB配置6.jpg
步骤七:安装Jlink的驱动了,交WinUSB(直接点图示的那个就可以开始了)
注意:一定要将调试器连上电脑
然后一直等他结束吧
GDB配置7.jpg
GDB配置8.jpg
GDB配置9.jpg


然后就好了嘛
点本地Windows调试器,如果灯闪了那就是配置好了
(自己排版一下文件,按着自己的喜好排,爱怎么着怎么着,排好之后到处模板就好了)
接下来,我尼玛,智能补全呢,高亮显示呢,恩?都打灰机去了吗!?
调试1.jpg
不急,接着看:选你的工程(注意不是第一行的解决方案,右击选Visual GDB Project......)
调试2.jpg
然后选IntelLisense Setting把IntelLisense engine下拉选择第二个(中间那个,如图)就能高亮加智能补全了,最好是加上AVssistX,会更好
如果AVssistX出现注释会有红色波浪线的话
菜单栏选AVssistX->Visual Assist Options->underlines,里面两个全部取消勾选就行了
调试3.jpg
最后一个就是包含头文件目录的
上图(包含进来就好了)
调试4.jpg
好了接下来就开始编写你的程序吧(用cpp文件名就好了,不用改成.c)
如果还有一些问题,就在下面留言或者百度吧,我能回答的我尽量回答,回答不了的只能怪我无能咯。
好了全手打,俺要睡觉了,困
临走来几张调试的图片
盗图.jpg
好吧...这一张图示盗的.....下面一张是自己的
效果图.jpg
结束睡觉!嘻嘻

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

13

主题

314

帖子

0

精华

高级会员

Rank: 4

积分
713
金钱
713
注册时间
2012-7-20
在线时间
102 小时
发表于 2017-8-12 10:52:40 | 显示全部楼层
挺好的,易用性有很多提升
互联网,智能设备爱好者,欢迎讨论任何有意思的想法。
回复 支持 反对

使用道具 举报

343

主题

1463

帖子

12

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
8035
金钱
8035
注册时间
2015-10-15
在线时间
2905 小时
发表于 2017-8-12 10:59:14 | 显示全部楼层
牛逼。
回复 支持 反对

使用道具 举报

9

主题

162

帖子

0

精华

高级会员

Rank: 4

积分
933
金钱
933
注册时间
2017-3-23
在线时间
255 小时
发表于 2017-8-12 11:13:03 | 显示全部楼层
虽然KEIL也有代码补全的功能,但是感觉没啥大用。VS确实厉害,
回复 支持 反对

使用道具 举报

4

主题

211

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2600
金钱
2600
注册时间
2016-7-6
在线时间
546 小时
发表于 2017-8-12 11:39:29 | 显示全部楼层
很强势。
回复 支持 反对

使用道具 举报

28

主题

95

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
228
金钱
228
注册时间
2017-8-1
在线时间
50 小时
发表于 2017-8-12 13:33:50 来自手机 | 显示全部楼层
马上下载了vs
回复 支持 反对

使用道具 举报

1

主题

7

帖子

0

精华

新手上路

积分
37
金钱
37
注册时间
2017-2-17
在线时间
4 小时
发表于 2017-8-12 14:17:45 | 显示全部楼层
这么厉害的,学习了
回复 支持 反对

使用道具 举报

28

主题

95

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
228
金钱
228
注册时间
2017-8-1
在线时间
50 小时
发表于 2017-8-12 14:53:37 来自手机 | 显示全部楼层
遇到了点问题……
1.怎么添加源文件?我是直接在工程名字那里右键添加现有项,但是添加进去的源文件打不开,不知道为什么
2.vs里怎么使用u8.uq6之类的?
3.怎么使用软件仿真,在debug setting那里所有调试方法都试了不行
回复 支持 反对

使用道具 举报

4

主题

380

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3088
金钱
3088
注册时间
2015-10-17
在线时间
320 小时
发表于 2017-8-12 15:00:39 | 显示全部楼层
这么牛,
回复 支持 反对

使用道具 举报

6

主题

72

帖子

0

精华

初级会员

Rank: 2

积分
198
金钱
198
注册时间
2017-7-25
在线时间
39 小时
 楼主| 发表于 2017-8-12 15:07:37 | 显示全部楼层
1473421439 发表于 2017-8-12 14:53
遇到了点问题……
1.怎么添加源文件?我是直接在工程名字那里右键添加现有项,但是添加进去的源文件打不开 ...

1、源文件打不开..怎么会呢.....在右边的解决方案资源管理器点一下加进去的源文件就能打开了呀..打不开是啥...什么错误...
2、u8 u16是STM32固件库“STM32f10x.h”头文件里的,包含这个头文件就能用了
3、软件仿真还真没用过....我一直都在用 J-LINK仿真....
回复 支持 反对

使用道具 举报

6

主题

72

帖子

0

精华

初级会员

Rank: 2

积分
198
金钱
198
注册时间
2017-7-25
在线时间
39 小时
 楼主| 发表于 2017-8-12 15:08:35 | 显示全部楼层
未知1908 发表于 2017-8-12 11:13
虽然KEIL也有代码补全的功能,但是感觉没啥大用。VS确实厉害,

但VS也有缺点的呢....应该是我学没多久,还没体会到
回复 支持 反对

使用道具 举报

28

主题

95

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
228
金钱
228
注册时间
2017-8-1
在线时间
50 小时
发表于 2017-8-12 15:43:18 来自手机 | 显示全部楼层
17602515236 发表于 2017-8-12 15:07
1、源文件打不开..怎么会呢.....在右边的解决方案资源管理器点一下加进去的源文件就能打开了呀..打不开是 ...

难道说只能仿真器仿真吗……
回复 支持 反对

使用道具 举报

6

主题

72

帖子

0

精华

初级会员

Rank: 2

积分
198
金钱
198
注册时间
2017-7-25
在线时间
39 小时
 楼主| 发表于 2017-8-12 16:42:35 | 显示全部楼层
1473421439 发表于 2017-8-12 15:43
难道说只能仿真器仿真吗……

到Visual GDB的属性里(就是右击工程-》Visual GDB project....那个)里边的DeBug Setting里吧OpenOCD改成Built-in GDB Simulation
回复 支持 反对

使用道具 举报

28

主题

95

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
228
金钱
228
注册时间
2017-8-1
在线时间
50 小时
发表于 2017-8-12 17:47:15 来自手机 | 显示全部楼层
17602515236 发表于 2017-8-12 16:42
到Visual GDB的属性里(就是右击工程-》Visual GDB project....那个)里边的DeBug Setting里吧OpenOCD改 ...

试过了,我直接用那个创建的示例程序仿真,也不行
回复 支持 反对

使用道具 举报

28

主题

95

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
228
金钱
228
注册时间
2017-8-1
在线时间
50 小时
发表于 2017-8-12 17:47:38 来自手机 | 显示全部楼层
17602515236 发表于 2017-8-12 16:42
到Visual GDB的属性里(就是右击工程-》Visual GDB project....那个)里边的DeBug Setting里吧OpenOCD改 ...

你可以仿真吗?
回复 支持 反对

使用道具 举报

6

主题

72

帖子

0

精华

初级会员

Rank: 2

积分
198
金钱
198
注册时间
2017-7-25
在线时间
39 小时
 楼主| 发表于 2017-8-12 18:44:14 | 显示全部楼层

试了一下...说什么没有命中断点(其实压根没运行).....不行,我再研究研究,一直都是仿真器在做,没试过软件模拟
回复 支持 反对

使用道具 举报

28

主题

95

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
228
金钱
228
注册时间
2017-8-1
在线时间
50 小时
发表于 2017-8-12 19:01:57 来自手机 | 显示全部楼层
17602515236 发表于 2017-8-12 18:44
试了一下...说什么没有命中断点(其实压根没运行).....不行,我再研究研究,一直都是仿真器在做,没试过 ...

对,我也是这个断点,百度上也找不到解决办法
回复 支持 反对

使用道具 举报

6

主题

72

帖子

0

精华

初级会员

Rank: 2

积分
198
金钱
198
注册时间
2017-7-25
在线时间
39 小时
 楼主| 发表于 2017-8-12 19:16:35 | 显示全部楼层
1473421439 发表于 2017-8-12 19:01
对,我也是这个断点,百度上也找不到解决办法

估计是有的,可惜我还太嫩
回复 支持 反对

使用道具 举报

28

主题

95

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
228
金钱
228
注册时间
2017-8-1
在线时间
50 小时
发表于 2017-8-12 20:56:29 来自手机 | 显示全部楼层
17602515236 发表于 2017-8-12 19:16
估计是有的,可惜我还太嫩

那用jlink的时候,如果需要调试串口接收功能,那Visual GDB有这个串口发送数据到stm32的功能吗?或者可以再用一根usb连接电脑和stm32,用串口调试助手发送?
回复 支持 反对

使用道具 举报

6

主题

72

帖子

0

精华

初级会员

Rank: 2

积分
198
金钱
198
注册时间
2017-7-25
在线时间
39 小时
 楼主| 发表于 2017-8-12 21:07:43 | 显示全部楼层
1473421439 发表于 2017-8-12 20:56
那用jlink的时候,如果需要调试串口接收功能,那Visual GDB有这个串口发送数据到stm32的功能吗?或者可以 ...

那必须要一根USB的,Usart的管脚和SWD和JTAG的管脚是不同的
回复 支持 反对

使用道具 举报

6

主题

44

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
348
金钱
348
注册时间
2014-8-31
在线时间
43 小时
发表于 2017-8-12 21:59:46 | 显示全部楼层
winxp装不了vs2013啊
回复 支持 反对

使用道具 举报

6

主题

72

帖子

0

精华

初级会员

Rank: 2

积分
198
金钱
198
注册时间
2017-7-25
在线时间
39 小时
 楼主| 发表于 2017-8-12 22:43:04 | 显示全部楼层

xp好像是装不了...不支持的,可以装08的
回复 支持 反对

使用道具 举报

0

主题

75

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
430
金钱
430
注册时间
2016-3-17
在线时间
95 小时
发表于 2017-8-13 09:45:47 | 显示全部楼层
牛,VS在代码方面不是其他IDE可比的
回复 支持 反对

使用道具 举报

17

主题

329

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2532
金钱
2532
注册时间
2016-3-6
在线时间
393 小时
发表于 2017-8-13 09:53:05 | 显示全部楼层
强的很啊
路漫漫其修远兮,吾将上下而求索。
回复 支持 反对

使用道具 举报

28

主题

95

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
228
金钱
228
注册时间
2017-8-1
在线时间
50 小时
发表于 2017-8-13 11:42:59 来自手机 | 显示全部楼层
我发现了,GDB只支持仿真器,在debug设置里有个help说arm只有三个debug method,都是用仿真器的
回复 支持 反对

使用道具 举报

28

主题

95

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
228
金钱
228
注册时间
2017-8-1
在线时间
50 小时
发表于 2017-8-15 17:24:32 | 显示全部楼层
我想请问一下,gdb是不是不能查看io口实时状态啊
回复 支持 反对

使用道具 举报

6

主题

72

帖子

0

精华

初级会员

Rank: 2

积分
198
金钱
198
注册时间
2017-7-25
在线时间
39 小时
 楼主| 发表于 2017-8-15 22:22:04 | 显示全部楼层
1473421439 发表于 2017-8-15 17:24
我想请问一下,gdb是不是不能查看io口实时状态啊

可以的,IO状态不就是GPIO的IDR寄存器吗.....如果施密特触发器是关闭的,那么STM32的CPU都读不到,GDB肯定也是读不到的(或者看看ODR吧),这些就看你的程序了
回复 支持 反对

使用道具 举报

7

主题

163

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2762
金钱
2762
注册时间
2017-5-17
在线时间
430 小时
发表于 2017-8-15 22:47:18 | 显示全部楼层
学习了 学习了。。。
回复 支持 反对

使用道具 举报

28

主题

95

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
228
金钱
228
注册时间
2017-8-1
在线时间
50 小时
发表于 2017-8-16 18:02:08 来自手机 | 显示全部楼层
诶 原子的那个sys.c文件中最后有一段汇编的代码,vs显示错误,然后我在keil里看了一下,虽然旁边也有个叉号,但是编译的时候不会报出这个错误,不知道怎么搞,我还是用keil吧……
回复 支持 反对

使用道具 举报

0

主题

2

帖子

0

精华

初级会员

Rank: 2

积分
86
金钱
86
注册时间
2016-7-19
在线时间
19 小时
发表于 2017-8-21 11:45:49 | 显示全部楼层
我想问一下,我按照你的方法配置了vs2015,在加入原子的delay头文件和源文件后调用delay_init()函数之类的都会一直报错,可以帮我看下吗?谢谢你了
报错内容如下
严重性        代码        说明        项目        文件        行        禁止显示状态
错误                undefined reference to `delay_ms(unsigned short)'        EmbeddedProject1        D:\桌面\EmbeddedProject1\EmbeddedProject1\LEDBlink.cpp        35       
错误                undefined reference to `delay_ms(unsigned short)'        EmbeddedProject1        D:\桌面\EmbeddedProject1\EmbeddedProject1\LEDBlink.cpp        32       
错误                undefined reference to `delay_init()'                                EmbeddedProject1        D:\桌面\EmbeddedProject1\EmbeddedProject1\LEDBlink.cpp        18

我的工程目录如下       


我的代码如下:
[mw_shl_code=c,true]#include <stm32f10x_gpio.h>
#include <stm32f10x_rcc.h>
#include <delay.h>
#include <sys.h>
#include <usart.h>

void Delay()
{
        int i;
        for (i = 0; i < 1000000; i++)
                asm("nop");
}

int main()
{
        GPIO_InitTypeDef GPIO_InitStructure;

  delay_init();

  RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);

  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;
  
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  GPIO_Init(GPIOB, &GPIO_InitStructure);

  for (;;)
  {
          GPIO_WriteBit(GPIOB, GPIO_Pin_5, Bit_SET);
          //Delay();
          delay_ms(500);
          GPIO_WriteBit(GPIOB, GPIO_Pin_5, Bit_RESET);
          //Delay();
          delay_ms(500);
  }
}
[/mw_shl_code]

我已经将头文件目录按照你的演示加入了头文件目录,但是还是报错,尝试将这几个文件加入系统的头文件目录,也就是官方库文件所在的目录来包含但是问题并没有解决,

工程目录

工程目录
回复 支持 反对

使用道具 举报

6

主题

72

帖子

0

精华

初级会员

Rank: 2

积分
198
金钱
198
注册时间
2017-7-25
在线时间
39 小时
 楼主| 发表于 2017-8-21 12:00:30 | 显示全部楼层
本帖最后由 17602515236 于 2017-8-21 12:04 编辑
jh442755 发表于 2017-8-21 11:45
我想问一下,我按照你的方法配置了vs2015,在加入原子的delay头文件和源文件后调用delay_init()函数之类的 ...

你的3个错误的意思就是没有定义函数,
你有没有在VisualGDB里包含头文件的文件夹(一定要最最底层的文件夹)或者进sys.h和sys.c看一下有没有错误,有可能是C语言标准不一样,导致有些出入,可能会稍微变动一点(VS是支持c11的,keil是支持c99,c11兼容c99,但略微有点不同,可以忽略)
回复 支持 反对

使用道具 举报

0

主题

2

帖子

0

精华

初级会员

Rank: 2

积分
86
金钱
86
注册时间
2016-7-19
在线时间
19 小时
发表于 2017-8-21 16:15:10 | 显示全部楼层
17602515236 发表于 2017-8-21 12:00
你的3个错误的意思就是没有定义函数,
你有没有在VisualGDB里包含头文件的文件夹(一定要最最底层的文件 ...

sys.c 里面包含的内容报错,就是汇编那部分的代码,我将他注释掉了,这会影响到吗?
VisualGDB有正确包含路径,已经包含到最低一层,在写代码的时候是可以找到那些函数的定义的,但是还是会报错
回复 支持 反对

使用道具 举报

6

主题

72

帖子

0

精华

初级会员

Rank: 2

积分
198
金钱
198
注册时间
2017-7-25
在线时间
39 小时
 楼主| 发表于 2017-8-21 19:55:33 | 显示全部楼层
jh442755 发表于 2017-8-21 16:15
sys.c 里面包含的内容报错,就是汇编那部分的代码,我将他注释掉了,这会影响到吗?
VisualGDB有正确包 ...

额,别人也遇到了这种情况....我好想没这样的错误.....
我找找原因,我去下个原子哥的sys.c试试...
回复 支持 反对

使用道具 举报

6

主题

72

帖子

0

精华

初级会员

Rank: 2

积分
198
金钱
198
注册时间
2017-7-25
在线时间
39 小时
 楼主| 发表于 2017-8-21 20:23:12 | 显示全部楼层
本帖最后由 17602515236 于 2017-8-21 20:26 编辑
17602515236 发表于 2017-8-21 19:55
额,别人也遇到了这种情况....我好想没这样的错误.....
我找找原因,我去下个原子哥的sys.c试试...

找到原因了,原子哥用的Keil5,不需要包含stm32f4xx_xxx.h的各种外设的头文件,Keil5已经帮你自动包含过了,但VS没有,所以,
如果你装了VAssisx的话,直接在有红色波浪线的地方右击,在右击的框里选第一个里有个Add include,VS就自动帮你在文件的最顶端#include 那个没有定义的变量所在的头文件了
回复 支持 反对

使用道具 举报

28

主题

95

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
228
金钱
228
注册时间
2017-8-1
在线时间
50 小时
发表于 2017-8-27 14:03:26 | 显示全部楼层
想问问楼主是怎么在vs中使用printf的?
回复 支持 反对

使用道具 举报

50

主题

1805

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
6662
金钱
6662
注册时间
2016-5-29
在线时间
910 小时
发表于 2017-8-27 16:40:26 | 显示全部楼层
如果只是编辑问题.又要软件小.还是用source insight 会更加理想.写代码的人很多的人在用.
回复 支持 反对

使用道具 举报

头像被屏蔽

12

主题

167

帖子

0

精华

禁止访问

积分
517
金钱
517
注册时间
2017-5-30
在线时间
110 小时
发表于 2017-8-27 17:54:45 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-5-15 17:06

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表