搜索
bottom↓
楼主: Gorgon_Meducer

【虚拟论坛置顶】(发布mkII协议引擎)[08-04-23]傻孩子的第一个大工程——自行研发的

[复制链接]

出0入0汤圆

发表于 2008-3-19 23:28:48 | 显示全部楼层
呵呵,果然是破解。不知道下面的连接对你有没有帮助?但我想你应该google过了
http://download.savannah.gnu.org/releases/freeice/AVR-OCD-Documentation.html

AVR JTAG OCD (Private) Commands

Document Date 05 April 2003

JTAG Instruction 0x08 - Force Break

JTAG Instruction 0x09 - Run

JTAG Instruction 0x0A - Execute AVR Instruction (2 Words!)

use 0x0A, SDR 0xFFFF0000 to read PC (actually returns PC+2 or PC+4)

JTAG Instruction 0x0B - Access OCD Registers

there are total 16 Addressable Registers
after IR next DRSHIFT is RW Flag (1=Write) + 4 Bits Address
those Data in Instruction is 21 (5 + 16) bits
note for read operation OCD Address need to be pre latched!

Register 0 PSB0

Register 1 PSB1

Register 2 PDMSB

Register 3 PDSB

Register 8 Break Control Register (BCR)
Bit          rw          Description
D15          rw          1=Enable Timers to Run during Break
D14          rw          1=PC is read as +4 not +2 after break ?
D13          rw          1=Break on change Flow ?!
D12          rw          1=Enable PSB0
D11          rw          1=Enable PSB1
D10          rw          1=Enable PDMSB as single break
D9          rw          1=Enable Mask in Break Comparison
D8          rw          1=
D7          rw          1=*
D6          rw          1=
D5          rw          1=
D4          rw          1=*
D3          rw          1=*
D2          rw          1=
D1-0          r          (read as 0)

* note when D7, D4, D3 are all set then PDSB is enabled s Program Break

Register 9 - Break Status Register (BSR)
Bit          rw          Description
D15-D8          r           
D7          r          1=Break on change flow
D6          r          1=Break on PSB0 (Reg0)
D5          r          1=Break on PSB1 (Reg1)
D4          r          1=Break on PDMSB (Reg2 as single break)
D3          r          1=Break on PDSB (Reg3)
D2          r          1=Break on ? (has been seen)
D1          r          1=Break forced by OCD (Instr 8)
D0          r          1=Break by AVR Break Instruction (0x9598)

Register C - OCDR Readback
Bit          rw          Description
D15-8          rw          OCDR 7..0
D7-0          r          unused (read as 0)

Register D - Control and Status Register
Bit          rw          Description
D15          rw          1=Enable OCDR
D14          rw          1=?
D13-D5          r           
D4          r          1=OCDR written by AVR and not read by OCD
D3          r          1=Reset not active
D2          r          1=Reset not active
D1-0          r

出0入296汤圆

 楼主| 发表于 2008-3-20 14:43:11 | 显示全部楼层
to 【100楼】 ifree64  

谢谢,帮助很大。不过我目前工作的重点不是OCD。二是UC3的JTAG下载。等完成了所有的JTAG下载以后,我才会回来解决OCD的问题。

to 【99楼】 2006cc
我在论坛上提供的工程暂时还不能连接到Studio。这个工程的主要目的是为大家演示如何利用JTAG编写ISP程序。在工程中提供了详细的JTAG函数和ISP下载函数。并没有提供mkII协议部分。具体的mkII协议部分,我还没有公布——因为还有很多需要测试和实现的工作。

出0入0汤圆

发表于 2008-3-20 15:38:07 | 显示全部楼层
哦!谢谢!

出0入0汤圆

发表于 2008-3-20 16:17:38 | 显示全部楼层
大力支持免费开源
让那些收钱的人、不开源的人去见鬼吧

出0入0汤圆

发表于 2008-3-20 16:21:15 | 显示全部楼层
OCD部分的协议以前测试过,AVR-OCD-Documentation.html里的资料还不是很全,当时由于没有其他的官方工具可以用逻辑分析仪分析,所以也就作罢。不过根据AVR-OCD-Documentation.html里的协议,是可以实现一定的功能的(部分已测试),比如通过JTAG使AVR核执行指令,并通过OCDR返回;运行;暂停等。
AVR的JTAG和ISP下载应该比较容易的,UC3的JTAG下载原来也考虑做一下,由于没有UC3芯片测试,所以也无法进行,而且Avrstudio的编程界面中JTAG编程模式下,找不到对UC3的支持。
JTAGICE mkII的协议在ISP和JTAG部分其实于Dragon的差不多。我这里有一个实现了JTAGICE mkII和AVRISP mkII和AVR Dragon的一个编程器:http://www.SimonQian.com/en/AVRminiProg

出0入296汤圆

 楼主| 发表于 2008-3-21 09:15:42 | 显示全部楼层
104楼的这位才是真高人啊!自愧不如,自愧不如。

to 【104楼】 chengyingavr

    AVR32系列有专门的Studio版本,可以找到对UC3的支持。我仔细看了你公布出来的源代码,惊愕的说不出话来。您的代码相当有条理,不过对很多人来说缺乏必要的注释(当然,软件工程中有一种较为流行的说法叫做:代码就是文档)。从您的完整工程体系中,我学到一点:从今往后,我也要把工程中牵涉到的函数分门别类的用专门的目录进行存放哈。
    对于我的工程和编码风格,能不能劳烦您帮忙看一下提一提意见。还有,能否允许我在相关资料一栏提供您网站的网址和源代码的下载?如果可以,我将非常感谢,并暂停mkII的协议部分,直接进入UC3JTAG下载协议部分的学习。

出0入0汤圆

发表于 2008-3-21 10:11:57 | 显示全部楼层
【104楼】 chengyingavr
UC3的下载界面在AVR32 STUDIO里有,或者使用命令行的方式下载
关于芯片,国内在近期即可到货

出0入0汤圆

发表于 2008-3-21 14:10:47 | 显示全部楼层
to 105F:
过奖,我的代码中也有一些做的不太好的地方,比如注释问题(我通常在代码比较成熟后再加入doxygen标准的注释,然后直接可以自动生成文档),变量命名问题(LZ坚持使用最标准的方法值得学习)等
我当然不会反对你把AVRminiProg的链接加入本帖。这个编程器的资料曾经有人在论坛上发过,不过可能由于种种原因,并没有引起太大的反响,在我主页的mail里,近2个月,也基本上都是英文的邮件。
LZ的代码相当的漂亮,如果硬要提一些建议的话,提供1条参考:
1.类似如下的定义:
# define CLR_JTAG_PIN(__PIN)        DDRB |= BIT((__PIN));PORTB &= ~BIT((__PIN));NOP();
在特定的使用方式上会有一些问题,比如:
if(last_bit)
CLR_JTAG_PIN(TMS);
LZ在类似上面的代码中都加了{},当然也是提倡怎么做,但并不能掩盖确实在如上的调用方式下存在问题。
建议使用do{}while(0)结构(通常编译器会优化掉),或者逗号表达式(可用于有返回值的)

PS:原来我已经不算年轻人了啊,哈哈哈
中文主页也是有的(把en改成cn),不过并不一定会更新了
公布OCD了吗?我去看看,记得发布前去掉了的,主要由于只是实现了部分功能,还不能应用于实际的调试

出0入296汤圆

 楼主| 发表于 2008-3-21 15:05:29 | 显示全部楼层
to 【107楼】 chengyingavr
    关于do{}while(0);的问题,我在阅读Linux源代码的时候一段时间也喜欢这样用。但是,后来,由于我们在团队里面强制执行了编码规范(不允许省略任何{},),并配有相应的检测软件,所以就形成了那样的风格。另外,我一般也不会使用do {}while(0);结构,取而代之,直接使用{}将代码扩起来。不知道二者有什么区别。通过阅读你的代码,确实发现缺失了OCD部分。有些许遗憾哈。不过通过阅读您的代码,省去了很多原本需要串口劫持才能弄清楚的中间细节,谢谢了。如果可以,希望和你更多的交流。
    这是我的MSN:Embedded_Zhuoran@hotmail.com

出0入0汤圆

发表于 2008-3-21 16:30:27 | 显示全部楼层
to 【108楼】 Gorgon Meducer 傻孩子
  如果代码要发布的话,你并不知道别人会怎么用代码,所以只能依照安全第一的原则。
  如果只是使用{}来直接取代宏定义中的do{}while(0)的话,在某些情况下也会出问题,比如,习惯性的在语句后加一个';'(我习惯宏定义的使用方式和函数调用一样,你的代码中,有些地方加了';',有写地方没有),Linux代码的一些写法确实是有一定的道理的。
  OCD部分确实还很不成熟,所以就宁缺毋滥。比如,如果按照Atmel提供的JTAGICE mkII,操作时就会发现,Avrstudio会发送一些并没有在公开协议中记录的数据包,而且,我本身并没有JTAGICE mkII,所以截取协议也比较困难。不过我也是非常想完善OCD部分。

PS:
建议LZ位上再加入链接,以前就有一个朋友发了AVRminiProg的帖子,但AVRminiProg更新后,他并没有更新帖子。
而且AVRminiProg的一些小Bug的fix是以类似发布新的单个文件或者.patch的方式,其实你上传的代码也不是最新的了,在使用Avrdude操作EEPROM读取的时候会发生问题(由于Avrdude和Avrstudio的不同操作方式引起),替换文件已经发布在主页上了。

出0入0汤圆

发表于 2008-3-21 17:26:53 | 显示全部楼层
【109楼】 chengyingavr
   这位老大,是个牛人!!

出0入296汤圆

 楼主| 发表于 2008-3-21 20:06:26 | 显示全部楼层
to 【109楼】 chengyingavr

    关于{}的问题的确有道理。对于另外一个问题,也就是我的宏是否加“;”的问题,我也是有考虑的。
    1、原则上,要保证所有具有类似函数功能的“动作宏”在代码中使用的时候“可以,但是不强求”省略分号。省略分号是动作宏与函数的区别。
    2、对于有返回值的宏,以及常数宏——需要写入表达式的宏,在定义时都不附加分号。
    谢谢你的指导。

    至于上传得代码问题,真正感兴趣的人不会只看我提供的下载资料的,您的网站他一定不会放过——所谓领会精神麻。

出0入50汤圆

发表于 2008-3-22 16:26:04 | 显示全部楼层
chengyingavr不是牛人的话,这个论坛里就没几个AVR牛人了。

继续支持楼主和各位牛人,虽然我到目前为止还没用过任何一款仿真工具。

出0入0汤圆

发表于 2008-3-22 16:57:32 | 显示全部楼层
占个位子

出0入0汤圆

发表于 2008-3-23 13:28:28 | 显示全部楼层
记号

出0入0汤圆

发表于 2008-3-23 19:47:39 | 显示全部楼层
呵呵,过奖了,还没有到那个水平
我也希望LZ能早日完成UC3的JTAG下载代码和OCD代码,我也好参考参考
xmega MS还没有提供下载协议,不过也快了
头像被屏蔽

出0入0汤圆

发表于 2008-3-24 08:11:50 | 显示全部楼层
【115楼】 chengyingavr 的确是AVR牛人。

期待 chengyingavr 的更多作品出笼 :)

出0入0汤圆

发表于 2008-3-25 22:06:29 | 显示全部楼层
这样的技术贴不多了啊~
强烈支持chengying、Gorgon Meducer 等 N侠 ~

出0入0汤圆

发表于 2008-3-26 08:22:20 | 显示全部楼层
不错!

出0入0汤圆

发表于 2008-3-27 01:09:21 | 显示全部楼层
实在是佩服,占个位子先

出0入0汤圆

发表于 2008-3-27 12:01:26 | 显示全部楼层
打个标记

出0入0汤圆

发表于 2008-3-27 15:44:43 | 显示全部楼层
好贴,不顶不行

出0入0汤圆

发表于 2008-3-28 08:32:16 | 显示全部楼层
AVR32靠你拉   一定顶!!!!!

出0入4汤圆

发表于 2008-4-1 09:20:01 | 显示全部楼层
非常精彩的讨论,胜读n本书。

出0入0汤圆

发表于 2008-4-4 19:39:25 | 显示全部楼层
精彩!

出0入0汤圆

发表于 2008-4-4 22:41:22 | 显示全部楼层
得好好看看^^^^^^^^^^^^

出0入0汤圆

发表于 2008-4-8 13:51:59 | 显示全部楼层
辛苦了。

出0入0汤圆

发表于 2008-4-11 13:14:04 | 显示全部楼层
看看

出0入0汤圆

发表于 2008-4-17 16:49:40 | 显示全部楼层
天外天,人外人!阿莫的功劳无法计量!

出0入0汤圆

发表于 2008-4-18 13:39:08 | 显示全部楼层
同样是一个大学的,差距太大了

出0入0汤圆

发表于 2008-4-22 16:45:10 | 显示全部楼层
高手啊……学习……

出0入0汤圆

发表于 2008-4-22 17:05:29 | 显示全部楼层
狂顶,狂支持。。。

出0入0汤圆

发表于 2008-4-26 07:53:53 | 显示全部楼层
得向你们好好学习~~我什么时候也可以这样~~~牛~~~一翻啊???........

出0入0汤圆

发表于 2008-4-26 13:10:36 | 显示全部楼层
好贴应该得到大家的狂顶,学习的好资料。

出0入0汤圆

发表于 2008-4-30 16:49:46 | 显示全部楼层
把傻孩子赶上绝路,快搞出来啊

出0入0汤圆

发表于 2008-4-30 17:10:22 | 显示全部楼层
支持,祖国的大西北牛呀!
头像被屏蔽

出0入0汤圆

发表于 2008-5-4 08:22:10 | 显示全部楼层
抱歉这贴的虚拟总论坛置顶掉下来了。。重新设一下。

出0入0汤圆

发表于 2008-5-6 13:52:44 | 显示全部楼层
看不懂,顶一下.

出0入0汤圆

发表于 2008-5-10 00:06:26 | 显示全部楼层
请问"傻孩子"mkii协议中规定0x00 to 0x3f为message,但0x23后就没讲.有一个命令字0x2f是什么含义?

好象是get spi freq......?

请指教

出0入296汤圆

 楼主| 发表于 2008-5-10 17:41:52 | 显示全部楼层
0x23以后的内容是保留的。在AVR32 Studio2 mkII协议里面出现。
0x24 是RESET指令
0x25 未知
0x28 SAB 写入
0x29 SAB 读取
……
0x2f 是兼容JTAGISP mkII协议的。你可以参照AVR 069文档,找到对应的协议内容。

出0入0汤圆

发表于 2008-5-10 23:39:40 | 显示全部楼层
又发现一个参数没讲parameter id = 0x29(asc 41).

出0入0汤圆

发表于 2008-5-11 00:00:27 | 显示全部楼层
avr069里面并没有描述cmnd=0x2f啊.还有069讲的是avrisp mkii.是USB口的.0x2f是我在串口上监控到的,是jtagice mkii.按协议集解析失败.

出0入296汤圆

 楼主| 发表于 2008-5-11 00:20:40 | 显示全部楼层
To 【141楼】 Oliver
    你领会我的意思领会错了,0x2f的意思是,在它的数据包里面封装了avrisp mkII的数据包……

出0入0汤圆

发表于 2008-5-11 00:27:49 | 显示全部楼层
【142楼】 Gorgon Meducer 傻孩子:
抱歉,我电脑上的AVR067是以前下的是B版本的,刚下了C版本,已经看见关于mkii协议内封装兼容avrip mkii的协议命令了,谢谢.

你知道参数0x29是什么内容项目吗?解析参数未知

出0入0汤圆

发表于 2008-5-11 00:31:01 | 显示全部楼层
它是封装了另一套协议,用原装MKII下程序比AVRISP MKII慢得多是不是这个原因啊.原装还USB口呢,AVRISP用串口

出0入296汤圆

 楼主| 发表于 2008-5-11 02:33:32 | 显示全部楼层
因为ATMEL公司未公开该协议,我也不方便在网络上大肆散播……
我可以给你一个提示
你去看UC3A PDF中JTAG的MEMORY_WORD_ACCESS指令以及 SAB地址映射的内容,自然就知道了……
另外,我没有用过avrisp mkII……所以不知道这个速度差别……

出0入0汤圆

发表于 2008-5-12 08:08:41 | 显示全部楼层
高手啊,顶!

出0入296汤圆

 楼主| 发表于 2008-5-21 13:29:51 | 显示全部楼层
以下蓝色文字由版主:Gorgon Meducer 于:2008-05-21,13:29:51 加入。
<font color=black>请发贴人注意:
本贴放在这分区不合适,即将移走
原来分区:[1000]AVR (原ourAVR.com) 技术论坛
即将移去的分区:[1038]傻孩子(Gorgon Meducer)专栏
移动执行时间:自本贴发表0小时后

任何的疑问或咨询,请可随时联系站长。谢谢你的支持!
</font>

出0入0汤圆

发表于 2008-6-12 13:08:10 | 显示全部楼层
强就一个字。。。。。。。。。。。

出0入0汤圆

发表于 2008-6-14 21:14:15 | 显示全部楼层
我们已经发布了一个升级固件,使得我们的USB AVR JTAGICE mkII Lite V2产品可以完整实现debugWIRE协议、ISP mkII协议、AVR32 JTAG调试协议。

更多介绍请看以下链接:
http://www.mcuzone.com:8080/shop/index.php?gOo=goods_details.dwt&goodsid=181&productname=

希望这个帖子能撑几天

出0入0汤圆

发表于 2008-6-14 21:19:33 | 显示全部楼层
另外,对于xMega的支持也基本完成,不知道哪位可以提供一个xMega的测试目标板

出0入0汤圆

发表于 2008-6-17 20:16:33 | 显示全部楼层
已经在AVR32STUDIO V1.0.7和IAR for AVR32 V2.21B下测试通过AT32UC3B0256和AT32UC3A0512目标板

出0入0汤圆

发表于 2008-7-17 18:35:04 | 显示全部楼层
强呀!!

出0入0汤圆

发表于 2008-8-4 16:30:32 | 显示全部楼层
佩服!希望在阿莫大哥的引导下.让我们一起走上高级菜鸟起飞的道路.
一个字"强"

出0入0汤圆

发表于 2008-12-13 22:32:29 | 显示全部楼层
顶起!

出0入0汤圆

发表于 2008-12-18 23:29:49 | 显示全部楼层
楼主的精神值得我学习,狂顶,只是现在不够格参于进来,只能看!

出0入0汤圆

发表于 2008-11-6 21:09:49 | 显示全部楼层
好东西,不可错过

出0入0汤圆

发表于 2008-11-19 13:47:37 | 显示全部楼层
老大,你算是工作做到家了,看了阁下的成绩,我觉得这个世界牛人还是多,我还是有奔头的,向你学习!

出0入0汤圆

发表于 2008-11-20 07:46:44 | 显示全部楼层
强人啊!

出0入0汤圆

发表于 2008-12-5 13:51:54 | 显示全部楼层
mark

出0入0汤圆

发表于 2009-8-1 23:08:20 | 显示全部楼层
好贴,不顶不行

出0入0汤圆

发表于 2009-8-1 23:27:33 | 显示全部楼层
看到楼主那充满自信的笑容,就知道你一定能成功

出0入0汤圆

发表于 2009-8-13 11:38:44 | 显示全部楼层
mark

出0入0汤圆

发表于 2009-8-13 11:39:04 | 显示全部楼层
mark

出0入0汤圆

发表于 2009-11-10 17:14:24 | 显示全部楼层
mark

出0入0汤圆

发表于 2009-11-10 18:46:56 | 显示全部楼层
mark

出0入0汤圆

发表于 2009-11-18 22:56:01 | 显示全部楼层
学习

出0入0汤圆

发表于 2009-11-18 23:27:23 | 显示全部楼层
学习

出0入0汤圆

发表于 2009-11-23 00:17:45 | 显示全部楼层
学习中

出0入0汤圆

发表于 2009-11-23 18:29:58 | 显示全部楼层
这个绝对的要顶!!!!!1

出0入0汤圆

发表于 2009-12-4 11:33:43 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-1-24 09:08:29 | 显示全部楼层
偶像

出0入0汤圆

发表于 2010-3-23 16:59:03 | 显示全部楼层
向你学习,必需得向你学习

出0入0汤圆

发表于 2010-3-23 18:09:34 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-3-23 19:05:38 | 显示全部楼层
回复【1楼】Gorgon Meducer 傻孩子
-----------------------------------------------------------------------

dddddddddddddd

出0入0汤圆

发表于 2010-3-23 22:48:38 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-3-25 10:27:28 | 显示全部楼层
有个问题请教!

出0入0汤圆

发表于 2010-3-25 10:29:05 | 显示全部楼层
AT32UC3B0256 - USB - USB/DFU


Device selection....................... PASS
Hardware selection..................... PASS
Opening port........................... found 8 busses
FAIL        Could not open USB device.
ISP done.
AtLibUsbDfu: 3EB 2FF6 no device present.
Process failed with error code -1.
Executing cmd.exe /C batchisp -device AT32UC3B0256 -hardware usb -operation onfail abort memory FLASH erase F loadbuffer D:\My Documents\workspace\test1\Debug\test1.elf program verify start reset 0  (WAIT)
Running batchisp 1.2.3 on Thu Mar 25 10:01:55 2010
AVR32Studio-2.4-Setup.exe+avr32-gnu-toolchain-2.4.2-setup.exe+Flip Installer - 3.3.1.exe
USB下载不成功,是怎么回事啊?

出0入296汤圆

 楼主| 发表于 2010-3-25 10:30:12 | 显示全部楼层
你用的是DFU,不是mkII

出675入8汤圆

发表于 2010-3-26 14:42:58 | 显示全部楼层
好贴

出0入0汤圆

发表于 2010-4-11 21:59:45 | 显示全部楼层
你好  板主 我做过JTAG的离线编程  用128给另个128FLASH编程 有问题可以交流  lanya001jia@163.com

出0入296汤圆

 楼主| 发表于 2010-4-12 10:04:32 | 显示全部楼层
to 【180楼】 lerysun
    谢谢你。能留一个QQ或者MSN之类的即时通讯方式么?

出0入0汤圆

发表于 2010-4-12 10:15:37 | 显示全部楼层
顶 强

出0入0汤圆

发表于 2010-4-12 15:16:29 | 显示全部楼层
回复【181楼】Gorgon Meducer 傻孩子
-----------------------------------------------------------------------
这是我的Q 276136705

出0入0汤圆

发表于 2010-4-12 16:24:35 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-4-13 10:41:19 | 显示全部楼层
楼主 我觉着这种大工程可以多找几个人一起弄  而且JTAG中关于调试部分的指令是没有公开的  只公开了编程部分的 所以有难度啊

出0入296汤圆

 楼主| 发表于 2010-4-13 13:33:22 | 显示全部楼层
to 【185楼】 lerysun
    这个项目早就完工了……

出0入0汤圆

发表于 2010-4-13 16:39:49 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-4-13 21:54:25 | 显示全部楼层
mark

出0入264汤圆

发表于 2010-4-18 19:05:51 | 显示全部楼层
牛。

出0入0汤圆

发表于 2010-5-17 16:02:53 | 显示全部楼层
厉害;没有看明白。

出0入0汤圆

发表于 2010-6-5 12:49:51 | 显示全部楼层
太强大了。

出0入0汤圆

发表于 2010-6-10 22:36:14 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-6-11 00:06:49 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-11-9 20:17:12 | 显示全部楼层
看累了

出0入0汤圆

发表于 2010-11-24 23:49:13 | 显示全部楼层
MARK

出0入0汤圆

发表于 2010-12-7 16:04:48 | 显示全部楼层
经典的风范.

出0入0汤圆

发表于 2010-12-30 17:29:15 | 显示全部楼层
经典

出0入0汤圆

发表于 2011-2-21 11:21:35 | 显示全部楼层
mark

出0入0汤圆

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

本版积分规则

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

GMT+8, 2024-5-1 11:53

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

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