[subexp-daq] Report of a possible bug of the CAEN_V560 module
Weber, Guenter Dr.
g.weber at hi-jena.gsi.de
Tue Feb 20 10:58:27 CET 2024
Dear friends,
I now grabbed a V560 module that was working fine in another DAQ system and put it into our test system.
The main.cfg looks like this:
log_level=spam # info, verbose, debug, spam
CRATE("MCAL") {
GSI_VULOM(0x03000000) {
timestamp = true # needed to get timestamps in the data output
# ecl=0..15
}
BARRIER
CAEN_V560(0x333333300) {
use_veto = true
}
# CAEN_V767A(0x03100000) {
# }
}
Starting the DAQ now results in a freeze of the RIO4. A reset of the crate is necessary to talk to it again.
The problem occurs in the first slow init of the V560 module. To find the exact line, I added some output to CRATE.C:
10: crate/crate.c:923: .Slow-init module[0]=GSI_VULOM.
before push_log_level(module)
before a_crate->module_init_id = module->id
before module->props->init_slow(a_crate, module)
LOG: TRLO: MD5SUM: 0x1409285e (CT: 63bb1d44 = 2023-01-08 19:45:08 UTC)
before module_init_id_mark(a_crate, module)
before pop_log_level(module)
10: crate/crate.c:923: .Slow-init module[1]=CAEN_V560.
before push_log_level(module)
before a_crate->module_init_id = module->id
before module->props->init_slow(a_crate, module)
The CRATE.C code now looks like this:
TAILQ_FOREACH(module, &a_crate->module_list, next) {
if (NULL == module->props) {
continue;
}
LOGF(info)(LOGL, "Slow-init module[%u]=%s.", module->id,
keyword_get_string(module->type));
printf("before push_log_level(module) \n");
push_log_level(module);
printf("before a_crate->module_init_id = module->id \n");
a_crate->module_init_id = module->id;
printf("before module->props->init_slow(a_crate, module) \n");
if (!module->props->init_slow(a_crate, module)) {
printf("before pop_log_level(module) \n");
pop_log_level(module);
printf("before goto crate_init_done \n");
goto crate_init_done;
}
printf("before module_init_id_mark(a_crate, module) \n");
module_init_id_mark(a_crate, module);
printf("before pop_log_level(module) \n");
pop_log_level(module);
}
Thus, to me it looks like the check "if (!module->props->init_slow(a_crate, module)) ..." is doing something quite horrible to the RIO4.
This is unfortunate, because my original aim was to show that there is also a bug/mistake in readout_dt of the V560 module. But I did not come this far.
Do you have any idea what might cause the freezing of the RIO4?
Best greetings and many thanks
Günter
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.chalmers.se/pipermail/subexp-daq/attachments/20240220/57ed3a60/attachment.html>
More information about the subexp-daq
mailing list