You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Since reading files from the SPI flash is very slow we could copy the files that the current watchface needs into the internal flash, then use them from there instead of the flash. This could be implemented as an LVGL file system, although I don't think we need to use LittleFS and could instead use a trivial flat file system structure.
For example, when the casio watchface is selected the three font files it uses will be copied into the internal flash, and when the watchface is shown it will load the files from there much quicker.
Alternatively, we could implement a sort of caching LVGL file system that sits in between the LittleFS file system and the LVGL adapter that caches some files in the internal flash, but that might be trickier due to fragmentation.
The text was updated successfully, but these errors were encountered:
I've thought about this a bit too. The one thing I'm worried about is the durability of the inbuilt flash, which is only rated for 10K cycles. So I think we'd want to avoid a cache setup where resources get swapped in and out often. An architecture that copies in watchface files on watchface change could be good though I think, watchface is not changed often.
Following up from this, it appears that there's definitely some performance issues with the external flash. The font files for G7710 are less than 10K in total. In theory, reading 10K from the flash should take no more than 10ms (SPI bus is 1MB/s).
I suspect littleFS issues with LVGL doing many file ops, but I'd need to test. If optimising resource loading is possible, I'd prefer that to reflashing the internal flash
Since reading files from the SPI flash is very slow we could copy the files that the current watchface needs into the internal flash, then use them from there instead of the flash. This could be implemented as an LVGL file system, although I don't think we need to use LittleFS and could instead use a trivial flat file system structure.
For example, when the casio watchface is selected the three font files it uses will be copied into the internal flash, and when the watchface is shown it will load the files from there much quicker.
Alternatively, we could implement a sort of caching LVGL file system that sits in between the LittleFS file system and the LVGL adapter that caches some files in the internal flash, but that might be trickier due to fragmentation.
The text was updated successfully, but these errors were encountered: