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.
我使用两个 CPU 内核运行到一个奇数行为中。
我正在使用 CPU2 CLA 任务1来设置 EPWM1占空比和 DACA。 CLA 任务1由 EPWM2触发。 CPU2的循环为空。 CPU2还有一个用于处理 CLA 任务1中断的 ISR。 所有这一切都是对 Group11 Ack Group 的明确要求。 CPU2应用程序在单独的项目中工作、其中 CPU1和 CPU2均正常工作。 我正在尝试在新项目中重新使用 CPU2部件。
新项目使用 CPU1和 CLA。 CLA 任务1由 ADCC 触发、而 ADCC 又由 EPWM1触发。 CPU1还使用 EPWM4触发一些计算。 EPWM4具有单独的 ISR。
我让 CPU1进行初始化、然后标记 CPU2以开始初始化。 CPU1等待 IPC ACK 标志、然后再继续。
在 CPU1等待 CPU2初始化时、EPWM4的 ISR 例程按预期触发。
一旦 CPU2完成初始化、EPWM4就会停止、并且 CPU1上没有 ISR 处理。 CPU2上的应用程序似乎按预期工作。
如果我在调试器中*暂停* CPU2,EPWM4会再次启动,CPU1侧看起来工作正常。 如果我取消暂停 CPU2、EPWM4将再次停止。
CPU2拥有 EPWM1来设置占空比。 EPWM1触发由 CPU1拥有的 ADCC1。 我没有发现 资源或内存的其他冲突。
基本上:CPU1:
Config GPIO
Config PWM, EPWM1, EPWM2, EPWM4, Config EPWM1 SOCA
Config ADC, Config ADCC1 to be triggered by EPWM1, ADCA1 to be triggered by EPWM4
Config DAC
Assign DACA to CPU2
Config CLA, Task1 triggered by ADCC1
enable interrupt for CLA Task 1
Assign EPWM1 and EPWM2 to CPU2
set IPC FLAG4
wait for ACK
enable Interrupts
EPWM4的 ISR:
Set GPIO 14
Computation
Clear EPWM4 Int flag
Clear ACK GROUP3
Clear GPIO14
CLA 任务1的 ISR:
Clear ACK GROUP11
CPU CLA 任务1:
Set GPIO 27 for debug
Read ADC results
Do some computation
Set DACB for debug
Clear GPIO 27
在 CPU2上:
Device_init, Interrupt_initModule, Interrupt_initVectorTable
Wait for IPC Flag 4
setupDAC
setupCLA, Task 1, triggered by EPWM2
enable Interrupt for CLA Task 1
enable interrupts
Send ACK for Flag 4
CLA 任务1 ISR:
clear ACK for Group 11
CLA 任务1:
Set GPIO 95 for debug
Set EPWM1 duty
Set DACA
Clear EPWM2 interrupt flag (HWREGH(EPWM2_BASE + EPWM_O_ETCLR) |= EPWM_ETCLR_INT;)
Clear GPIO95
CPU2正在运行时、CPU1上的 CLA 操作似乎正常工作。 换句话说、我看到 GPIO 切换和 DACB 设置正确。
您是否看到我至今缺少的任何内容? 谢谢!
Mark、您好!
我正与其他专家联系、询问这一点。 我们将尽快返回给您。
此致、
Ben Collier
Mark、您好!
为了了解您的问题、您希望 EPWM4输出、即使 CPU2完成代码初始化后也是如此。
最棒的
Ryan Ma
您好、Ryan、
EPWM4操作仅由 CPU1管理、与 CPU2正在执行的任何操作无关。 它应在 CPU2活动之前和期间运行。 我将尝试将项目的一个简单版本组合在一起、以演示问题。 我可能需要几天的时间才能做到这一点。
谢谢、
Mark、您好!
好极了。
谢谢、
Ryan Ma
我现在要关闭它。 我无法创建演示行为的示例项目。 我稍后将重试、并在此时创建新帖子。 谢谢。