Hi @Timothy_Hall
I did the math for us one Saturday night.
Linux 32-bit systeme modern int32_t or uint32_t with the max value unsigned 4.294.967.295 and signed from −2.147.483.648 to 2.147.483.647.
Is very near to this value 4,294,967,276. If we do the math, we might get the right interrupt value:
4.294.967.295
- 4,294,967,276
-----------------
19
=====
I think someone has programmed a typical int32_t vs. uint32_t overflow error when the mathematical signs change.
Solution:
Add this code in cpinfo.
if( interrupt > 2.147.483.647 ) {
interrupt = 4.294.967.295 - interrupt;
}
What surprises me even more is that the same error with the same mathematical value (4,294,967,276) appears in several cpu lines. A small error has occurred during programming of this code.
@PhoneBoy Maybe you could forward this to TAC or R&D.
PS:
But that's also how I messed up my grade in c++ programming during my studies.😁
➜ CCSM Elite, CCME, CCTE ➜ www.checkpoint.tips