C vs Embedded C
Embedded program development is a rapidly growing field today. There is a constant need to write embedded applications using high level programming languages (such as C) mainly for two reasons. Firstly, the complexity of the embedded applications is increasing and it has become very difficult to manage the applications using low level languages such as Assembly language. Secondly, because new processor models are released very frequently, there is a need to constantly update/adapt your embedded programs to newer instruction sets. The reusability feature present in languages like C could provide solutions to both these problems.
Embedded C is a step towards adapting C programming langue to write efficient embedded applications. Embedded C is an Extension to C programming language that allows programmers to have all the useful features of a high level programming language, while having the ability to directly communicate with the target embedded processors for improved performance. Over the years, many independent C programmers have added extensions to support accessing basic I/O hardware. Embedded C is an effort to combine those practices and provide a single uniform syntax.
What is C?
C is a general purpose high level programming language developed by Dennis Ritchie in 1970’s. It is mainly intended for developing system software. But it is also used for application software development very frequently. C programming language is so popular among all programmers that C compilers exist for almost all the computer architectures. C has influenced many other computer programming languages such as C++ and Java. In fact, C++ was started as an extension to C, and along with Java, it contains syntax very similar to C.
What is Embedded C?
Embedded C is an extension to C programming language that provides support for developing efficient programs for embedded devices. It is not a part of the C language. It is developed by the ISO working group called “Extensions for the Programming Language C to Support Embedded Processors” and is described in the Technical Report on Embedded C (TR 18037), which was published in February, 2004. Embedded C development aims to deliver an increase in performance for the features used for the DSP (Digital Signal Processing) and embedded processing. It tries to enable portable and efficient development of applications in the domain of embedded systems by giving direct access to features in the target processor.
What is the difference between C and Embedded C?
C is a widely used general purpose high level programming language mainly intended for system programming. Embedded C is an extension to C programming language that provides support for developing efficient programs for embedded devices. Embedded C is not a part of the C language. C is usually for desktop programming, while Embedded C is more suitable for embedded programming. Unlike C, Embedded C allows programmers to directly talk to the target processor and therefore provides improved performance compared to C. C creates OS dependent executable files, while Embedded C cerates files that are typically downloaded directly in to microcontrollers. Unlike C, Embedded C has fixed point types, multiple memory areas and I/O register mapping.