qingyin2009 发表于 2024-4-10 10:32:31

有什么办法修改JlinkArm.dll中的连接速度为固定值

最近调试一款芯片,供应商提供了烧写外部Flash的工具,但是外部Flash太大了,Jlink速度被固定成1000k,太慢了。
这个软件调用了JlinkArm.dll,也提供了JlinkScript接口,但是它使用的是V5.10版本,这个版本不带中间过程回调脚本功能。所以没办法修改;
所以想通过修改dll来修改Jlink速度;

也尝试了使用IDA和ollydbg,这个不太会用,所以向论坛请教下

Himem 发表于 2024-4-10 10:40:14

整包发上来看看

qingyin2009 发表于 2024-4-10 10:45:43

Himem 发表于 2024-4-10 10:40
整包发上来看看
(引用自2楼)

公司的东西发不出去,赛普拉斯的片子,他们自己写的一个工具,感觉是连接后,自己设置了一次JTAG_Speed.

SUPER_CRJ 发表于 2024-4-10 10:46:19

1m确实慢了。但是改dll不好找吧。改他的软件?

jingwaner 发表于 2024-4-10 13:14:13

jlink直接烧FLASH,还是中间还有MCU工作?后者更可能是MCU的下载算法就固定死了传输速度,前者直接用jlink的软件不就可以了

qingyin2009 发表于 2024-4-10 13:36:51

jingwaner 发表于 2024-4-10 13:14
jlink直接烧FLASH,还是中间还有MCU工作?后者更可能是MCU的下载算法就固定死了传输速度,前者直接用jlink ...
(引用自5楼)

是芯片供应商写的exe,调用了他们自己的dll算法进行初始化,然后调用jlinkarm.dll进行下载。
这个应该是可以改的,因为我尝试使用7.88e版本的jlinkarm.dll是可以用的,而且在jlinkscrip回调函数可以修改速度,但是7.88e的因为dll函数跟5.10有不同,所以初始化会存在问题;

Himem 发表于 2024-4-10 13:45:17

qingyin2009 发表于 2024-4-10 10:45
公司的东西发不出去,赛普拉斯的片子,他们自己写的一个工具,感觉是连接后,自己设置了一次JTAG_Speed....
(引用自3楼)

那你在那几个set speed的api上下个断点,堆栈截个图

qingyin2009 发表于 2024-4-10 14:18:32

Himem 发表于 2024-4-10 13:45
那你在那几个set speed的api上下个断点,堆栈截个图
(引用自7楼)

使用OD跑不起来,ollydbg32也跑不起来,后面能跑起来了截个图给你们。
单独是可以跑的

Himem 发表于 2024-4-10 14:19:46

qingyin2009 发表于 2024-4-10 14:18
使用OD跑不起来,ollydbg32也跑不起来,后面能跑起来了截个图给你们。
单独是可以跑的 ...
(引用自8楼)

process attach

qingyin2009 发表于 2024-4-10 18:26:26

Himem 发表于 2024-4-10 14:19
process attach
(引用自9楼)

跑起来就不会设置速度了,就连接的瞬间会设置

Himem 发表于 2024-4-10 18:34:29

本帖最后由 Himem 于 2024-4-10 23:04 编辑

qingyin2009 发表于 2024-4-10 18:26
跑起来就不会设置速度了,就连接的瞬间会设置
(引用自10楼)

先不插jlink就是了,设置速度在jlink上线后

qingyin2009 发表于 2024-4-12 13:59:07

Himem 发表于 2024-4-10 18:34
先不插jlink就是了,设置速度在jlink上线后
(引用自11楼)

准备再写个dll封装下,这样应该就可以了吧

qingyin2009 发表于 2024-4-22 13:57:38

Himem 发表于 2024-4-10 18:34
先不插jlink就是了,设置速度在jlink上线后
(引用自11楼)

搞定了,使用dnspy工具反汇编了,这工具简直太强大了
页: [1]
查看完整版本: 有什么办法修改JlinkArm.dll中的连接速度为固定值