All the discussion about the image size differences between Windows Embedded Compact 7 and Windows CE 6.0 made me come up with some sort of an experiment (should I say challenge). What is the least possible time that I can boot my Alioth with some meaningful application running on it and what would be the size?
Camera streaming on LCD has been a hot favorite for many of our customers and has been a demo that we had done many a times.
I had a chat with my Alioth team and gave them the e-CAM32_PXAx. The job at hand was to make a small image and boot it really quick and display the streaming video on the screen. That was it.
Well they came up with an image of size 4.3 MB (with most of the components, shell removed) and it booted up in a flat 3 seconds after the processor completed its power on sequence.
Wow 3 seconds to load the Windows CE image from the flash, boot it and start the camera application and see the picture… that was impressive. Check out my video on that below.
Well!! I would love to have this happen in less than 1 second (And sometimes my team hates me for that… 🙂 ).
So let’s see what’s in the 3 seconds that I can reduce further. Have a look at the boot time BUDGET!!
Sl.No | Components | Approx Timing (ms) |
1 | Boot ROM, OBM and Eboot Launch | 970 |
2 | Eboot Initialization(BMP Logo Read, LCD Initialization) | 150 |
3 | Reading Nk.bin (4.5 MB) from NAND Flash | 650 |
4 | OS Launch, DFM/DVM driver Loading, GPIO Driver Loading, I2C Driver Loading, Display driver loading | 850 |
5 | Camera Driver Loading | 320 |
6 | Camera Application, Setting Camera Resolution and Other properties, Enabling Overlay | 100 |
Total | 3040 |
What are all the factors can I consider for boot time optimization?