使用Arduino编程模式在虚拟COM端口上上传代码



这个问题是关于通过Arduino IDE在虚拟串口上上传Arduino代码。主要问题是能够将代码上传到虚拟COM端口,而不是使用Arduino,这样我就可以将二进制代码输出并在其他应用程序中使用它。问题是,上传的过程也与Arduino上的引导加载程序有关,这就是为什么上传过程从未达到100%。建议的解决方案是要么在我的应用程序中实现一个引导加载程序,要么使用已经存在的东西。

我现在的问题是,我可以利用Arduino IDE中的不同程序员模式来绕过引导加载程序,以便上传过程可以达到100%,代码实际上可以到达虚拟COM端口?

任何帮助将是非常感激的。由于

听起来像是您的虚拟串行端口驱动程序在一些超时或缓冲区上卡住了。IDE使用特定的协议调用avrdude,以匹配加载在AVR上的Arduino引导加载程序中内置的协议。还有其他引导加载程序(实际上很多,太多了,无法提及),其中一些可能有不同的时间等,但使用它们基本上不再是Arduino。avrdude.exe -c.

如果您只是试图获得通过串行端口的转储。我已经使用了虚拟串行端口模拟器。它是非常通用的,因为它是模块化的,允许你建立你想要的。

另外,正如在其他线程中提到的,请注意串行端口上的数据是在STK500协议之上格式化的。您还在其他线程中提到,您不想使用其他工具来获取数据。然而,为了使用另一种协议,您需要更改源编译器。java并重新构建项目,以便使用新协议调用avrdude。所以你不妨用另一种工具得到它。

你可以得到原始二进制,从什么是被馈送到avrdude。一开始可能不是很明显。作为avrdude得到ELF而不是BIN。Arduino IDE包含所有avr-gcc及其工具。avr-objcopy位于。Arduinohardwaretoolsavrbin中,可以将IDE的输出转换为avrdude,到您可能想要的二进制文件。不需要限定串口流的作用域。

要手动执行此操作,您需要通过启用IDE的详细编译打印来定位IDE的临时工作目录。还可能把avr-objcopy放到路径中。然后像下面的例子一样调用它,用你的草图的文件名代替我的文件名。
C:UsersmflagaAppDataLocalTempbuild6135656488044319492.tmp>avr-objcopy -I ihex FilePlayer.cpp.hex -O binary FilePlayer.cpp.bin

您可以将avrdude.exe替换为同时调用avrdude和avr-objcopy的批处理文件以自动执行

相关内容

最新更新