主题中讨论的其他部分:UNIFLAASH
工具/软件:Code Composer Studio
芯片是F28M35H52C1。 JTAG仿真器是德州仪器(TI)的XDS100v3 USB调试探头,
我曾使用UniFlash为F28M35的Cortex_M3内核一次刻录多个Flash图像(具有离散负载地址的.bin文件)。 但没有成功。 我忘记了弹出错误消息上的确切内容(可能只是告诉我写入多个图像失败)。
然后,我尝试CCS调试Cortex_M3内核。 但JTAG仿真器无法再连接到它,并报告了以下错误:
连接到目标时出错:
(错误-1170 @ 0x0)
无法访问DAP。 重置设备,然后重试此操作。 如果错误仍然存在,请确认配置,关闭电路板电源后重启,和/或尝试更可靠的JTAG设置(例如,Lower TCLK)。
(仿真软件包6.0 .628.1)
为了区分问题,我使用相同的仿真器通过CCS为新F28M35刻录映像,该过程成功。
我继续在新型F28M35上进行测试...
1.关闭CCS。
2.由UniFlash连接
3.单击左侧菜单“内存”-> Cortex_m3/0和“读取目标设备”。 在初始化和配置调试器后,“加载循环”图标会持续运行很长时间。 有时,它似乎永远在运行,有时在等待很长时间后,它会在内存浏览器中显示数据。 不管怎样,它始终在控制台上报告错误:
[ERROR] Cortex_M3_0:停止目标CPU时出错。(错误- 1266 @0x0)设备处于重置状态。将设备从重置状态中取出,然后重试此操作。[仿真软件包6.0。628.3 ]
对于C28内核,它报告了类似错误:设备处于重置状态。
但实际上没有硬件重置。 使用CCS调试或加载映像时,不会出现此类“保留在重置中”错误。
我观察到,通过CCS,我在Cortex_M3内核上编写了从0x0020 0000开始的0xFFFFFFFF。 但是,在执行上述过程从UniFlash读取此类内存后,所有数据都设置为0x0万。 当我从CCS再次读取这些内存时,它实际上是全0。
是否是因为"设备处于重置状态",并将所有重置为0?
参考芯片的数据表
"用户在擦除闪存期间不应使用全部零作为密码或重置设备。 在擦除例程期间重置设备可能会导致密码为零或未知。 如果在密码位置全部为零时重置设备,则无法通过密码匹配流解锁设备。 使用全为零的密码将严重限制用户调试安全代码或重新编程闪存的能力。"
第一个芯片无法通过JTAG仿真器连接的原因是,当UniFlash执行擦除作业时,芯片被意外重置了吗? 如果是,什么会导致芯片保持复位?
希望看到您的意见。
提前感谢。




