大家好、
客户 使用安全库进行自检、发现在所有 ROM 存储器上运行 PBIST 时执行时间有很大差异、这使得软件初始化时间过长。 因此、客户希望了解这方面的原因并进行一些研究。
目前客户发现、对于当前软件版本、在调用 PLL 自检函数并完成自检后、clk 不会改回 PLL1并保持在 OSC 中、因此时间更长。
但他们没有找到 引发问题的根本原因。 他们有两个问题:1. 它们会更改 主函数中的初始化代码(IO 翻转) 、该代码应该与此没有关系、但会触发问题2。 对于这个软件版本、当分步执行或者在检查 PLL1slip 时执行一次时、针对 clk 变化的操作不相同。
关于当前的 PLL 自检功能、数据表中提到如果要清除转差位、需要先禁用 PLL、但在 自检功能中 CLK 改回 PLL1后会清除转差。 基于这一点、客户在 代码"恢复 PLL 乘法器值"之后添加了38us 延迟(延迟函数在正常时基中、在此工作条件下应为~400us)、并在代码将 clk 源更改为原始时钟之前添加了38us 延迟、 那么、在 分步执行或没有仿真器的情况下都不会出现任何问题、并且预期会出现结果。 请检查问题是否由该功能引起、以及上述解决方法是否合理。
谢谢。
BRS
假设