单片机/MCU论坛
直播中

李宛蔓

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

如果使用Dual bank模式,CM0+和CM4的程序是否同时运行,如何避免中断的相互干扰?

目前项目开发CYT2B7的Bootloader功能,有些疑惑请帮忙解答一下:

  •  CM0+做Bootloader工程升级CM4的应用程序,当程序跳转到CM4后,CM0+使用的CAN、定时器等外设是否需要重新初始化?
  •  CM4程序运行起来后,CM0+的工作状态是继续执行还是停止工作?程序如何配置进行管理?
  •  CM4如果需要调用CRYPTO模块时,是否直接调用Drivers库里的接口就可以,不用关心与CM0+的交互?
  •  工程里CM0+是否通过Cy_SysEnableApplCore(CY_CORTEX_M4_APPL_ADDR)启动CM4的程序?如果需要从CM4跳转到CM0+执行Bootloader升级操作,应该调用什么函数?
  •  CM0+跳转到CM4和CM4跳转到CM0+时,实现需要对中断向量表进行控制?跳转的注意事项和函数执行流程是什么样的?
  •  如果使用Dual bank模式,CM0+和CM4的程序是否同时运行,如何避免中断(CAN、定时器等)的相互干扰?
                                                                                                                                                                                                                                                                                                                                                                                               

回帖(1)

马占云

2024-1-22 17:21:15
使用Dual bank模式时,CM0+和CM4的程序可以同时运行。为了避免中断的相互干扰,可以在CM4的程序中设置中断优先级,确保CM4的中断不会打断CM0+的处理。

在使用CM0+做Bootloader工程升级CM4的应用程序时,当程序跳转到CM4后,可以选择重新初始化所使用的外设。这取决于具体的应用需求和外设配置。

一旦CM4程序运行起来,CM0+的工作状态是停止工作。可以通过配置CM0+的工作状态和触发条件来控制CM0+的启动、停止和唤醒。

当CM4需要调用CRYPTO模块时,可以直接调用Drivers库中提供的接口,无需关心与CM0+的交互。CM0+和CM4之间的数据传输可以通过Shared Memory进行。

在工程中,可以通过Cy_SysEnableCM4()启动CM4的程序。如果需要从CM4跳转到CM0+执行Bootloader升级操作,可以调用Bootloader库中的相应函数。

如果有其他关于CYT2B7 Bootloader功能的疑问,您可以详细说明,我将尽力解答。
举报

更多回帖

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