单片机/MCU论坛
直播中

刘满贵

7年用户 1450经验值
私信 关注
[问答]

PSOC 6、PSOC Creator 4.4和PDL 3.1.7加密导致CM4挂起怎么解决?

我的项目使用的是 PSOC 6、PSOC Creator 4.4 和 PDL 3.1.7。 CM0P 正在运行 BLE 和 MCWDT。 CM4 正在运行几个 SCB、ADC、MCWDT、PDM_PCM 和 DMA。
我需要生成真正的随机数,所以我刚刚添加了加密初始化序列,如示例项目 CE221295 中所示


***************************** 代码开始********************************************
/* 启动加密服务器*/
Cy_Crypto_Server_Start(CryptoConfig、Cr   

/*加密驱动程序的初始化*/
Cy_Crypto_Init( CryptoConfig、Cry  

/* 启用加密硬件 */
Cy_Crypto_Enable ();

/* 等待 Crypto Block 可用*/
Cy_Crypto_Sync(CY_CRYPTO_SYNC_BLO
********************************* 代码结束********************************************

这导致我的 CM4 内核在 Cy_Crypto_Server_Start 之后立即挂起。cy_syslib_ProcessingFault 无法运行,所以我想没有发生硬故障,但是 cm4 已完全关闭。 尽管我将优先级设置为 0,但 cm4 MCWDT 也没有引发任何中断。

奇怪的是(对我来说),如果我在 cm0p 上删除 MCWDT 的初始化,cm4 不会挂起并完成完整的初始化过程并运行主循环。 如果我使用 CyDelay 在 cm0p 上将 MCWDT 初始化延迟 10 秒,那么加密初始化就好了,cm4 会一直运行到 cm0p MCWDT 初始化然后 cm4 立即挂起(崩溃?)。

如果我将加密货币转移到cm0p,则没有问题。 如果必须的话,我可以随时通过IPC从cm0p请求一个随机数,但是由于我需要cm4上的随机值,所以我想在那里运行加密货币。 另外,我想知道问题出在哪里。

回帖(1)

h1654155272.9717

2024-1-23 11:37:30
通过调试以下几个步骤来解决这个问题:

1) 确保已经正确配置了加密硬件模块。检查并确保在PSoC Creator的加密组件配置中正确选择了硬件模块。

2) 确保加密硬件模块的初始化序列正确。检查并确保使用正确的初始化序列来初始化加密硬件模块。

3) 确保在CM4运行的同时没有其他冲突任务。如果CM4运行多个任务,并且其中一个任务导致CM4挂起,则可能需要重新评估任务的优先级和资源使用情况。确保为每个任务提供足够的资源和适当的优先级。

4) 检查是否存在其他硬件资源冲突。如果CM4和其他硬件模块(如ADC、MCWDT、PDM_PCM和DMA)之间存在硬件资源冲突,可能需要进行一些配置更改来解决冲突。

5) 使用调试工具(如PSoC Creator的调试器)来检查CM4挂起的具体原因。通过设置断点和跟踪代码的执行路径,可以更详细地了解挂起的原因。


举报

更多回帖

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