A purely software USB Driver for Cortex M0+ cores