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.

[FAQ] [参考译文] [FAQ] C2000 CCS闪存插件和UniFlash

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1096194/faq-c2000-ccs-flash-plugin-and-uniflash

主题中讨论的其他部件:UNIFLAASHC2000WARE

此常见问题旨在使用TI C2000闪存工具- CCS闪存插件和UniFlash。
此常见问题适用于F28M35x,F28M36x,F2837xD,F2837xS,F2807x, F2.8004万x,F2.8002万x,F2838x,F2.8003万x。

1)我们如何提高Flash工具的性能?
a)请参阅此常见问题解答: e2e.ti.com/.../faq-how-can-we-improve-the-flash-tool-performance

2)在CCS中从哪里可以访问Flash插件GUI?
A) CCS调试视图->工具->片上闪存

3)为什么我在CCS中看不到片上闪存插件?
a)创建目标配置文件时,请确保使用"目标配置"视图下拉菜单中显示的默认设备之一。
如果编辑CCS文件夹中提供的默认设备XML,则Flash插件GUI可能不会显示。
另外,请检查CCS中是否有更新,如果为以下软件包提供了更新,请进行安装:Debug Server Flash,CCS Flash Content和TI C2000器件支持。

4)在CCS闪存插件GUI中,浏览应用程序映像以编程到闪存的按钮在哪里?
A) CCS中没有单独的按钮(UniFlash有)。 您可以使用"CCS DEBUG VIEW -> Run -> Load -> Load Program"浏览文件。
如果应用程序可执行文件的内容映射到闪存,CCS将自动调用闪存插件将映像编程到闪存。

5)为什么即使RAM内容在链接程序cmd文件中已正确映射,却没有对其进行编程?
A)闪存工具仅用于完全闪存嵌入式应用。
所有已初始化的部分只能映射到基于Flash的链接程序命令文件中的闪存。 任何映射到RAM的内容都不会被加载。
如果任何代码需要从RAM执行,则必须将其映射到闪存以进行加载,并映射到RAM以执行。
在C2000Ware提供的示例中,您将注意到需要从RAM执行的所有函数(用于初始化或0-wait性能)都被分配到.TI.ramfunc部分。
应用程序中应调用memcpy()函数,以便将.ti.ramfunc内容从Flash复制到RAM。在执行分配给.ti.ramfunc部分的任何代码之前,应调用memcpy()。

6)为什么使用CCS闪存插件在闪存中加载代码后CPU不停止?
A)请确保至少有一个硬件断点可用,以便CCS闪存插件在应用程序入口点启用它。 否则,插件将无法在main()或codegstart处设置断点。

7)我可以在CCS闪存插件和/或UniFlash中选择时钟源吗?
A)您可以为F2837xD,F2837xS,F2807x,F28M35x和F28M36x器件选择时钟源。 闪存插件对所有设备使用的默认时钟源为INTOSC2。
我们强烈建议您使用闪存工具中提供的默认时钟源配置,除非确实需要,否则不要对其进行更改。
对于F2.8004万x,F2.8002万x,F2838x器件,没有用户更改时钟源的规定-插件对这些器件使用INTOSC2。

8)闪存插件和UniFlash是否保存和恢复时钟源配置?
a)默认情况下不会。 对于F2837xD,F2837xS,F2807x,F28M35x和F28M36x器件,有一个选项用于保存/恢复时钟源配置。
但是,我们强烈建议确保应用程序按预期配置时钟源;不要依赖插件来恢复保存的配置。

9)我是否可以在CCS闪存插件和/或UniFlash中配置PLL?
A)您可以为F2837xD,F2837xS,F2807x,F28M35x和F28M36x设备进行配置。 如果用户选择的配置违反规范,闪存工具将报告错误。
我们强烈建议您使用闪存工具中提供的默认PLL和时钟源配置,除非确实需要,否则不要对其进行更改。
对于F2.8004万x,F2.8002万x,F2838x设备,用户没有配置PLL -插件使用静态PLL配置的规定。

10)闪存插件和UniFlash是否保存和恢复PLL配置?
a)默认情况下不会。 对于F2837xD,F2837xS,F2807x,F28M35x和F28M36x器件,有一个选项用于保存/恢复PLL配置。
但是,我们强烈建议确保应用程序按预期配置PLL;不要依赖插件来恢复保存的配置。

11)闪存工具是否可以将应用程序加载到闪存中,即使设备已被保护?
A)如果设备已锁定,闪存工具要求用户解锁设备,以便执行闪存擦除,程序和其他操作。 用户可以在闪存插件GUI中输入密码并解锁设备。

12)我可以选择在闪存工具中加载程序时应该擦除哪些扇区吗?
A)是的,您可以取消选中默认的“整个闪存”设置,然后在“擦除设置”下选择所需的扇区。

13)如何避免擦除应用程序中未映射内容的扇区?
A)这是避免不必要的擦除周期的好主意。 您可以在“擦除设置”下选择“仅限必要扇区”选项。 闪存插件将仅擦除用户应用程序中内容映射到的扇区。

14)如何在程序加载过程中跳过擦除?
A)如果您确定闪存已被擦除,您可以通过选择闪存工具GUI中Download settings (下载设置)下的"Program One"(仅程序)选项跳过擦除。

15)如何在不执行擦除/程序操作的情况下单独进行验证?
A)您可以在闪存工具GUI中的“Download settings”(下载设置)下选择“Verify Only”(仅验证)选项。 请注意,设备应已解锁。

16)我们是否可以在不验证的情况下对闪存进行编程?
A)是,取消选择Flash工具中“Download Settings”(下载设置)下的默认启用“Verify Flash After Program”(程序后验证闪存)设置。 这将有助于缩短完成程序操作所需的时间。
但是,如果您禁用验证,我们建议在程序操作后检查校验和(在闪存工具中可用),并确保该值符合预期。

17)是否可以跳过ECC编程?
答:是的,您可以在闪存工具GUI的Download Settings (下载设置)下取消选择默认启用的“Auto ECC Generation”(自动ECC生成)选项。 但是,我们建议始终对ECC进行编程,以避免ECC (不可纠正的NMI)错误。

18)程序操作支持哪些不同的文件格式?
A) TI COFF,TI ELF,Intel Hex,Motorola S-Record,Tektronix Hex, 支持TI-TXT和二进制格式。

19)我们是否可以将编程的闪存内容作为可执行文件下载,以供以后使用?
A)是的,您可以将闪存内容导出为TI COFF或二进制文件。 在UniFlash内存浏览器视图中,您可以使用"导出"按钮下载给定地址范围的Flash内容。
在CCS内存窗口中,您可以使用“内存浏览器菜单->保存内存”选项来实现相同的功能。

20)如何从CCS或UniFlash将不同的选定地址范围下载(导出)到一个二进制文件中,供以后的程序使用?
A)作为二进制文件导出时,由于二进制文件不包含地址,因此只能选择一个地址范围。 如果您要将多个范围下载到单个文件,请选择COFF输出格式。

21)如何避免对给定应用程序映像中的几个内存范围进行编程?
a) Flash工具提供了一项称为"避让范围"的功能。 您可以在闪存工具GUI的"Range Avoidance Settings"中以升序输入所有地址范围,以逗号分隔。
闪存工具将避免对这些地址范围进行编程,即使可执行文件的内容映射到这些位置。
请注意,地址范围应该是128位对齐的。
当您知道已编程图像和尚未编程的图像之间只有几个选定的范围不同时,此功能将非常有用;您可以跳过编程地址范围,而下一个图像中的地址范围没有不同。  这有助于减少擦除/编程时间,并节省写入/擦除耐久性。

22)计算OTP范围的校验和时,"计算校验和"功能是否包括TI-OTP?
A)不能。它仅包括用户DCSM OTP范围。

23)我了解闪存插件将其代码加载到设备的RAM中以执行闪存擦除和程序操作。 闪存插件能否保持RAM内容完好无损以保留应用程序上下文?
A)在flah插件GUI的底部,您会注意到“Backup RAM during Flash programme/operations”(在闪存编程/操作期间备份RAM)单选按钮。 默认情况下禁用此功能。 您可以启用并尝试此功能。 但是,请注意
此功能不能完全保证RAM内容将被保存和恢复。 因此,在使用闪存插件之前,我们建议您使用内存窗口的"save memory'功能in CCS (UniFlash中的Export功能)导出RAM内容 ,并在使用闪存插件后根据需要加载。

24)闪存插件执行后是否保存/恢复所有设备上下文?
A)不能。Flash插件不能保证恢复设备上下文。 因此,用户必须在执行闪存插件操作后发出调试重置,并确保 应用程序根据需要配置设备。

25)为了保留调试上下文,我希望插件在连接目标时不会重置设备。 我如何才能做到这一点?
A)在CCS 10及以上版本中,闪存插件GUI提供了一个单选按钮来禁用“连接时重置”。 请注意,默认情况下启用该功能。

26)我们应该向TI发送哪些调试信息以分析闪存故障?
a)我们需要两个信息点:
(A)使用CCS闪存插件GUI底部的"启用详细输出"单选按钮启用插件的详细输出,并向我们发送故障控制台窗口输出。
(B)生成并共享调试服务器日志:您可以通过"CCS帮助菜单-> CCS支持->选择调试服务器日志->单击属性->选择启用调试服务器日志记录+选择日志文件位置->单击确定"来生成日志。

27)为什么我收到错误“Error initializing flash programming: interface returned from dll, but flash is not available on this device”(初始化闪存编程时出错:从dll返回接口,但此设备上没有闪存可用)?
a)

(A)确保为等待引导配置了引导模式引脚
(B)确保闪存操作期间电源处于规格范围内
(c)确保主板没有任何缺陷
(D)确保使用正确有效的目标配置文件
(E)检查CCS中的更新并安装任何可用的更新

28)为什么我收到错误"请确保您正在编程的存储器位置尚未编程"?
a)确保在程序运行之前擦除闪存。

29)使用CCS闪存插件在闪存中加载应用程序后,我们是否需要执行重置和重新启动?
a)是的,这是建议的方法。 闪存插件不会恢复任何设备配置(如RAM内容,PLL配置,闪存控制配置,闪存ECC寄存器配置,DCC配置或任何其他与系统或外设相关的配置)。
用户应用程序应在使用Flash插件后根据需要配置所有这些内容。 使用闪存插件将可执行文件加载到闪存中后,建议执行重置/重新启动,使设备在执行已编程的应用程序之前进入已知状态。

30)为什么我收到错误“Error Setting the GSxMSEL register for Flash operations”(为Flash操作设置GSxMSEL寄存器时出错)?
A) Flash插件使用F2837xD设备上的共享RAM来加载插件的代码。 CPU2需要共享RAM所有权以加载CPU2闪存操作的插件代码。 但是,CPU1只能提供
将共享RAM的所有权归CPU2所有。 因此,应连接CPU1以执行CPU2闪存操作。 如果CPU1未连接,GSxMSEL配置将无法将共享RAM的所有权授予CPU2。

C2000培训视频:https://training.ti.com/search-catalog/field_language/ZH-CN?keywords=C2000&start%5Bdate%5D=&end%5Bdate%5D=

C2000培训小程序码




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

    由于这是一个常见问题,我正在关闭此帖子。  

    在接下来的一周里,我将继续向此常见问题添加更多内容。