Other Parts Discussed in Thread: HALCOGEN
主题中讨论的其他器件:HALCOGEN
我花了一些时间尝试弄清为什么、 除非我设置任务的"Privilee"位、否则我的 HET 的 PWM 将不起作用。 使用 HalCoGen 为带 FreeRTOS 的 LS043xx 生成的所有'scock'代码、并将'dbrive'/ halt init 放入任务中。
奇怪的是:我可以执行初始化调用,如- adcInit()、hetInit()-而不设置任务 MPU 特权位,并且,这些外设看起来是初始化的。 初始化的 I 意味着:ADC 采样工作,例如使用 RTI 0触发器,并且我在正确的时间和值上获得与输入电压匹配的 ADC 中断。 HET 会初始化、它似乎_、至少在我从外部看到的情况下、HET 输出引脚会达到初始化时设置的默认输出(例如、设置 DOUT 1)。
但是, 当涉及到来自 HET 的 PWM 时,除非在调度程序启动之前从特权任务或从 main 调用了 hetInit(),否则这不会启动。 因此,无论您是在 HET 初始化的 HalCoGen 中默认启用 PWM,还是调用 pwmStart()。 稍后 、这不起作用、PWM 不会启动。 此外、尝试触发与 RTI 触发器一起工作但来自 HET Pinx 的同一 ADC 也不会触发。 换言之、我的 ADC 具有从 RTI 触发的组、但用于例如从 HET1_8触发的组不会与该 HET 的任何输入相同。
同样奇怪的是、它都"明显"失败、没有任何原因、也没有崩溃或异常中断、我认为、如果 MPU 正在工作并且我尝试初始化特权段、我应该会得到这种情况。 但没有什么。
所以我在概念上不理解它:为什么这样, hetInit()会安静地阻止 PWM 在以后工作,除非它是从特权任务中调用的。 (即优先级的特权位)。
我会期待 MPU (如果配置了相应的)。 在 初始化时、或者在尝试启动 PWM 时访问 HET RAM 寄存器时、当我触摸 HET 寄存器时、立即触发中止。 但这种情况下,所有的一切似乎都是无提示的,但 PWM 将不起作用。
此上是否有任何指示灯? 从非特权任务调用时、所有 HalCoGen 的自动生成驱动程序/所有类型是否都保持静默? 为什么我有这样的 HET issue……