【发布时间】:2018-06-21 08:02:58
【问题描述】:
我正在运行一个序列,我需要临时写入寄存器中的某个字段,过了一会儿我希望将其重置回其重置值。我不想使用reset() 函数重置整个寄存器,我只想重置该字段。我找不到一种简单的方法来访问字段本身的重置值,即使它是在 reg_fld 宏中为每个字段定义的。
【问题讨论】:
我正在运行一个序列,我需要临时写入寄存器中的某个字段,过了一会儿我希望将其重置回其重置值。我不想使用reset() 函数重置整个寄存器,我只想重置该字段。我找不到一种简单的方法来访问字段本身的重置值,即使它是在 reg_fld 宏中为每个字段定义的。
【问题讨论】:
您可以通过vr_ad_reg::get_fields_info() 访问vr_ad_reg::static_info::fields_info(前提是存在static_info)。这是一个列表,其中包含有关该字段的信息的每个字段的项目。看看数据浏览器,这应该对你有帮助。
【讨论】:
vr_ad_reg::static_info::fields_info 确实包含一些信息,但由于某种原因,重置值不存在..
vr_ad_reg::static_info::fld_reset_val_list,但它是空的。
fld_size 和LSB 位置fld_fidx。使用它可以从寄存器的复位值中提取复位值,即vr_ad_reg_static_info::reset_value。