<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css" style="display:none;"><!-- P {margin-top:0;margin-bottom:0;} --></style>
</head>
<body dir="ltr">
<div id="divtagdefaultwrapper" dir="ltr" style="font-size: 14pt; color: rgb(0, 0, 0); font-family: Calibri, Helvetica, sans-serif, "EmojiFont", "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols;">
<p>Dear friends,</p>
<p><br>
</p>
<p>when we switch on the DISCARD_DATA feature, we get a failed memory access error in line
<span>2905 of <span>sis_3316.c. The discard option triggers the if clause starting in line 2855.</span></span></p>
<p><span><span><br>
</span></span></p>
<p><span><span>We think that the problem lies in the value of ADC_MEM_I in</span></span></p>
<p><span><span><br>
</span></span></p>
<p><span><span><span style="font-size: 10pt;">MAP_READ_OFS(a_sis3316->sicy_map, adc_fifo_memory_fifo(adc), adc_mem_i);</span><br>
</span></span></p>
<p><span><span><br>
</span></span></p>
<p><span><span>ADC_MEM_I is incremented by one after each memory access after line 2886. However, we think it should be incremented by the size of the element that we read. Here is what Bastian did in 2021:</span></span></p>
<p><span><span><br>
</span></span></p>
<p><span><span></p>
<div><span style="font-size: 10pt;">        volatile uint32_t *adc_mem;</span><br>
<span style="font-size: 10pt;">...</span><br>
<span style="font-size: 10pt;">        adc_mem = a_sis3316->arr->adc_fifo_memory_fifo[adc];</span><br>
<span style="font-size: 10pt;">        *outp++ = *adc_mem++; /* timestamp 1 */</span><br>
<span style="font-size: 10pt;">        *outp++ = *adc_mem++; /* timestamp 2 */</span><br>
<br>
<span style="font-size: 10pt;">        if (a_sis3316->config.use_accumulator2 == 1 ||</span><br>
<span style="font-size: 10pt;">            a_sis3316->config.use_accumulator6 == 1) {</span><br>
<span style="font-size: 10pt;">            int i;</span><br>
<span style="font-size: 10pt;">            /* both must be set! */</span><br>
<span style="font-size: 10pt;">            assert(a_sis3316->config.use_accumulator2 == 1);</span><br>
<span style="font-size: 10pt;">            assert(a_sis3316->config.use_accumulator6 == 1);</span><br>
<span style="font-size: 10pt;">            for (i = 0; i < 9; ++i) {</span><br>
<span style="font-size: 10pt;">                *outp++ = *adc_mem++; /* peak + gates */</span><br>
<span style="font-size: 10pt;">            }</span><br>
<span style="font-size: 10pt;">        }</span></div>
<br>
</span></span>
<p></p>
<p><span><span>Incrementing the pointer ADC_MEM in Bastian's code should shift the address by SIZEOF(UINT32_T), right?<br>
</span></span></p>
<p><span><span><br>
</span></span></p>
<p><span><span>Maybe you could look into this issue.</span></span></p>
<p><span><span><br>
</span></span></p>
<p><span><span><br>
</span></span></p>
<p><span><span><br>
</span></span></p>
<p><span><span>Thank you very much!</span></span></p>
<p><span><span><br>
</span></span></p>
<p><span><span><br>
</span></span></p>
<p><span><span>Best greetings</span></span></p>
<p><span><span>Günter<br>
</span></span></p>
<p><span><span><br>
</span></span></p>
<p><span><span><br>
</span></span></p>
<p><span><span><br>
</span></span></p>
<p><br>
</p>
<div id="Signature">
<div style="font-family:Tahoma; font-size:13px">
<div style="font-family:Tahoma; font-size:13px"><font size="2" style="font-family:Tahoma"><span style="font-size:10pt">----------------<br>
<br>
Günter Weber<br>
<br>
Helmholtz-Institut Jena<br>
Fröbelstieg 3<br>
07743 Jena<br>
Germany<br>
Phone: +49-3641-947605<br>
<a href="http://www.hi-jena.de" id="LPNoLP"><font size="2">www.hi-jena.de</font></a><br>
<br>
GSI Helmholtzzentrum für Schwerionenforschung<br>
Planckstrasse 1<br>
64291 Darmstadt<br>
Germany<br>
</span></font><a href="http://www.gsi.de" id="LPNoLP"><font size="2" style="font-family:Tahoma"><span style="font-size:10pt"><font size="2">www.gsi.de</font></span></font></a></div>
</div>
</div>
</div>
</body>
</html>