在 CM0+ 上使用 systick 时 SROM 操作超时

公告

大中华汽车电子生态圈社区并入开发者社区- 更多资讯点击此

Tip / 登入 to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
Translation_Bot
Community Manager
Community Manager
Community Manager

你好,

我的软件设计在 CM4 内核上执行闪存擦除操作,在 CM0+ 内核上执行基于 Systick 的 IO 反转操作,我遇到了一种现象,当我在 CM0+ 内核上删除 Systick 的初始化代码时,CM4 内核上的闪存擦除操作可以正常结束(IPC 可以获得 SROM 擦除操作 " 已解锁 ",即已完成)。 但是,当在 CM0+ 内核上执行 Systick 的初始化代码时,它会失败(IPC 无法获得 SROM 擦除操作 " unlocked ")。

这可能的原因是什么。

谢谢,

最好的问候

smartconx_target@Q!w2e3r4t5y6u7i8o9p0||/t5/TRAVEO-T2G/SROM-operation-timeout-with-systick-on-CM0/td-p/652034

0 点赞
1 解答
Translation_Bot
Community Manager
Community Manager
Community Manager

好好,

默认情况下CM0+IRQ0的优先级为1,而systick的优先级可能为0,所以 NAGOIPC 锁定直至超时的情况。您可以试试 cm0+IRQ0的优先级设为0,systick的优先级设为3,看看还有没有问题。

smartconx_target@Q!w2e3r4t5y6u7i8o9p0||/t5/TRAVEO-T2G/SROM-operation-timeout-with-systick-on-CM0/m-p/652733

在原帖中查看解决方案

0 点赞
6 回复数
Translation_Bot
Community Manager
Community Manager
Community Manager

好像论中可以用中文提问。。。请让我直接用中文补充一下细节。

  • 芯片是 CYT2B9
  • 使用 SDLPROCELOVITION
  • cm4cinde的FlashOpeUsebeste是屏蔽模式模式
  • 正常,在 “封锁” 的情况下,flash 擦除操作中sdlcnethit 会轮流直到 cy_ipc_drv_islockacted () 返回 “假”。但当cm0中存入systick的初始化代代码时,cy_ipc_drv_islock获得了 () 会等着不回来返回 “假”,最后会发生超时。

抱歉,没有办法提供基于 SDL 样本的最小代码,但是如果还有其他需要补充的细节请联系我。谢谢!

smartconx_target@Q!w2e3r4t5y6u7i8o9p0||/t5/TRAVEO-T2G/SROM-operation-timeout-with-systick-on-CM0/m-p/652163

0 点赞
Translation_Bot
Community Manager
Community Manager
Community Manager

好好,

默认情况下CM0+IRQ0的优先级为1,而systick的优先级可能为0,所以 NAGOIPC 锁定直至超时的情况。您可以试试 cm0+IRQ0的优先级设为0,systick的优先级设为3,看看还有没有问题。

smartconx_target@Q!w2e3r4t5y6u7i8o9p0||/t5/TRAVEO-T2G/SROM-operation-timeout-with-systick-on-CM0/m-p/652733

0 点赞
Translation_Bot
Community Manager
Community Manager
Community Manager

你好,谢谢回复,

我这边有其他优先权事务,等过两天之后确认下你提供的方法,如果可行会回来反馈。

谢谢谢谢

smartconx_target@Q!w2e3r4t5y6u7i8o9p0||/t5/TRAVEO-T2G/SROM-operation-timeout-with-systick-on-CM0/m-p/652821

0 点赞
Translation_Bot
Community Manager
Community Manager
Community Manager

你好按照你提供的方法尝试了一下,是有效结果的。

请问为什么 systick 的优先级 haGohorcm0+irq0shoungailteupic 锁定直至超时了呢?因为按照一般的理解,即使是 systick 中断的优先级也很高,但是总的来说会有动作用的间隙可以去执行比它优先级低的CM0+IRQ0中断请求。所以,不是很理解,为什么会有 IPC 锁定直至超时。能过来微信深深的解释一下吗?

另外,如果是总结的话,关于 IPC 相关的中断(比如 flash 相关的操作起作用),可以理解因为只要有比它优先级高的中断就存在,那么 IPC 的中断一定会得不到响应(biaslocklock直至超时),是吗?

smartconx_target@Q!w2e3r4t5y6u7i8o9p0||/t5/TRAVEO-T2G/SROM-operation-timeout-with-systick-on-CM0/m-p/655369

0 点赞
Translation_Bot
Community Manager
Community Manager
Community Manager

好好,

因为中断会根据优先级来执行执行操作,如果此时systick和flash操作的中断同时进行,按照默认配置,那就是一定会先执行优先级高的话题,也就是systick,而当时 systick 中断更新的比频繁,就行了 navilflash 致密的操作长时间得不到相等的超时。

smartconx_target@Q!w2e3r4t5y6u7i8o9p0||/t5/TRAVEO-T2G/SROM-operation-timeout-with-systick-on-CM0/m-p/656712

0 点赞
Translation_Bot
Community Manager
Community Manager
Community Manager

十分感谢谢谢你的回复。👍

smartconx_target@Q!w2e3r4t5y6u7i8o9p0||/t5/TRAVEO-T2G/SROM-operation-timeout-with-systick-on-CM0/m-p/657914

0 点赞