使用 avrdude 对闪存的引导加载程序部分进行编程很慢

Posted

技术标签:

【中文标题】使用 avrdude 对闪存的引导加载程序部分进行编程很慢【英文标题】:Programming bootloader section of flash with avrdude is slow 【发布时间】:2013-05-18 00:55:28 【问题描述】:

在 ATmega 8 位处理器(特别是 ATmega128)中对闪存的引导加载程序部分进行编程时,AVRdude 相当慢。

我只想写内存的引导加载程序部分,它位于闪存的高位地址中。因此,AVRdude 想要写入整个闪存(128K),而不是仅仅跳转到内存的引导加载程序部分并只写入引导加载程序(比如 3K)。

有什么方法可以加快编程过程(即跳转到内存中的那个偏移量并只写那个部分),还是我被一个缓慢的编程过程卡住了?

编辑:我相信我使用的程序员导致了这个问题。当我使用不同的(更好的)编程器时,avrdude 只是跳转到闪存中的偏移量来写入引导加载程序。

【问题讨论】:

【参考方案1】:

我刚遇到和你一样的问题。显然这是avrdude 的一个功能,我发现绝对没有办法让它工作。

解决方案是使用名为jtagice.exe 的命令行工具。它带有 Avr Studio,但也许你可以在互联网上找到它?对于 8Kb 引导加载程序,验证需要大约 10 秒。

【讨论】:

我相信我使用的程序员导致了这个问题。当我使用不同的(更好的)程序员时,avrdude 只是跳转到闪存中的偏移量来编写引导加载程序。

以上是关于使用 avrdude 对闪存的引导加载程序部分进行编程很慢的主要内容,如果未能解决你的问题,请参考以下文章

使用 IAR EWARM 手动将 .data 部分从闪存复制到 ram

通过应用程序跳转到 STM32 中的引导加载程序,即在引导模式下从用户闪存使用引导 0 和引导 1 引脚

如何在 STM32 微控制器上的两个程序之间共享单段闪存

STM32F030F4P6 仅在从闪存启动时运行中断处理程序。从引导加载程序启动时重置

在 Nucleo-F446RE 上通过 CANBUS 进行引导加载程序访问

使用 AVRDUDE 通过 CAN 对 Atmel 芯片 (AT90CAN128) 进行编程