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.

[参考译文] TMS320F280036-Q1:代码可以在同一组的另一个区域执行闪存编程吗

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1382492/tms320f280036-q1-can-the-code-perform-flash-programming-to-another-area-of-the-same-bank

器件型号:TMS320F280036-Q1

工具与软件:

我们正在开发 DFU 相关功能、在此过程中我们需要使用闪存程序功能。 闪存程序函数有几个问题:
1.一些 MCU 会在执行闪存程序时挂起 CPU (我想是因为写入闪存操作占用了读取代码指令的总线)、与 F280036是否使用相同的逻辑?
2.如果引导加载程序代码位于 bank0的扇区1~10中、并通过从闪存获取指令来运行。 是否有可能为 bank0的扇区12闪存程序提供写入标志?
3.我注意到一些 C2000系列芯片只有一个存储体、是否可以通过从闪存扇区中获取指令以及不在同一扇区中的闪存程序目标地址来运行引导加载程序代码?

此致

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Unknown 说:
    1. 某些 MCU 会在执行闪存程序时挂起 CPU (我想是因为写入闪存操作占用了用于读取代码指令的总线)、与 F280036的逻辑是一样的?[/QUOT]

    C2000 CPU 内核(C28x)控制闪存操作/调用闪存 API、因此 CPU 不会暂停、但在执行闪存 API 代码时会产生一些开销。  闪存 API 可中断、唯一的限制是代码本身不能从正在擦除/编程的同一个存储体运行。  CLA 可以继续并行运行、因为它独立于 C28x。

    Unknown 说:
    2. 如果引导加载程序代码位于 bank0的扇区1~10中、并通过从闪存获取指令来运行。 是否有可能为 bank0的扇区12闪存程序提供写入标志?

    与上述内容相关、我们无法从正在进行编程的同一个库中运行代码。  为了对组0中的任何扇区进行编程、闪存 API 将需要重定位到闪存或 RAM 的另一个组。

    Unknown 说:
    3. 我注意到一些 C2000系列芯片只有一个存储体、是否可以通过从闪存扇区和闪存程序的目标地址(不在同一扇区)中获取指令来运行引导加载程序代码?[/QUOT]

    是的、对于此器件来说、由于有多个存储体、只要闪存 API 不在编程存储体中、API 就可以耗尽闪存。

    下面是指向闪存 API 常见问题解答的链接、该链接可能也对 https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/951668/faq-faq-on-flash-api-usage-for-c2000-devices 有所帮助 

    此致!

    Matthew

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

    我明白了。 感谢您的解释。