This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] TMS320F28069:通过 USB 擦除闪存

Guru**** 2589245 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/787649/tms320f28069-erase-flash-through-usb

器件型号:TMS320F28069

您好!

我想使用通过 USB 串行 CDC 传输的命令擦除某些扇区 Piccolo 的闪存。

我设法通过 UART 擦除扇区、但使用 USB 时、我怀疑库会丢失、因为它位于闪存中。

因此、我尝试使用以下代码将 usblib 放入 RAM 中:

usblib             :load = FLASHF,
                           运行= RAML7_L8、
                           Load_start (_RamUSBLoadStart)、
                           Load_End (_RamUSBLoadEnd)、
                           RUN_START (_RamUSBRunStart)、
                           load_size (_RamUSBLoadSize)、
                           PAGE = 0
   {
     "usblib.lib"(.text)
   }

并在 RAM 中进行 memcopy。
但它似乎不起作用。 这不是编译错误、但在执行擦除命令后无法进行通信、擦除时间似乎"快"。

我是否错过了什么?
有人试图这样做吗?

此致、
Marc

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尊敬的 Marc:

    您只需将 USB 库本身放入 RAM 中。 因此、您只需将 USB 库函数放入 RAM 中。 但是、对 USBlib 进行函数调用的应用程序不在 RAM 中。

    我建议创建一个函数来执行所有通信和闪存擦除等操作 然后将该函数放入 RAM 并从 RAM 执行。

    SAL