Tc27x的MTCR与MFCR指令

一、什么是MTCR/MFCR

        Move to Core Register :移动到核心寄存器指令

        Move From Core Register :从核心寄存器指令移动

二、使用方式

        MTCR:

        MTCR仅在Supervisor模式下可用。

        将数据寄存器D[a]中的值移动到由值const16选择的核心特殊函数寄存器(CSFR)。CSFR地址与CSFR基址相差16个字节。它必须是字对齐的(最不重要的两位为零)。未对齐的地址具有未定义的效果。

        没有任何指令允许对CSFRs进行位、位域或负载-修改-存储访问。RSTV指令(重置溢出标志)只重置PSW中的溢出标志,而不修改任何其他PSW位。该指令可以在任何模式下执行(即User-1, User-0或Supervisor模式)。

        CSFRs也被映射到内存地址空间。这种映射使得在地址映射中可以看到核心的完整架构状态,这允许高效的调试和模拟器支持。注意,不允许核心通过这种机制访问CSFRs。核心必须使用MFCR和MTCR。下图总结了访问csfr时TriCore的核心行为。

Tc27x的MTCR与MFCR指令_第1张图片

        无法使用MTCR指令访问GPRs。尝试使用此指令更新GPR不会产生任何效果。

        MTCR指令之后应该跟着ISSYNC指令。这确保了所有MTCR之后的指令都能看到CSFR更新的效果。

 Tc27x的MTCR与MFCR指令_第2张图片

   MFCR:

                为了防止对CSFRs的未授权写入,MTCR指令只能在Supervisor模式下执行。MTCR指令之后应该跟着issync指令。这确保了所有MTCR之后的指令都能看到CSFR更新的效果。

        将核心特殊函数寄存器(CSFR)的内容(由值const16选择)移动到数据寄存器D[c]。CSFR地址与CSFR基址相差16个字节。它必须是字对齐的(最低有效的两位等于零)。未对齐的地址具有未定义的效果。

        MFCR可以在任何特权级别上执行。此指令不能用于访问GPRs。尝试使用此指令访问GPR将返回一个未定义的值。

        Tc27x的MTCR与MFCR指令_第3张图片

 

        

你可能感兴趣的:(汽车电子,c语言)