l00012320
(kunlun_luzhanghui)
2026 年4 月 20 日 03:12
1
目前的理解:DfxInfo配置Chip、Offset与Size,通过从指定芯片、地址批量读取块数据,然后按照Config里定义内存布局和变量分配,再通过Mapping分配给各个Scanner。
然后从其它帖子了解到,配置同名的Scanner,会在DfxInfo未就绪之前自行触发,等DfxInfo流程正常后,会把信息同步到Scanner,Scanner本身的扫描不会再触发。
疑问:
原则上是要配一个正确的Scanner,但是没有提供对应SMC的情况下,这个Scanner怎么配才能不产生负面影响,是Offset配成0(SMCChip)就行了吗,其它数据是否有要求呢?是不是只要保证无法正常读取,就可以?
这个Scanner对象存在的意义是什么,DfxInfo配置完毕后,能否不配额外的Scanner对象,只等到DfxInfo初始化完成后直接使用Mapping里的Scanner?
l00012320
(kunlun_luzhanghui)
2026 年4 月 20 日 03:25
3
我的目的:只有DfxInfo里有信息,没有独立的SMC地址。我需要读取出来的内容保证是正确的。要么读出来晚一点,要么就读不通。
ScanEnabled为false,Period为0,是否会影响从DfxInfo同步信息?
DFXInfo读取较慢的情况下,Scanner的Status能否正常更新,比如更新为获取中或者OK(只用Scanner的话是有的)
smcdfx是用于优化Scanner读取性能的,主体还是Scanner,其他对象同步属性也是从Scanner同步,且如果cpld不支持dfx能力,需要Scanner恢复自扫描的机制。
正常来讲,Scanner本身有个命令字可以读取到一样的值,offset就是那个命令字。汇聚本质是cpld额外提供新命令字一次性读取一片寄存器值,然后把对应寄存器更新到对应的Scanner上。一般不会配置为无法正常读取,无法正常读取可能会导致其他异常。
ScanEnable为false的场景下,Scanner的值是配置的NominalValue,汇聚的值不会刷新到那。Period最低是10ms,配0实际也是10ms。
Scanner的status刷新和dfx读取时间没什么关系。读到值后根据成功/失败更新状态