Skip to content

Fix read register bug

Kehang Bai requested to merge fix_read_register into devel

This MR fix the readUpdateWriteReg function. It currently checks if the register is non-zero:

void Rd53b::readUpdateWriteReg(Rd53bRegDefault Rd53bGlobalCfg::*ref) {
    for (unsigned int i=0; i<5; i++){
   		uint32_t reg = readSingleRegister(ref);
   		if (reg != 0) {
     		m_cfg[(this->*ref).addr()] = reg;
     		break;
   		}
    	}
}

However, since 0 is a valid value for a register, this creates problems when reading register with value 0. This is not changed to:

void Rd53b::readUpdateWriteReg(Rd53bRegDefault Rd53bGlobalCfg::*ref) {
    for (unsigned int i=0; i<5; i++){
   		uint32_t reg = readSingleRegister(ref);
   		if (reg >= 0) {
     		m_cfg[(this->*ref).addr()] = reg;
     		break;
   		}
    	}
}

This MR also removed the following line in read-register.cpp:

fe->readUpdateWriteNamedReg(register_name);

as it is redundant and the read-register exe does not update any register.

Tagging @theim.

Merge request reports