Dear all,
我最近在学习clock domain,我试著把GCLK, HCLK关闭。
这两个domain分别是给CPU及SYSTEM所使用的。我查看寄存器如下,
确认已经把GCLK和HCLK关闭,但试著去计算一个x++; 的指令
却还可以执行计算?按道理CPU应该已经停止运行了才对。
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.
Dear all,
我最近在学习clock domain,我试著把GCLK, HCLK关闭。
这两个domain分别是给CPU及SYSTEM所使用的。我查看寄存器如下,
确认已经把GCLK和HCLK关闭,但试著去计算一个x++; 的指令
却还可以执行计算?按道理CPU应该已经停止运行了才对。
如果CPU被关闭,根本没法开机,想跳转到main就需要CPU执行
Hello gaoyang
谢谢你的回覆,所以我也觉得很奇怪。
我把GCLK和HCLK关掉,为何程序还可以执行?
我是藉由CdDis,CdDisSet,CdDisClr三个寄存器去确认我把它关掉了。
看来是无解呷
Shunfan,
我注意到你在我们的E2E上面问了同样的问题,Anthony给了你一些建议用来测试,不知道你有没有实验一下。
谢谢
Hello Ken,
谢谢您的回覆,事实上我知道他这个方法,但并不能解释我的疑惑。
Anthony告知,我可以藉由下面的操作,,达到关闭PWM的功能
kickerReg->KICKER0 = 0x83e70b13;
kickerReg->KICKER1 = 0x95a4f1e0;
但我认为这是属於peripheral 的clock层级,而不是在clock tree的层级
你可以观看Halcogen->help->ePWM module->etpwmStopTBCLK() 函式里面,就是这个操作。
所以我认为他是关闭PWM的clock的方法,而不是关闭VLCK4的方法。
而另一方面,除了PWM之外,也没法解释为何GCLK和HCKL关闭后,CPU仍然能工作。
谢谢您。
shunfan,
你说的确实没错,我待会有空可以做个实验测试一下能否关闭VCLK4,
至于关闭GCLK和HCLK主时钟是,系统仍然能工作,我觉得有可能是系统自动切换到内部的低频时钟来工作了,因为在功能性安全系统里面,如果系统的主时钟失效时,系统会自动切换到到后备的低频时钟,以保证系统过渡到一个安全的状态。
谢谢