A flashing check engine light is an indication of a severe misfire or problem that is likely to harm your engine. Immediate diagnosis and service is needed.
Some specific causes for the light to be on are:
1. Gas cap left off, not tightened, not installed correctly, or needs to be replaced.
2. 02 sensor.
3. Engine misfire - error might clear itself after 3 complete warm-up cycles; not restarts, but warm-ups.
4. At start up for a bulb check - Should not stay on.
Problem in the emission system, including clogged exhaust or the catalytic converter not functioning properly:
1. Dirty/clogged air filter.
2. Dirty MAF sensor.
There are pages and pages of items that can cause a check engine light to come on. Having it checked with a scan tool will narrow down the problem area.