1. An Overview of C
1.1 What is C?

  C is a general-purpose computer programming language developed between 1969 and 1973 by Dennis Ritchie at the Bell Telephone Laboratories for use with the Unix operating system. Although C was designed for implementing system software, it is also widely used for developing portable application software. C is one of the most popular programming languages of all time.
1.2 Why C?

  C is the native language of UNIX. C is the standard development language for personal computers [2]. Much of MS-DOS and OS/2 is written in C.
  C is portable. Code written on one machine can be easily moved to another.
  C is terse. C has a very powerful set of operators, and some of these operators allow the programmer to access the machine at the bit level. The increment operator ++ has a direct analogue in machine language on many machines, making this an efficient operator.
  C is modular. C supports one style of routine, the external function, for which arguments are passed call-by-value.
  C is the basis for C++ and Java. This means that many of the constructs and methodologies that are routinely used by the C programmer are also used by the C++ and Java programmer.
  C is efficient on most machines. Because certain constructs in the language are explicitly machine-dependent, C can be implemented in a manner that is natural with respect to the machine’s architecture

C can be used to implement a Bootloader, digital signal processor (DSP) coding, MAC processor of the LTE base station. Figure 1 shows a TI's TCI6487 block diagram and Figure 2 shows a LTE channel cared design utilizing TCI6487 1.2GHz DSPs for a 3 sector, 10 MHz, 2 antenna deployment.
Fig. 1 1.2GHz TCI6487 block diagram
Fig. 2 LTE channel cared design utilizing TCI6487 1.2GHz DSPs for a 3 sector,
10 MHz, 2 antenna eployment
※ For more information, refer the site, http://focus.ti.com/lit/ml/sprt405b/sprt405b.pdf.
Example : FPGA Programming in C
Small processors are, by far, the largest selling class of computers and form the basis of many embedded systems. The first single-chip microprocessors contained approximately 10,000 gates of logic and 10,000 bits of memory. Today, field programmable gate arrays (FPGAs) provide single chips approaching 10 million gates of logic and 10 million bits of memory. Figure 1 compares one of these microprocessors with an FPGA. Table 1 shows the steps involved in designing embedded systems with a microprocessor and an FPGA. The ability to express yourself in C is a good start in learning Verilog.
Table 1. Step-by-step design process for microprocessors and FPGAs
Microprocessor FPGA
Architectural design Architectural design
Choice of language (C, C++, JAVA) Choice of language (Verilog, VHDL)
Editing programs Editing programs
Compiling programs (.DLL, .OBJ) Compiling programs
  Synthesizing programs (.EDIF)
Linking programs (.EXE) Placing and routing programs (.VO, .SDF, .TTF)
Loading programs to ROM Loading programs to FPGA
Debugging programs Debugging FPGA programs
Documenting programs Documenting programs
Delivering programs Delivering programs
1.3 History

The history of C evaluation can be summarized as follows:
1972 C invented at AT&T Bell Labs.
1978 Brian W. Kernighan and Dennis M. Ritchie, "The C programming language” published; first specification of language
1989 C89 standard (known as ANSI C or Standard C)
1990 ANSI C adopted by ISO, known as C90
1999 C99 standard
. Mostly backward-compatible
. Not completely implemented in many compilers
C99 introduced several new features, including inline functions, several new data types (including long long int and a complex type to represent complex numbers), variable-length arrays, support for variadic macros (macros of variable arity) and support for one-line comments beginning with //, as in BCPL or C++. Many of these had already been implemented as extensions in several C compilers.
2008 Work on new C standard C1X announced
이전페이지 / 2 / 다음페이지