搜索
bottom↓
回复: 65

打听下,stm32上跑JavaScript有人感兴趣么?

  [复制链接]

出0入0汤圆

发表于 2016-12-23 20:48:00 | 显示全部楼层 |阅读模式
本帖最后由 3050311118 于 2016-12-24 08:48 编辑

有的话,我做一批,并出些教程

简介

最近一段时间开源硬件非常火爆,比如Arduino、Leaflabs的maple都非常火爆,它们都可以让用户可以在不了解底层硬件的情况下轻松编写出应用程序。

Espruino是2013年发起的众筹项目,为微控制器提供了一个交互式的JavaScript解释器,方便用户快速编程。在Arduino或者Maple上你需要下载到你的开发板上才能观察到程序运行结果,但是Espruino可以随时进行代码的修改与调试,当调试好后下载进去就OK了。
Espruino的相关命令与Arduino的非常相似,因此如果你用过Arduino的话将会更容易上手,当然没用过Arduino的也会被他深深吸引住的。
Espruino的交互式特点使得其与其他板子相比更强大,其他板子比如Arduino需要在每次更新代码后重启才能运行,而Espruino在你敲下回车键的那一刻就已经开始执行代码了。
特别之处
目前运行于微控制器的解释器不是很多,他们中的大部分运行比较简单的BASIC解释器。JavaScript是一门高级脚本语言,拥有强大的功能,且有众多的粉丝和网站开发者,他们可以很快上手。
Espruino开发板拥有较小的身材(62mm x 47mm),使用stm32作为主控制器,板载蓝牙模块、SD卡、支持锂电池、可以省去添加外围模块的麻烦.
由于是开源的,本人对源文件进行了部分修改,加入蓝牙模块、锂电池充电、加速度计、温度传感器、三个按键、3个LED,引出所有引脚,体积也缩小到(52mm x 33mm),对于一些日常应用,应该可以轻松一板搞定,省去添加模块的麻烦。
Espruino基于事件驱动机制,可以帮助节省更多电力。如果有太阳能电池并配合充电模块就无敌了,嘿嘿!
与Arduino不同,Espruino不需要安装软件和驱动,只需要连上开发板后就能正常工作了。
如何使用它
将你的Espruino板与PC、MAC或者Raspberry
Pi连接,使用串口终端开始编写JavaScript即可。
当Espruino按着你的设定功能开始工作后,只需要键入save(),在它下一次上电后就会执行设定的功能。
同时还可以使用蓝牙模块对你的Espruino板进行无线编程,非常诱惑吧,设想你有个支持蓝牙的手机,不用电脑,就顺利完成想要的功能。
ESPRUINO 官网
HTTP://WWW.ESPRUINO.COM/

教程还在编写,先上个预览版的教程,后续更新

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

阿莫论坛20周年了!感谢大家的支持与爱护!!

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出0入0汤圆

发表于 2016-12-23 22:16:20 | 显示全部楼层
支持楼主!出开发板,订一套!

出0入90汤圆

发表于 2016-12-23 22:28:06 | 显示全部楼层
好像挺牛啊!打一行代码,就已经开始运行了

出0入0汤圆

 楼主| 发表于 2016-12-23 23:35:20 来自手机 | 显示全部楼层
本帖最后由 3050311118 于 2016-12-23 23:37 编辑

var f = E.openFile("data.csv","w");

setInterval(function() {
  var readings = [
    analogRead(A0),
    analogRead(A1),
    analogRead(A2),
    analogRead(A3)
  ];
  f.write(readings.join(", ")+"\n");
}, 100);
几行代码就可以把4路AD值每隔100ms记录在data.csv文件里了。简单吧

出0入0汤圆

发表于 2016-12-23 23:40:35 | 显示全部楼层
3050311118 发表于 2016-12-23 23:35
var f = E.openFile("data.csv","w");

setInterval(function() {

看起来很简单的样子,感觉就是把mcu当pc机的C#一样,说白了就是做了很多封装吧,不过这种东西,处理效率都不会太高,当然对不需要很高处理速度的来说很不错,
适合快速开发

出0入0汤圆

发表于 2016-12-24 00:00:37 | 显示全部楼层
看起来很好啊,楼主可以先把固件放出来大家玩一玩,再做板子哈

出0入0汤圆

发表于 2016-12-24 01:22:38 | 显示全部楼层
已经找到固件点灯玩了一下哈

出0入0汤圆

发表于 2016-12-24 05:55:29 | 显示全部楼层
https://github.com/espruino/Espruino  源码在这里. 板子资料在这里  http://www.espruino.com/EspruinoBoard  , http://www.espruino.com/Pico , 貌似还找到了LZ的淘宝店(蘑菇电子...),有促销板子卖(69).

出0入0汤圆

发表于 2016-12-24 05:57:37 | 显示全部楼层
支持不少板子:
Original Espruino Board - great support.
Espruino Pico Board - great support.
Linux - WORKING
STM32VLDISCOVERY - WORKING - limited memory so some features removed
STM32F3DISCOVERY - USB BROKEN
STM32F4DISCOVERY - WORKING
STM32F401CDISCOVERY - appears WORKING, but very little testing done
STM32F429IDISCOVERY - WORKING over serial (A9/A10). No USB and no LCD support
NRF52832 Preview Development Kit - WORKING with limited functionality. Able to interface with Espruino over BLE (send commands from smartphone or computer) or serial as normal (send commands from chrome IDE or terminal).
HY STM32 2.4" - WORKING
HY STM32 2.8" - WORKING - limited memory so some features removed
HY STM32 3.2" - WORKING
Olimexino STM32 / Leaflabs Maple - WORKING - limited memory so some features removed
Carambola - WORKING - GPIO via filesystem (no I2C)
Raspberry Pi - WORKING - GPIO via filesystem or wiringPi (no I2C)
Sony SmartWatch - NOT WORKING - USB VCP support for F2 still needed
LC-TECH STM32F103RBT6 - WORKING, but with some issues (LED inverted logic, BTN needs pullup to work)
ST NUCLEO-F401RE - WORKING
ST NUCLEO-F411RE - WORKING
ESP8266 - Beta - Reasonably stable, but expect to find issues
NRF51/52 - Alpha - very early in development (GPIO, but not peripherals, no sleep or save)
Arduino (AVR) - NOT POSSIBLE due to the Hardward architecture of AVRs, even though it would fit into an ATMEGA2560. If avr-gcc ever gains an easy way to emulate Von Neumann architecture then it might be portable, but for now it isn't.
Arduino (ARM) - very doable, but no work has been done on this.

出0入93汤圆

发表于 2016-12-24 06:48:48 来自手机 | 显示全部楼层
虽然支持楼主,但是我不会用的。js太重量级了,轻量级的lua、picoc足够了,在简单的就是basic了。

出0入0汤圆

 楼主| 发表于 2016-12-24 07:43:04 来自手机 | 显示全部楼层
takashiki 发表于 2016-12-24 06:48
虽然支持楼主,但是我不会用的。js太重量级了,轻量级的lua、picoc足够了,在简单的就是basic了。 ...

espruino的JavaScript比那个lua跑的效率更高。
而且JavaScript现在网页前端,服务器后台通吃,比如现在很火的nodejs就是搞服务器的。现在淘宝很多后台程序都从java转到了nodejs

出0入0汤圆

 楼主| 发表于 2016-12-24 07:43:50 来自手机 | 显示全部楼层
wingerchen 发表于 2016-12-24 05:55
https://github.com/espruino/Espruino  源码在这里. 板子资料在这里  http://www.espruino.com/EspruinoBo ...

我靠,这都被发现了,哈哈

出0入0汤圆

 楼主| 发表于 2016-12-24 07:47:37 来自手机 | 显示全部楼层
takashiki 发表于 2016-12-24 06:48
虽然支持楼主,但是我不会用的。js太重量级了,轻量级的lua、picoc足够了,在简单的就是basic了。 ...

espruino操作单片机外设的语法很像arduino比如点亮LED灯digitalWrite(LED1,1)
串口操作var cmd="";
Serial1.setup(9600/*baud*/);
Serial1.on('data', function (data) {
  Serial1.print(data);
  cmd+=data;
  var idx = cmd.indexOf("\r");
  while (idx>=0) {
    var line = cmd.substr(0,idx);
    cmd = cmd.substr(idx+1);
    var s = "'"+line+"' = "+eval(line);
    print(s);
    Serial1.println(s);
    idx = cmd.indexOf("\r");
  }
});

出0入0汤圆

 楼主| 发表于 2016-12-24 07:49:03 来自手机 | 显示全部楼层
全部基于事件驱动编程的,电工如果想搞网络方面我觉得espruino可以学学,JavaScript可以入门。

出0入0汤圆

发表于 2016-12-24 08:07:03 来自手机 | 显示全部楼层
407支持吗?

出0入0汤圆

发表于 2016-12-24 08:15:11 | 显示全部楼层
我发现对于一个不会JavaScript的人来说,还是用Arduino比较爽

出0入0汤圆

 楼主| 发表于 2016-12-24 08:17:54 来自手机 | 显示全部楼层
Excellence 发表于 2016-12-24 08:07
407支持吗?

F4系列的都可以跑应该

出0入0汤圆

 楼主| 发表于 2016-12-24 08:20:16 来自手机 | 显示全部楼层
本帖最后由 3050311118 于 2016-12-24 08:36 编辑
weichao4808335 发表于 2016-12-24 08:15
我发现对于一个不会JavaScript的人来说,还是用Arduino比较爽


JavaScript语法也有独到之处,全部基于事件处理。就好比后台跑了个操作系统,各块函数看起来并行操作的。官方说基于事件很省电

digitalWrite([LED1,LED2,LED3],0b111);  就可以把三个灯点亮,是不是比arduino更简单呢

出0入0汤圆

发表于 2016-12-24 08:30:06 | 显示全部楼层
能跑的动吗

出0入0汤圆

 楼主| 发表于 2016-12-24 08:33:44 | 显示全部楼层

STM32  python都跑的很欢的
何况JavaScript

出0入0汤圆

发表于 2016-12-24 08:35:05 | 显示全部楼层
帮顶            还没接触过js

出0入0汤圆

发表于 2016-12-24 09:16:15 | 显示全部楼层
多重包装啊!!!!!!!

出0入93汤圆

发表于 2016-12-24 12:19:44 | 显示全部楼层
本帖最后由 takashiki 于 2016-12-24 17:39 编辑
3050311118 发表于 2016-12-24 07:47
espruino操作单片机外设的语法很像arduino比如点亮LED灯digitalWrite(LED1,1)
串口操作var cmd="";
Seria ...

表示不太相信JS效率比LUA高。而且作为史上坑最多的语言,JS真的就那么美?虽然它是事实上占用率最高的编程语言。

你这个JS代码改成LUA也差不多,虽然LUA语法是怪异了一点。说实在的,换成C++也未必就复杂到哪里去。
  1. local cmd=""
  2. Serial1:setup(9600) --baud
  3. Serial1:on("data", function (data)
  4.   Serial1:print(data)
  5.   cmd=cmd + data
  6.   local idx = cmd:find("\r")
  7.   while idx>=0 do
  8.     local line = cmd:substr(0,idx)
  9.     cmd = cmd:substr(idx+1)
  10.     local s = "'"..line.."' = "..eval(line)
  11.     print(s)
  12.     Serial1:println(s)
  13.     idx = cmd:find("\r")
  14.   end
  15. end)
复制代码

C++11版的,
  1. std::string cmd="";
  2. Serial1.setup(9600/*baud*/);
  3. Serial1.on("data", [&](std::string data)-> {    //C++得用Lambda表达式了
  4.   Serial1.print(data);
  5.   cmd+=data;
  6.   auto idx = cmd.indexOf("\r");
  7.   while (idx>=0) {
  8.     auto line = cmd.substr(0,idx);
  9.     cmd = cmd.substr(idx+1);
  10.     auto s = "'"+line+"' = "+eval(line);            // eval这个把C++难住了,只能动态语言化了!
  11.     print(s);
  12.     Serial1.println(s);
  13.     idx = cmd.indexOf("\r");
  14.   }
  15. });
复制代码

说实在的,近年来出现的语言的语法越来越有融合的趋势,就语法糖来说,各有优势,js简洁一些但没有操作符重载,lua则很多功能都砍掉了,C++越来越复杂也越来越像动态语言了

出0入0汤圆

发表于 2016-12-24 12:28:50 | 显示全部楼层
基于事件驱动我相信会有更好的低功耗物性。问题是像MCU这样程序编译执行时注册一个事件回调函数。然后有事件来了跳转执行。是没什么问题。但是如果是脚本呢??事件来了怎么知道该去哪找到事件回调函数来执行?脚本不是放在SPI FLASH中吗??如果不是基本事件回调函数的方式那如何省电。
头像被屏蔽

出0入0汤圆

发表于 2016-12-24 12:48:46 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

出0入0汤圆

 楼主| 发表于 2016-12-24 13:49:43 | 显示全部楼层
bbs2009 发表于 2016-12-24 12:48
LZ 现在 LZ的淘宝店(蘑菇电子...),有促销板子卖(69).  
何时有货?

目前就焊接了15块

出0入0汤圆

 楼主| 发表于 2016-12-24 13:50:21 | 显示全部楼层
inkfish321 发表于 2016-12-24 12:28
基于事件驱动我相信会有更好的低功耗物性。问题是像MCU这样程序编译执行时注册一个事件回调函数。然后有事 ...

脚本存储在   STM32 内部flash里面

出0入0汤圆

发表于 2016-12-24 14:01:21 | 显示全部楼层
这个好的呀

出0入0汤圆

发表于 2016-12-24 14:09:18 | 显示全部楼层
3050311118 发表于 2016-12-24 13:50
脚本存储在   STM32 内部flash里面

脚本主是文本啊。存在MCU FLASH。
MCU得多大FLASH才够。

出0入0汤圆

发表于 2016-12-24 14:26:01 | 显示全部楼层
楼主 js写单片机程序是没问题,有问题的是怎么把js download到mcu ,如果你能做一个通过http 下载js到mcu并能执行的,我觉得很有前途,就像一个嵌入式浏览器一样

出0入0汤圆

发表于 2016-12-24 14:44:15 | 显示全部楼层
这个推广给不会单片机的人用更合适,因为他们不懂C语言
正如,前面有个网友所言,用C++的源代码,并不比JS大多少,但目标代码效率却高一个数量级

甚至,可以做成跨语言的平台,就像win的DotNet,C#,C,VB、js、lua、python都可以使用,那就流弊了

出0入0汤圆

发表于 2016-12-24 14:44:26 | 显示全部楼层
inkfish321 发表于 2016-12-24 14:09
脚本主是文本啊。存在MCU FLASH。
MCU得多大FLASH才够。

这个你不用担心啦,都选大容量就对了。

出0入0汤圆

发表于 2016-12-24 16:35:30 | 显示全部楼层
玩可以,说实话都是为了推广方便,实际应用不会,估计用js是也考虑到打通前后端而已,然而那些用户群想不想玩是一个问题~
感觉编译出来的体积运行效率,可以参考俺之前回复类似的帖子,不过嘛,stm32空间就是大。

假如很多库用上来的话,市场应该是有的,毕竟,Arduino性能不太够了,但貌似人家也有高性能的了,现存库还多,对应硬件模块也多。

还有跨语言没问题,关键要有那么多库用,你想一下咯。
这东西几年前就有了不是么,反正我在台湾机器人杂志上就看到过。
价格!价格!价格!重要的事情说3遍。给一个人家不玩树莓派,nano pi之类的理由。

出0入0汤圆

发表于 2016-12-24 16:39:27 | 显示全部楼层
ericdai 发表于 2016-12-24 14:26
楼主 js写单片机程序是没问题,有问题的是怎么把js download到mcu ,如果你能做一个通过http 下载js到mcu并 ...

感觉开发这个完全没难度,因为他们应该写好对应的js-hex的编译器了。

出0入93汤圆

发表于 2016-12-24 17:54:20 | 显示全部楼层
McuPlayer 发表于 2016-12-24 14:44
这个推广给不会单片机的人用更合适,因为他们不懂C语言
正如,前面有个网友所言,用C++的源代码,并不比JS ...

要说“可以做成跨语言的平台”来说,目前也就.NET、Java、Javascript最合适了
.NET可以用.NET MF,支持.NET的语言还是不少的
Java有他自己的虚拟机,构建于Java虚拟机上面的语言有好多,虽然我都不认识,什么Scala啊、Groovy啊,Jython啊,JRuby啊,Kotlin之类的
而js是Web界事实上的汇编语言了,能够编译成js的语言不知道多少,虽然绝大多数都没听说过。估计跨语言编译这货是最多的,参见这里: http://www.open-open.com/lib/view/open1430293143865.html

从这个层面上来说,LZ推广的这个东西还是非常不错的,只不过经过好几次折腾后效率会大打折扣。

出0入0汤圆

发表于 2016-12-24 19:16:16 | 显示全部楼层
我做一块STM32F407,先玩PYTHON,再玩JS.呵呵。
帮顶。

出0入4汤圆

发表于 2016-12-24 19:17:36 | 显示全部楼层
python好像早就跑再STM上了,用的最多的是再ESP8266

出0入4汤圆

发表于 2016-12-24 19:18:37 | 显示全部楼层
本帖最后由 gmyu 于 2016-12-24 19:19 编辑

micropython

出0入8汤圆

发表于 2016-12-24 19:23:40 来自手机 | 显示全部楼层
支持楼主!

出0入0汤圆

发表于 2016-12-24 19:29:03 来自手机 | 显示全部楼层
说一千道一万,还得有板子玩才有用,玩了才知道效果

出0入0汤圆

发表于 2016-12-24 19:32:54 | 显示全部楼层
看起来好像很好玩啊,坐等沙发

出0入0汤圆

发表于 2016-12-24 19:39:21 | 显示全部楼层
wangyan915205 发表于 2016-12-24 19:29
说一千道一万,还得有板子玩才有用,玩了才知道效果

不需要专用的板子,STM32F103C8 和RC的片子直接下载进去固件就能用了,测试了两个

出0入0汤圆

发表于 2016-12-24 19:41:32 来自手机 | 显示全部楼层
楼主,我感觉这个做爱好应该可以,但是很难指望可以用来赚钱,感觉好多想做开发板做主业的都亏了或者做不下去。除非是自己需要把剩余的卖掉

出0入0汤圆

发表于 2016-12-24 19:52:50 | 显示全部楼层
很棒的想法,大神请继续。

出0入0汤圆

 楼主| 发表于 2016-12-24 20:33:46 | 显示全部楼层
本帖最后由 3050311118 于 2016-12-24 20:36 编辑
Honey_comb 发表于 2016-12-24 19:39
不需要专用的板子,STM32F103C8 和RC的片子直接下载进去固件就能用了,测试了两个 ...


玩这个最好板子上带SD卡,而且是基于SPI的,因为ESPRUINO默认就是spi2驱动sd卡的
而且usb口上下拉  有个引脚控制

出0入0汤圆

 楼主| 发表于 2016-12-24 20:34:40 | 显示全部楼层
qiqirachel 发表于 2016-12-24 19:41
楼主,我感觉这个做爱好应该可以,但是很难指望可以用来赚钱,感觉好多想做开发板做主业的都亏了或者做不下 ...

主要是兴趣,并且结合兴趣结识有相同爱好的人

出0入0汤圆

 楼主| 发表于 2016-12-24 20:35:53 | 显示全部楼层
takashiki 发表于 2016-12-24 12:19
表示不太相信JS效率比LUA高。而且作为史上坑最多的语言,JS真的就那么美?虽然它是事实上占用率最高的编程 ...

你这个翻译是有  软件翻译的还是自己翻译的?

出0入0汤圆

发表于 2016-12-24 20:44:42 | 显示全部楼层
看起来比Arduino 有吸引力

出0入90汤圆

发表于 2016-12-24 21:00:46 | 显示全部楼层
如果我写的是大型的程序,这个应该不好用吧。每句话都要通过串口终端打到芯片里面去,工程怎么管理呢

出0入0汤圆

 楼主| 发表于 2016-12-24 21:24:46 | 显示全部楼层
honami520 发表于 2016-12-24 21:00
如果我写的是大型的程序,这个应该不好用吧。每句话都要通过串口终端打到芯片里面去,工程怎么管理呢 ...

这个  一般不会作为  产品开发工具。
但是如果想要随意搭建个测试工具,还是比较方便的。  而且不需要编译,就简单几个逻辑。

否则用C原生的写,   可能写到吐血,结果就只是完成几个逻辑功能。比如采集上面我写的  采集几个ad值,并且记录到sd卡上

出0入93汤圆

发表于 2016-12-24 21:38:19 | 显示全部楼层
3050311118 发表于 2016-12-24 20:35
你这个翻译是有  软件翻译的还是自己翻译的?

纯自己手写翻译的,如果有纰漏还请多多包涵

出0入93汤圆

发表于 2016-12-24 21:42:27 | 显示全部楼层
honami520 发表于 2016-12-24 21:00
如果我写的是大型的程序,这个应该不好用吧。每句话都要通过串口终端打到芯片里面去,工程怎么管理呢 ...

大型程序中脚本可以作为辅助,提供二次开发接口等等

出0入0汤圆

 楼主| 发表于 2016-12-25 00:10:03 来自手机 | 显示全部楼层
takashiki 发表于 2016-12-24 21:42
大型程序中脚本可以作为辅助,提供二次开发接口等等

单片机上的大型程序还是纯C C++靠谱,电脑上的混合开发现在是个趋势。
电工学点脚本做些辅助工作还是有很多帮助的,

出0入0汤圆

发表于 2016-12-25 21:42:31 来自手机 | 显示全部楼层
在32上做解析器?

出0入0汤圆

发表于 2016-12-25 21:57:20 | 显示全部楼层
有linux版本的解析器吗?

出0入0汤圆

发表于 2016-12-25 23:47:33 来自手机 | 显示全部楼层
不实用         

出0入0汤圆

 楼主| 发表于 2016-12-26 01:07:54 来自手机 | 显示全部楼层
ljt80158015 发表于 2016-12-25 21:57
有linux版本的解析器吗?

linux直接上nodejs

出0入0汤圆

发表于 2016-12-26 08:25:34 | 显示全部楼层


nodejs  和  c 能互通吗?


出0入0汤圆

 楼主| 发表于 2016-12-26 09:16:03 来自手机 | 显示全部楼层
用C编写模块nidejs调用C

出0入0汤圆

发表于 2016-12-26 09:22:29 来自手机 | 显示全部楼层
这个玩法n多年前就有了,只是用脚本语替换了编程语言,可以让不懂编程语言的人方便些。但是脚本语言翻译器会占用较大空间,而且执行速度会下降,一般玩玩可以,做产品肯定不行。20多年前就玩过pic下的basic翻译器脚本语言,只要打几行basic代码,并行口下载到单片机串行存储器,然后执行即可。

出0入4汤圆

发表于 2016-12-26 09:30:12 | 显示全部楼层
总觉得在MCU级别上整这些玩意 除了炫技 ,玩 没啥实用价值。但是是个很好的学习项目。

出0入0汤圆

发表于 2016-12-27 08:28:58 | 显示全部楼层
3050311118 发表于 2016-12-26 09:16
用C编写模块nidejs调用C

nodejs 还能调用C ?

出0入0汤圆

 楼主| 发表于 2016-12-27 10:30:01 | 显示全部楼层

是的  底层的模块  可以写,官方还有这方面的编写库教程

出0入0汤圆

 楼主| 发表于 2017-1-1 13:33:09 来自手机 | 显示全部楼层
我自己顶下

出0入0汤圆

发表于 2019-1-2 14:11:48 | 显示全部楼层
最近用它搞了个NBIOT

出0入0汤圆

发表于 2019-1-3 16:44:00 | 显示全部楼层
支持支持
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-19 01:26

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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