在使用CS+和smart configurator开发相关软件时,发现smart configurator生成的代码中经常使用syncp等流水线同步指令
从软件手册中我明白这种指令具体的意义,但是对于C语言来说,在软件开发中,如何确定这种指令的调用时机和注意事项?(比如只在寄存器操作时使用?)
下图是一个生成代码的示例
您好,
已反馈至内部,将会尽快给您答复
你好,
为了提高处理性能,当指令之间没有依赖关系时,该 CPU 在前一条指令的操作完成之前执行后续指令。因此,当后续指令需要等待前一条指令的操作完成时,需要同步过程。该 CPU 为同步提供了以下四个特殊指令。SYNCP 指令是特殊指令,它同步流水线以将前一条指令的结果反映到后续指令中。SYNCP 指令等待,直到加载的数据存储在前一条指令的寄存器中。
请参考此文档的APPENDIX A. Hazard Resolution Procedure for System Registers lists some use cases. 来理解syncp的应用实例。
RH850G3KH User’s Manual:Software (renesas.com)