embedded programming flashing program
Simply put, your task needs to define your tools, not the other way around.  Raspberry Pi is not a real time platform.  It is running Linux, and not a real time OS.  

If you don't need an OS, and would rather do bare metal C programming, then I recommend picking a microcontroller platform to start on -- probably PIC or AVR.  Pick a good dev board and IDE, and run with it.  If you're feeling ambitious, you might even consider an ARM Cortex like the STM32F4 Discovery.

If you have many system-type resources that you need to use and manage, like a file system and more, than an OS like Linux on a Raspberry Pi, or a Real Time OS on a single board computer or ARM Cortex dev board, might be the right call.