ABSTRACT

During the early years of microprocessor based systems, the user programs were de-

veloped using assemblers and fused into EPROM memories. There used to be no

mechanism in place to find out what actually had the program been doing. Differ-

ent types of input and output devices such as LEDs, switches, etc. were used to

check correct execution of the program. Some of the developers who were fortunate

enough used to have an access to In-Circuit Emulators (ICEs), but they were too

costly and were not quite reliable as well. As time progressed, use of assembly as

the programming language reduced and embedded systems moved to C as the pro-

gramming language of choice. Since then the C language has been the most widely

used programming language for embedded systems. The assembly language is also

used but primarily to implement those parts of the code that require higher execution

efficiency and timing accuracy along with code size optimality.