As an earlier poster said, if you can do hardware and program in C/C++ you are
80 percent of the way there.
Some things to try:
Try to find a local consultant that is doing embedded development that needs some help with the hardware side. Try to form a relationship and work on shared projects.
Where are you located?
Try to build some kind of embedded device from scratch. Make sure you understand the software aspects specific to embedded design such as Linker scripts, memory maps etc... Often with some thing like C/C++ or java on a PC you don't even see that part of the compiler setup.
You could buy a 32 bit embedded devkit and play with that.
An Arm, Coldfire, PPC, I'm personally partial to our products ;-)
formatting link
Try :
formatting link
The world seems to be moving toward 32 bit parts even in applications that were formerly
8 bit, as a result I would shy away from such 8 bitters as the Z-80 , 8051 or Rabbit. If you think the work your looking for will be in minimalist systems then maybe do some 8 bit stuff. I personally like the AVR for tiny devices. See
formatting link
You say that you are proficient at C/C++, the exact details of this will make some difference. If you've always used the project builder wizard witn microsoft visual C then you have more to learn than if you have been hand assembling makefiles for a linux system.
Study the GCC manuals with specific attention to the linker. Make sure you know what CRT0 is and what it does. (the startup code)
Paul
CTO NetBurner.