Hi,
Every two weeks or so my device starts up with a white screen which remains white until the next reset. The device is fully functional during this period (except for the display). The issue (when it happens) is always on a soft reset, never on a power cycle.
This started when I was hunting a crash when upgrading to a new compiler (a task I abandoned). The crash was caused by the dsi_init function in the H7 video library being declared to return an int while the definition returned nothing. (Hopefully the new zephyr core will be built clean of warnings so people find these issues before they hit main). I fixed it by giving the function a void return type. This fixed the crash. I didn’t move compilers in the end but I kept the fix in because who wants corrupted registers?
I suspect this correct behaviour has now allowed another defect to show itself. Obviously I could revert my change but knowingly putting back a known defect to mask another issue seems like a bad idea.
This white screen is immediate. At the point it’s happened all my code has done is enter setup() and call begin on
Arduino_H7_Video display_;
Arduino_GigaDisplayTouch touch_;
Has anyone else seen this issue?
The offending function I fixed with void:
int dsi_init(uint8_t bus, struct edid *edid, struct display_timing *dt) {
The curious reader will note on examination in GitHub that this function never returns a value.