Page 4 of 4

Re: Update 15th March

Posted: Mon Mar 23, 2020 3:41 am
by KV0A
I'm pretty sure the display corruption is fixed! I've been using the radio a good bit and haven't seen it happen once.

Re: Update 15th March

Posted: Mon Mar 23, 2020 10:41 am
by VK3KYY
KV0A wrote:
Mon Mar 23, 2020 3:41 am
I'm pretty sure the display corruption is fixed! I've been using the radio a good bit and haven't seen it happen once.
Thanks Mark

I've not noticed it either but its one of those bugs that is hard to know when it has definitely been fixed as its so random and intermittent.
If it is fixed the bug wasnt what we initially thought it was.
We thought it was the display update being interrupted midway through by the DMR chip.

But the fix I applied to it was to not use compiler optimization for the data transfer, because I noticed with the Flash chip that using compiler optimization caused the software generated clock and data signals to be inconsistent

So I put the critical parts of the display code into a separate file, and disabled optimization on that file, which forces the compiler to generate machine code that pretty much exactly matches the C code that I wrote. And I did my best to optimize the way the C code for this was written.

Re: Update 15th March

Posted: Mon Mar 23, 2020 6:39 pm
by EB3AM
VK3KYY wrote:
Mon Mar 23, 2020 10:41 am
KV0A wrote:
Mon Mar 23, 2020 3:41 am
I'm pretty sure the display corruption is fixed! I've been using the radio a good bit and haven't seen it happen once.
Thanks Mark

I've not noticed it either but its one of those bugs that is hard to know when it has definitely been fixed as its so random and intermittent.
If it is fixed the bug wasnt what we initially thought it was.
We thought it was the display update being interrupted midway through by the DMR chip.

But the fix I applied to it was to not use compiler optimization for the data transfer, because I noticed with the Flash chip that using compiler optimization caused the software generated clock and data signals to be inconsistent

So I put the critical parts of the display code into a separate file, and disabled optimization on that file, which forces the compiler to generate machine code that pretty much exactly matches the C code that I wrote. And I did my best to optimize the way the C code for this was written.
Fantastic, no corruption here!