英飞凌
直播中

李永每

8年用户 1523经验值
私信 关注

AURIX TC39如何让所有内核都在相同的时钟频率下工作?

我正在使用 AURIX TC39 开发我的应用程序。 软件中有多个中断服务例程,因此我考虑让不同的 ISR 由不同的内核执行,以优化执行时间。 通过捕捉 ISR 开始和结束时 STM0 定时器计数器的值来测量 ISR 的执行时间,我尝试比较不同内核执行 ISR 时的执行时间,结果如下:
-CPU0=5.09 微秒。
-CPU1=8.08微秒。
-CPU2=8.08微秒。
-CPU3=8.08微秒。
-CPU4=8.08微秒。
-CPU5=8.08微秒。
在这里,我有一个疑问,因为我希望所有内核都在相同的时钟频率下工作,因此它们的速度应该不相上下,但遗憾的是,它们并非如此。
下面我将介绍为不同内核分配 SRI 的技术:
示例:
(在 tom 配置中):tomConf[0].interrupt.isrProvider = IfxSrc_Tos_cpuX;
(在 ISR 定义中):
IFX_INTERRUPT(Control_task,X,CONTROL);
其中,X I 表示要执行 ISR 的内核。
因此,我想知道这种内核分配程序是否正确,我还想确认内核是以相同的速度工作还是以不同的速度工作。

回帖(1)

kmno4

2024-6-3 14:13:03
要让所有内核在 AURIX TC39 上以相同的时钟频率工作,您需要确保以下几点:

1. **时钟配置**:确保所有内核的时钟源是相同的。在 AURIX TC39 中,内核时钟可以来自不同的源,例如内部振荡器、外部振荡器或PLL。您需要在系统初始化时配置这些时钟源,以确保所有内核使用相同的时钟频率。

2. **PLL配置**:如果使用PLL作为时钟源,确保所有内核的PLL配置相同。这包括PLL的输入频率、倍频器设置和输出分频器设置。这样,所有内核的时钟频率将保持一致。

3. **时钟门控制**:在 AURIX TC39 中,时钟门控制用于启用或禁用特定内核的时钟。确保所有内核的时钟门都已正确配置并启用,以便它们可以接收时钟信号。

4. **中断服务例程(ISR)的分配**:在您的应用程序中,确保所有ISR都分配给所有内核,以便它们可以并行执行。这将有助于平衡负载并确保所有内核以相同的速度工作。

5. **性能分析**:使用性能分析工具(如STM0定时器)来测量不同内核的执行时间。这将帮助您确定是否存在性能瓶颈或时钟频率不一致的问题。

6. **软件优化**:确保您的软件代码针对所有内核进行了优化,以便它们可以以相同的速度执行。这可能包括代码重构、循环展开、使用内联函数等技术。

7. **硬件检查**:检查硬件设计,确保所有内核之间的连接和信号完整性良好。这包括时钟信号、电源和地线等。

通过遵循上述步骤,您应该能够确保所有内核在 AURIX TC39 上以相同的时钟频率工作。这将有助于提高应用程序的性能和响应速度。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分