搜索
bottom↓
12
返回列表 发新帖
楼主: XIVN1987

Python+JLinkARM.dll实现JLINK编程器,原创首发!!

  [复制链接]

出0入25汤圆

 楼主| 发表于 2017-11-27 13:55:06 | 显示全部楼层
阿豪博士 发表于 2017-11-27 13:45
楼主,貌似找不到 JLINK.DLL 的头文件啊!

!!


JLinkARM.dll的头文件?你是指C、C++里面用的.h文件吗?这个我也没见过,,

基于JLinkARM.dll的二次开发本身不是免费开放的,,需要付费才能拿到SDK,,

出0入0汤圆

发表于 2017-11-27 14:00:00 | 显示全部楼层
XIVN1987 发表于 2017-11-27 13:55
JLinkARM.dll的头文件?你是指C、C++里面用的.h文件吗?这个我也没见过,,

基于JLinkARM.dll的二次开 ...

嗯!

这就明确了!

难道只看到了一个DLL 并看不到哪个关于DLL的头文件呢!

有些函数的原型 也不知道啊?

出0入0汤圆

发表于 2017-11-27 14:08:00 | 显示全部楼层
OK!

那么函数原型你是怎么获取到的啊?

出0入25汤圆

 楼主| 发表于 2017-11-27 14:18:57 | 显示全部楼层
阿豪博士 发表于 2017-11-27 14:08
OK!

那么函数原型你是怎么获取到的啊?


函数原型我是在Google上搜"jlink python"搜到的,,不过那个原型对你没用,因为python里面的原型都没参数类型,你看到也没用。。

本坛上有个大神搞出来一份jlink的C# API,你可以去看下,那个很详细:c#的 JLINK API,自己用的

出0入0汤圆

发表于 2017-11-27 14:20:47 | 显示全部楼层
XIVN1987 发表于 2017-11-27 14:18
函数原型我是在Google上搜"jlink python"搜到的,,不过那个原型对你没用,因为python里面的原型都没参 ...

OK!
THANKYOU!

出0入0汤圆

发表于 2017-11-27 17:47:49 来自手机 | 显示全部楼层
谢谢楼主

出10入95汤圆

发表于 2017-11-29 23:28:06 来自手机 | 显示全部楼层
牛!……………………

出0入0汤圆

发表于 2017-11-29 23:45:18 | 显示全部楼层
正在看Python

出0入8汤圆

发表于 2018-1-8 13:33:19 | 显示全部楼层
用你这个烧写程序比  用JFLASH 慢多少?比如100k的bin文件,要刷多久才行

出0入25汤圆

 楼主| 发表于 2018-1-8 14:47:34 | 显示全部楼层
justdomyself 发表于 2018-1-8 13:33
用你这个烧写程序比  用JFLASH 慢多少?比如100k的bin文件,要刷多久才行


很慢,,用JFLash吧,,这个只是一个原理演示,不足以用在产品上

想提升速度就改成JFlash那样,用C写Flash操作函数(擦除、写入),用Python通过JLink把这段儿代码注入单片机RAM中,然后传输要烧写的代码、控制单片机里的Flash操作函数执行擦写操作

Keil、JFlalsh、IAR都是这么干的,,
而且最新版本的JFlash、IAR都支持Keil的算法文件(也就是.FLM文件,,这个文件就是要注入单片机RAM里面的Flash操作代码),,你如果也直接用Keil的算法文件的话,,就省去了自己写算法文件的麻烦

具体细节你可以参考下pyOCD,它就是用Python实现的编程软件,,而且用的烧写算法好像也和Keil的兼容
具体算法程序怎么写,可以参考FlashAlgo


最后,如果你坚持用Python通过JLink直接操作单片机寄存器的方法做编程器的话,,那一定要选速度快的JLink,千万别用只有4MHz的JLINK-OB,,烧300K的代码要2、3分钟

出0入0汤圆

发表于 2018-1-8 15:11:46 | 显示全部楼层
先收藏,后面在学习下

出0入8汤圆

发表于 2018-1-13 14:35:52 | 显示全部楼层
程序刷好给芯片复位让程序运行起来是哪个api

出0入8汤圆

发表于 2018-1-13 14:37:17 | 显示全部楼层

我的vs版本的也好了

本帖子中包含更多资源

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

x

出0入25汤圆

 楼主| 发表于 2018-1-13 15:06:55 来自手机 | 显示全部楼层
justdomyself 发表于 2018-1-13 14:37
我的vs版本的也好了

恭喜恭喜,C#开发的吗?

出0入8汤圆

发表于 2018-1-13 16:32:52 | 显示全部楼层
XIVN1987 发表于 2018-1-13 15:06
恭喜恭喜,C#开发的吗?

C++,1秒1kb的样子

出0入8汤圆

发表于 2018-1-13 16:41:30 | 显示全部楼层

要是知道IAR .out 或者keil .axf文件的数据结构就好了 ,就可以做成ucProbe一样 把 程序中变量读取出来,

自己画曲线,写数据库,想怎么玩就怎么玩

出0入0汤圆

发表于 2018-2-2 18:30:45 | 显示全部楼层
justdomyself 发表于 2018-1-13 16:41
要是知道IAR .out 或者keil .axf文件的数据结构就好了 ,就可以做成ucProbe一样 把 程序中变量读取出来, ...

读map文件,可以实现

出0入8汤圆

发表于 2018-2-3 10:44:58 | 显示全部楼层
dreambox 发表于 2018-2-2 18:30
读map文件,可以实现

搜里面的字符串,找后面的地址,感觉好麻烦。

出760入10汤圆

发表于 2018-2-5 15:52:07 | 显示全部楼层
本帖最后由 bhwyg 于 2018-2-5 15:57 编辑

请教楼主,我是用LabVIEW调用JLinkARM.dll的,现在可以读写内存了,但是第一次总是弹出JLink中芯片选择的对话,如何在程序程序中选择呢?在您的程序中除.map 文件,未发现与芯片选择有关的代码。请指点。

本帖子中包含更多资源

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

x

出0入25汤圆

 楼主| 发表于 2018-2-5 17:22:13 来自手机 | 显示全部楼层
本帖最后由 XIVN1987 于 2018-2-5 23:14 编辑
bhwyg 发表于 2018-2-5 15:52
请教楼主,我是用LabVIEW调用JLinkARM.dll的,现在可以读写内存了,但是第一次总是弹出JLink中芯片选择的对 ...


下面这个帖子37楼:
https://www.amobbs.com/thread-5685339-1-1.html?_dsign=1a2505fe

出760入10汤圆

发表于 2018-2-6 08:38:00 | 显示全部楼层
XIVN1987 发表于 2018-2-5 17:22
下面这个帖子37楼:
https://www.amobbs.com/thread-5685339-1-1.html?_dsign=1a2505fe

膜拜一下牛人,按您的指点已经成功了。

出760入10汤圆

发表于 2018-2-6 14:01:16 | 显示全部楼层
本帖最后由 bhwyg 于 2018-2-6 14:11 编辑

再次请教,看下图部分代码,烧写程序时是先擦除Page,再写Page,而擦除和写Page的代码都是自己编写的(实质上还是32bit写操作的),有些疑问:
1.为什么要分page操作,将所有内容按32bit挨个写入不行吗?
2.写之前为什么要擦除,擦除也是写操作啊?
3.如何保证写成功,是读出来核对一遍吗?
4.动态库中没找到直接的烧写函数(文件名作为输入参数就可以完成烧写步骤)?
5.看代码,还是需要解析.hex文件的,是这样吗?

出0入25汤圆

 楼主| 发表于 2018-2-6 14:53:18 | 显示全部楼层
bhwyg 发表于 2018-2-6 14:01
再次请教,看下图部分代码,烧写程序时是先擦除Page,再写Page,而擦除和写Page的代码都是自己编写的(实质 ...

1.为什么要分page操作,将所有内容按32bit挨个写入不行吗?
应该也可以,我是按照STM32的C语言例程写的,它的例程是按页写的

2.写之前为什么要擦除,擦除也是写操作啊?
Flash写之前必须擦除,因为Flash的写操作只能把1改成0,不能把0改成1,,擦除操作用来把Flash全变成0xFF

3.如何保证写成功,是读出来核对一遍吗?
可以这样,或者全都出来计算个CRC,和电脑传过来的CRC比较下

4.动态库中没找到直接的烧写函数(文件名作为输入参数就可以完成烧写步骤)?
没有这种函数

5.看代码,还是需要解析.hex文件的,是这样吗?
你可以让Keil生成.bin文件,,这样就可以直接写,不用解析了

出760入10汤圆

发表于 2018-2-10 13:16:34 | 显示全部楼层
请教楼主,打开烧写文件时有没有计算文件的CRC。
用J-Flash打开 .hex 文件会有个CRC结果,试了几种方法都没计算出这个结果,不知道J-Flash是怎么计算的
- Data file opened successfully (1 bytes, 1 range, CRC of data = 0xEE0E612C)

出760入10汤圆

发表于 2018-2-10 13:17:52 | 显示全部楼层
:020000040800F2
:0100000002fd

hex 文件内容如上所示,J-FLASH计算出的CRC=0xEE0E612C

出0入25汤圆

 楼主| 发表于 2018-2-10 13:38:12 | 显示全部楼层
bhwyg 发表于 2018-2-10 13:16
请教楼主,打开烧写文件时有没有计算文件的CRC。
用J-Flash打开 .hex 文件会有个CRC结果,试了几种方法都没 ...


没有计算CRC,,Intel Hex文件格式里没有CRC吧,,

出0入0汤圆

发表于 2018-2-11 16:43:21 | 显示全部楼层
honami520 发表于 2017-3-11 16:52
这个软件有点意义啊。如果能找到linux下面的jlink这个文件。那就可以实现在linux板子上面对STM32在线更新了 ...

Linux 下有 OpenOCD

出0入0汤圆

发表于 2018-2-11 16:44:31 | 显示全部楼层
不错哦,有空试试。

出0入0汤圆

发表于 2018-2-12 13:11:39 | 显示全部楼层
请问 python 打包exe用的是什么工具 谢谢

出0入25汤圆

 楼主| 发表于 2018-2-12 14:19:12 | 显示全部楼层
hongfadg 发表于 2018-2-12 13:11
请问 python 打包exe用的是什么工具 谢谢


PyInstaller

出0入0汤圆

发表于 2018-2-12 15:31:28 | 显示全部楼层
如果是单纯的JTAG/SWD访存操作,可以考虑用FT232H/2232H/4232H系列芯片直接怼,USB HS的,一点都不怂。

JLink的附加值在处理器相关的操作。

出0入25汤圆

 楼主| 发表于 2018-2-12 16:33:09 | 显示全部楼层
dr2001 发表于 2018-2-12 15:31
如果是单纯的JTAG/SWD访存操作,可以考虑用FT232H/2232H/4232H系列芯片直接怼,USB HS的,一点都不怂。

JL ...


看了你说的那些芯片,,官方资料页上没说支持SWD

本帖子中包含更多资源

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

x

出0入0汤圆

发表于 2018-2-13 08:50:47 | 显示全部楼层
justdomyself 发表于 2018-1-13 16:41
要是知道IAR .out 或者keil .axf文件的数据结构就好了 ,就可以做成ucProbe一样 把 程序中变量读取出来, ...

顶这个。这要是搞成了,就跟STM studio 一样,读变量,画曲线,是个超级深度记忆示波器呀。楼主有什么见解?

出0入0汤圆

发表于 2018-2-13 12:01:41 | 显示全部楼层
XIVN1987 发表于 2018-2-12 16:33
看了你说的那些芯片,,官方资料页上没说支持SWD

用MPSSE自己做时序。

出0入0汤圆

发表于 2018-4-12 19:26:32 | 显示全部楼层
“最后,再强调一句Python通过调用JLinkARM.dll,能够实现对单片机任意内存、寄存器的读写,所以通过这种方式能够实现对Cortex-M单片机任意外设的控制,,比如通过写DAC将STM32变成一个信号发生器、通过读ADC将STM32变成一个万用表或示波器,通过读写SPI相当于把STM32变成了一个USB转SPI,这样就可以通过编写一些脚本将STM32开发板变成一个万能仪表,,想想还有点儿小激动啊” 这种操作都需要硬件JLINK吧?那做什么仪表也没什么还要JLINK也是很麻烦啊。

出0入0汤圆

发表于 2018-4-12 21:35:12 | 显示全部楼层
这个比较厉害,要顶一下。

出0入0汤圆

发表于 2018-4-13 13:49:03 | 显示全部楼层
感谢楼主分享,好资料。

出0入17汤圆

发表于 2018-4-13 13:54:48 | 显示全部楼层
相当的风骚~
楼主厉害。

出0入0汤圆

发表于 2018-4-13 15:20:57 | 显示全部楼层
python算是动态语言吧,RAM就不好掌控了,会不会有栈溢出的情况,这方面怎么处理呢?

出0入0汤圆

发表于 2018-4-13 18:28:34 | 显示全部楼层
不错,挺有意思

出0入4汤圆

发表于 2018-4-21 18:27:43 | 显示全部楼层
好思路,感谢楼主的奉献!

出0入0汤圆

发表于 2018-4-25 18:13:42 | 显示全部楼层
厉害了,我的哥

出0入0汤圆

发表于 2018-4-26 08:43:59 来自手机 | 显示全部楼层
mark一下,好好研究一下

出0入25汤圆

 楼主| 发表于 2018-4-27 10:04:06 | 显示全部楼层
本帖最后由 XIVN1987 于 2018-4-27 10:06 编辑
justdomyself 发表于 2018-2-3 10:44
搜里面的字符串,找后面的地址,感觉好麻烦。



这种活儿用正则表达式很合适,正则表达式是文本处理的利器,,建议了解下

本帖子中包含更多资源

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

x

出0入0汤圆

发表于 2018-4-27 10:17:18 | 显示全部楼层
厉害了,学习pythom

出0入17汤圆

发表于 2018-5-17 12:42:59 | 显示全部楼层
XIVN1987 发表于 2018-1-8 14:47
很慢,,用JFLash吧,,这个只是一个原理演示,不足以用在产品上

想提升速度就改成JFlash那样,用C写Fl ...

1. 很感谢你在论坛里普及和推广py,看了你其它的帖子,也受到点启发。
2. 昨天用你的程序,修改一下,可以直接下载到flash了。但是很慢。pyOCD的代码看不明白,所以先问问你思路。你提到的

“想提升速度就改成JFlash那样,用C写Flash操作函数(擦除、写入),用Python通过JLink把这段儿代码注入单片机RAM中,然后传输要烧写的代码、控制单片机里的Flash操作函数执行擦写操作”
--------------------------------------------------
这里的“然后传输要烧写的代码”,传输要烧写的代码暂记作App。请问App是不是也是用JLINKARM_WriteMem写到内存中,然后内存中原有的“这段儿代码”相当于Boot,将App写到Flash?

出0入25汤圆

 楼主| 发表于 2018-5-17 15:17:26 | 显示全部楼层
think_a_second 发表于 2018-5-17 12:42
1. 很感谢你在论坛里普及和推广py,看了你其它的帖子,也受到点启发。
2. 昨天用你的程序,修改一下,可 ...


对,,大概就是这个意思

你知道Keil里面给单片机下载程序的时候要指定一个.FLM格式的烧写算法文件,,这个文件其实就是一个在RAM里面执行的单片机程序,它的作用就是把J-Link传过来的数据烧写到单片机的Flash里面去

出0入0汤圆

发表于 2018-6-8 09:32:01 | 显示全部楼层
感谢楼主的分享,虽然没有用过,感觉很高大上的样子呢

出0入0汤圆

发表于 2018-7-5 11:35:35 | 显示全部楼层
JLNK+PyTHON+JLINKDLL

出0入0汤圆

发表于 2018-7-5 13:38:03 | 显示全部楼层
好腻害的样子

出0入0汤圆

发表于 2019-4-24 21:53:20 | 显示全部楼层
mint 发表于 2017-3-11 18:19
搜了下,果然有类似的,叫 uVision Socket Interface:http://www.keil.com/appnotes/docs/apnt_198.asp ...

这个是啥玩意

出0入0汤圆

发表于 2019-4-24 23:01:53 | 显示全部楼层
想问下,怎样通过jlink的命令行直接读写单片机内存的数据。比如我要写一个寄存器数据怎么做

出0入25汤圆

 楼主| 发表于 2019-4-25 09:25:24 | 显示全部楼层
霸气侧漏 发表于 2019-4-24 23:01
想问下,怎样通过jlink的命令行直接读写单片机内存的数据。比如我要写一个寄存器数据怎么做 ...


本帖子中包含更多资源

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

x

出0入0汤圆

发表于 2019-4-25 10:01:07 | 显示全部楼层

能不能给个实例,操作一下寄存器看看

出0入25汤圆

 楼主| 发表于 2019-4-25 10:11:55 | 显示全部楼层
霸气侧漏 发表于 2019-4-25 10:01
能不能给个实例,操作一下寄存器看看

本帖子中包含更多资源

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

x

出0入0汤圆

发表于 2019-4-25 10:16:48 | 显示全部楼层
mem32  0xE000ED08 ,  1   这个是把0xE000ED08这个地址数值设置为1

w4  0xE000ED08 , 0x20000000  这个是把0xE000ED08这个地址数值设置为  0x20000000

出0入25汤圆

 楼主| 发表于 2019-4-25 10:21:03 | 显示全部楼层
霸气侧漏 发表于 2019-4-25 10:16
mem32  0xE000ED08 ,  1   这个是把0xE000ED08这个地址数值设置为1

w4  0xE000ED08 , 0x20000000  这个是 ...

mem32是读,,w4是写

出0入0汤圆

发表于 2019-4-25 21:47:26 | 显示全部楼层
楼主,这个附件是金沙滩逻辑分析仪,抓取的一个通过ulink的swd接口来实现对mcu解锁的数据过程,我想用jlink来实现,不知道怎么做比较好。

本帖子中包含更多资源

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

x

出0入0汤圆

发表于 2019-4-25 21:48:34 | 显示全部楼层
我想用jlink实现上面的通信过程,全部用jlink的命令行来做,很麻烦,想用Python来实现这个过程,要怎么做比较好

出0入25汤圆

 楼主| 发表于 2019-4-26 09:22:23 | 显示全部楼层
霸气侧漏 发表于 2019-4-25 21:48
我想用jlink实现上面的通信过程,全部用jlink的命令行来做,很麻烦,想用Python来实现这个过程,要怎么做比 ...


如果是通过读写特定寄存器来实现解锁的话,,那挺简单,,就是通过ctypes调用JLinkARM.dll中的JLINKARM_WriteU32、JLINKARM_ReadMem这些函数读写单片机的特定地址就行了

具体调用方法你可以参考下我之前发的几个JLink上位机的代码,,

pylink 这个项目里有python通过JLinkARM.dll控制JLink的更完善的代码,不过也更加复杂,,感兴趣的话可以参考下

出0入0汤圆

发表于 2019-4-26 09:25:03 | 显示全部楼层
XIVN1987 发表于 2019-4-26 09:22
如果是通过读写特定寄存器来实现解锁的话,,那挺简单,,就是通过ctypes调用JLinkARM.dll中的JLINKARM_ ...

Python   还没有用过,有没有快速上手的视频教程,已经安装Python 2.7.12   有多年的C编程经验。推荐个教程呗

出0入25汤圆

 楼主| 发表于 2019-4-26 09:50:59 | 显示全部楼层
霸气侧漏 发表于 2019-4-26 09:25
Python   还没有用过,有没有快速上手的视频教程,已经安装Python 2.7.12   有多年的C编程经验。推荐个教 ...


不建议看视频,,太慢,,

可以找本入门书看看,也不用全看完,,就看看数据类型(int、float、str、list、tuple、dict)、控制流程(if、for、try)、函数、类、模块就行了,,然后就learn by using,边做边学

出0入0汤圆

发表于 2019-4-26 10:12:50 | 显示全部楼层
XIVN1987 发表于 2019-4-26 09:50
不建议看视频,,太慢,,

可以找本入门书看看,也不用全看完,,就看看数据类型(int、float、str、li ...

推荐一本书给我看看呗

出0入25汤圆

 楼主| 发表于 2019-4-26 10:22:00 | 显示全部楼层
霸气侧漏 发表于 2019-4-26 10:12
推荐一本书给我看看呗



廖雪峰这个网上评价还不错,
https://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000/0013747381369301852037f35874be2b85aa318aad57bda000

出0入0汤圆

发表于 2019-4-26 11:40:57 | 显示全部楼层
XIVN1987 发表于 2019-4-26 10:22
廖雪峰这个网上评价还不错,
https://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103f ...

好的,谢谢我研究下

出0入0汤圆

发表于 2019-7-8 14:30:03 | 显示全部楼层
看起来很厉害的样子,能出点python和嵌入式具体应用的帖子吗

出0入0汤圆

发表于 2019-7-19 22:38:11 | 显示全部楼层
写保护 怎么弄?

出0入0汤圆

发表于 2019-7-19 23:00:03 来自手机 | 显示全部楼层
感谢楼主分享

出0入0汤圆

发表于 2019-7-20 07:57:19 | 显示全部楼层
謝謝分享,下載學習。

出0入0汤圆

发表于 2019-7-20 08:31:27 | 显示全部楼层
学习,学习!!!

出25入0汤圆

发表于 2019-7-20 08:53:11 | 显示全部楼层
有人用这个做边界扫描吗?

出0入25汤圆

 楼主| 发表于 2019-7-20 10:00:12 | 显示全部楼层
本帖最后由 XIVN1987 于 2019-7-20 10:06 编辑



写保护也是通过读写单片机的寄存器实现的吧,,那你可以参照下面的代码这样通过jlink读写单片机的寄存器来添加实现

本帖子中包含更多资源

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

x

出0入0汤圆

发表于 2019-7-20 10:02:50 | 显示全部楼层
XIVN1987 发表于 2019-7-20 10:00
写保护也是通过读写单片机的寄存器实现的吧,,那你可以参照下面的代码这样通过jlink读写单片机的寄存器 ...

我 完全看不懂 没用过py,另外你能不能把py搞成exe  好像有软件可以打包,这样也需要py环境

出0入25汤圆

 楼主| 发表于 2019-7-20 10:11:55 | 显示全部楼层
shen-robot 发表于 2019-7-20 10:02
我 完全看不懂 没用过py,另外你能不能把py搞成exe  好像有软件可以打包,这样也需要py环境 ...


一楼就有打包成的.exe文件,,
另外,这个实现是慢速版的,烧写速度非常慢,,快速版的在这里:分享JLINK编程器,,快速版

这两个软件更多的是用来展示如何通过python控制调试器实现对单片机的控制(寄存器的读写、甚至程序烧写),,需要用户自己有定制能力才能用的好,,

出0入0汤圆

发表于 2019-7-20 18:50:41 | 显示全部楼层
这个环境没弄过,有空研究一下!

出0入4汤圆

发表于 2019-8-16 14:02:02 | 显示全部楼层
感谢分享,用这个都不需要额外的BootLoader程序了吧

出0入0汤圆

发表于 2020-9-24 10:47:52 | 显示全部楼层
cool,收下了,回头自己做个工具

出0入0汤圆

发表于 2020-9-24 12:20:51 来自手机 | 显示全部楼层
好犀利的样子,关注。

出0入0汤圆

发表于 2020-10-21 08:52:56 | 显示全部楼层
非常不错噢,下载来测试测试

出0入25汤圆

发表于 2020-10-21 09:45:53 来自手机 | 显示全部楼层
安装keil mdk啊

出0入0汤圆

发表于 2020-11-1 07:02:17 来自手机 | 显示全部楼层
labview高大上啊

出0入0汤圆

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

本版积分规则

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

GMT+8, 2024-4-25 19:33

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

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