1. A method, comprising: generating a user application in response to user input, wherein the user application is described in a user application description; and generating processing device code for a targeted processing device based at least in part on the user application description without user intervention, wherein the processing device code includes a system layer, wherein functionality of the system layer is independent of the targeted processing device, wherein the processing device code includes a hardware encapsulation layer to represent the targeted processing device to the system layer, wherein the hardware encapsulation layer is generated based at least in part on the targeted processing device and wherein the hardware encapsulation layer comprises a low level driver configured to convert signals received from the targeted processing device to signals which the system layer can process.