在安全手册看到对各模块“Software Read Back of Written Configuration”和“Periodic Read Back of Configuration Registers” 这两项诊断。在halcogen生成的寄存器配置回读函数,应该是针对后者吧? 对于前者的诊断看到解释说要用到MPU,应该怎样做呢? 这两个诊断项有有什么区别吗?
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
在安全手册看到对各模块“Software Read Back of Written Configuration”和“Periodic Read Back of Configuration Registers” 这两项诊断。在halcogen生成的寄存器配置回读函数,应该是针对后者吧? 对于前者的诊断看到解释说要用到MPU,应该怎样做呢? 这两个诊断项有有什么区别吗?
Software Read Back of Written Configuration针对的是在更改寄存器的配置时,当完成写入后,再将寄存器的实际值读回来,与想要写入的值比较一下,看看是不是配置正确了。这时要求MPU将存储器映射寄存器的空间配置为 strongly ordered和 non-bufferable memory 空间,以防止产生误操作,关于MPU的具体设置,需要参考HALCoGen中的配置和技术手册中的说明。
而Periodic Read Back of Configuration Registers针对的是配置完成后,要周期性的去检测是不是寄存器的配置值被误操作所修改,这种修改不是出于本意的,可能是由于某些软件设计缺陷导致的,也可能是由于干扰导致的,因此要极力去避免。
谢谢!
hi,Jason
非常感激您的回答!配置 “ non-bufferable memory”为了防止配置写入“buffer“而不是模块寄存器吧。这个”strongly ordered“是什么意思呢? zai HALCOGEN看到有MPU的配置,在芯片资料上没有找到MPU相关相关说明。 非常感激!
存储器映射寄存器的机制中,寄存器是映射到存储器的空间的,因此要求这段空间是non-bufferable memory,即每次配置后都要实时的写入,而不是先在buffer中去缓存,而后再写入对应的寄存器中去。
strongly ordered的含义可以去Google上搜索一下,这里就不把网上的解释粘贴上来了。简单来说,其实也是将配置数据实时的写入到寄存器中,而后再进行下一步的动作,防止缓存等情况的出现。
谢谢!