Thread 中讨论的其他器件: controlSUITE
您好!
我对 TI TMS320F28377S 器件有一个非常奇怪的问题。 我创建了自己的引导加载程序、用于闪存编程/擦除/空白检查和验证。 引导加载程序代码通过引导 ROM 函数直接加载到 RAM。 除一种情况外、我可以成功地擦除/空白检查/编程/验证器件。 我们知道、可以使用 ECC 数据(Fapi_AutoEccGeneration 参数)或不使用 ECC 数据(Fapi_DataOnly 参数)对闪存进行同时编程。 当我使用参数 AutoEccGeneration 对器件(bank0和 bank1)进行编程时、关闭器件电源、再次为器件加电并运行验证、一切都正常-我可以成功验证所有存储器块(DCSM OTP bank0、DCSM OTP bank1、bank0扇区、bank1扇区)。 在这种情况下会出现非常奇怪的情况:
我只使用 Fapi_DataOnly 参数对 Bank0扇区(非 DCSM OTP 组0或组1)进行编程。 编程传递没有任何问题、并且组0扇区的验证也是可以的。 之后、我将器件断电、再次上电并运行整个器件的单独验证功能。 DCSM OTP Bank0验证工作正常、Bank0扇区工作正常、当我尝试验证 Bank1扇区(或 DCSM Bank1 OTP 区域)时、引导加载程序停止工作(看起来冻结或类似)。 奇怪的是、通过 CCS 和 XDS510USB 调试代码工作正常... 在相反的情况下会发生相同的情况-当我使用 Fapi_DataOnly 参数对 Bank1闪存进行编程时、Bank0验证函数会导致引导加载程序停止工作... 如前所述、当我使用 AutoEccGeneration 参数对任何组进行编程时、我可以验证该器件的任何组上的功能、而不会出现任何问题。
我不明白为什么 Fapi_DataOnly 参数会导致我的引导加载程序出现这种奇怪的行为。 如果第二个组已使用 Fapi_DataOnly 参数进行编程、有人可以帮助我验证没有使用 AutoEccGeneration 参数进行编程/或编程的组、以解决我的问题吗? 或者是否存在任何限制、并且两个组需要使用相同的编程参数进行编程?
我附加了*。map 文件和*。cmd 文件以说明哪个内存占用了我的引导加载程序。
e2e.ti.com/.../flash_5F00_programming_5F00_cpu01_5F00_v210.map.txt
e2e.ti.com/.../flash_5F00_programming_5F00_cpu1_5F00_FLASH.cmd.txt
我的引导加载程序与 V210控制套件项目资源中的 FLASH_programming_CPU1项目不一致。
感谢您的任何建议!
此致、
Tomas