主题中讨论的其他器件:C2000WARE
我正在使用 F28379D 开发定制板的软件、并且在使其在独立模式下正确启动时遇到问题。 当使用调试器进行编程并保持连接时、代码正常执行。 如果我尝试重置 CPU (Ctrl + Shift + R)、系统将在引导 ROM 中的某个位置停留。 在未连接调试器的情况下、在下电上电后也会发生同样的情况。 我正在尝试让系统始终从闪存引导。
我在 CCS 中加载了引导 ROM 符号(ROM 版本为修订版 B),发现 CPU1卡在 Parallel_GetWordData()函数中(特别是 while 循环 中 while (host_data_NOT_RDY){})。 地址0x0000 002C 处的引导状态为0x0D00 (引导 ROM 已启动、DCSM 初始化已完成、并且所有复位均已处理)。 地址0x0000 0038处的 CPU1引导模式为0x0、表示并行引导模式(这说明了它卡在那里的原因)。
我探测了两个引导引脚 GPIO72和 GPIO84、似乎找不到任何问题(两者都是高电平、表示"获取"引导模式、而不是"并行"引导模式)。 上拉电阻为5.1k、引脚均在 GPCDAT 寄存器中读作逻辑1。
Z1_BOOTCTRL 中的 BMODE 按预期设置为0x0B (闪存)。
我还查看了 BOM 符号中的 BootMode 变量、并确认它确实为0 (并行模式)。 EMUKey 变量也设置为0x00A5、这很奇怪、因为它还指示并行引导模式(我从未指定过这种模式)。 如果我使用调试器将 EMUKey 设置为0x0BA5 (引导至闪存)、0x03A5 ("Get"引导)或0xFF ("独立仿真"模式)、然后复位 CPU、系统将按预期引导至闪存并正常运行。 如果我运行 EMU_BOOT_FLASH GEL 脚本、这也会起作用、但我不知道 为什么默认 GEL 脚本不自动执行此操作(我之前在不需要执行额外步骤的情况下使用过其他 C2000器件)。 是否有一个设置我可以配置为在仿真模式下始终从闪存引导? 当然、这在下电上电后停止工作、系统再次卡住。
引导 ROM 中的 EMUBMode 变量设置为0xA796、这与系统上可用的任何 GPIO 引脚不对应(0xA7 = GPIO165、0x96 = GPIO149)。 不确定该值来自何处。
在 C2000Ware 3.04中使用"empty_driverlib_project"时、电路板上出现了相同的问题、因此我怀疑这可能与硬件相关。
有人有任何意见吗?
