I think I learned the basics of assembly, c and c++. I'm trying to improve myself by doing simple projects with microcontrollers. I researched the drivers and understood a basics about what they do, but I didn't understand in what situations I had to write my own driver. In what situations do I need to write a driver, is this a very difficult thing?