Skip to main content

+1 866 653-6233 LinkedIn Software Expert Witness Directory

About Us Contact Us

Barr Group Software Experts

Barr Group Software Experts

Main navigation

  • Expert Services
    • Consulting Experts in Software and Electronics
    • Expert Reports by Testifying Software Experts
    • Reverse Engineering and Forensic Analysis
    • Software Source Code Review and Analysis
  • Areas of Expertise
    • Left Side
      • Artificial Intelligence
      • Automotive Systems
      • Cloud Computing
      • Computer Security
      • Consumer Electronics
      • Electronic Circuits
      • Enterprise Software
      • Financial Technology
      • Firmware and IoT
    • Right Side
      • Industrial Controls
      • Mechanical Design
      • Medical Devices
      • Military & Aerospace
      • Mobile Devices & Apps
      • Optical Equipment
      • Renewable Energy
      • Signal Processing
      • Telecommunications
  • Matters & Venues
    • Patent Infringement and Invalidity Experts
    • Software Copyright and Trade Secrets Experts
    • Product Liability and Failure Analysis Experts
    • Contract Disputes and Software Project Failures
    • Venues and Clients
  • Directory
  • Case Studies
    • DirecTV Anti-Piracy
    • Samsung Software Copyright
    • Toyota Runaway Cars
  • Resources
    • Expert Witness Blog
    • Source Code Review in Litigation
    • Software Source Code Discovery

Terms Starting with C

  1. Home
  2. Embedded Systems Glossary
  3. Terms Starting with C

Book traversal links for Terms Starting with C

  • ‹ Terms Starting with B
  • Up
  • Terms Starting with D ›

C99

N. A 1999 update to the international standard for the C programming language. The updated standard is formally known as ISO/IEC 9899: Programming Languages—C. From an embedded systems programming perspective, one of C99's most exciting enhancements is built-in definition of signed and unsigned integer data types of 8, 16, and 32 bits. (They are typedef'd as uint8_t, int8_t, uint16_t, etc. in the platform-specific library header file stdint.h.) The C99 standard also recognizes C++-style comments (//) and makes several other long-overdue language improvements.

USAGE: In standard C, the size of primitive types short, int, and long are only loosely defined. On one platform, an int can be 16 bits; on another, 32 bits. For many years, embedded systems programmers have defined their own typedefs for fixed-sized signed and unsigned integers. Finally, standard names were assigned in the C99 updated language standard. If you don't have a C99-compliant compiler and library at your disposal, you can typedef these constants yourself. Now that C99 has standardized their names, we strongly recommend that you make your fixed-size type names comply. [more]

central processing unit

n. The part of a processor that executes instructions.

checksum

n. A numerical check value calculated from a larger set of data. A checksum is most often used when sending a packet of data over a network or other communications channel. One checksum formula is a simple addition, with overflow ignored, wherein the bytes of the packet are added together into a variable of a fixed size/width (say, 16 bits) as they are sent. The checksum is typically sent at the end of the packet and used at the receiving end to confirm the integrity of the preceding data. [more]

See also CRC, Internet checksum.

compiler

n. A software-development tool that translates high-level language programs into the machine-language instructions that a particular processor can understand and execute. However, the object code that results is not yet ready to be run; at least a linker or link-step must follow.

C compiler steps

A simplified example, showing the results of compiling the contents of two source modules into corresponding object files

complex instruction set computer

n. Describes the architecture of a processor family. Abbreviated CISC. So-called CISC processors generally feature variable-length instructions and multiple addressing formats and have a small number of general-purpose registers. Intel's 80x86 family is the quintessential example of CISC.

Contrast with reduced instruction set computer.

complex programmable logic device

n. A larger, more capable PLD. Abbreviated CPLD. Each CPLD typically consists of several programmable logic blocks plus a matrix of programmable interconnecting paths. CPLDs can be used to create larger and more advanced logic circuits than PLDs but are generally smaller and less flexible than FPGAs. [more]

CPLD block diagram

A CPLD is typically a single-chip collection of PLDs plus a switch matrix

context

n. The current state of the processor's registers and flags. The context must be saved when an interrupt occurs or when an operating system selects a new task to run and preempts the previously running task.

context switch

n. The process of switching from one task to another in a multitasking operating system. A context switch involves saving the context of the running task and restoring the previously saved context of the other. The piece of code that does this is necessarily processor specific.

copyright

n. A type of intellectual property protection for software that protects the unique structure, sequence, and organization of the product, in source code and/or binary form.

See also patent, trade secret.

copyright infringement

n. When a product copies an expression of structure, sequence, and organization (SSO) protected by a copyright, the product is said to "infringe" the copyright. [more]

counter/timer

n. A common peripheral that counts either external events (counter mode) or processor cycles (timer mode). Virtually every microcontroller has one or more on-board counter/timers. Most operate in a vast number of modes; some have dozens of control registers (Motorola's TPU has more than 50).

Counter/timer hardware has more uses than can be imagined, including as input devices to count events, as outputs to drive pulse-width modulation devices, and as internal units to create regular interrupts for RTOS context switching. [more]

counting semaphore

n. A type of semaphore with more than two states. A counting semaphore is typically used to track multiple resources of the same type. An attempt to take a counting semaphore is blocked only if all of the available resources are in use.

See also semaphore.

CRC

(as letters) abbr. See cyclic redundancy code. [more] [even more]

critical section

n. A sequence of instructions that must be executed in sequence and without interruption to guarantee correct operation of the software. If the instructions are interrupted, a race condition might occur.

cross-compiler

n. A compiler that runs on a different platform from the one for which it produces object code. Often even the processor architecture/family of the host and target platforms differ. [more]

cybersecurity

n. Also known as computer security, the field of cybersecurity concerns protection of critical and or personal information through the use of cryptographic protocols and data encryption.

Request an Expert

(866) 653-6233

Barr Group logo
Call us

Expert Services

  • Source Code Review Services
  • Expert Witness Directory
  • Reverse Engineering Services
  • Expert Reports & Testimony
  • How-To Technical Articles
  • Engineering Services

Latest Insights

  • Payment Processing and e-Payments Fraud
  • Albert Einstein Expert Witness
  • Medical Device Litigation and FDA 510(k)
  • Personality Traits of the Best Expert Witnesses

Website contents copyright © 2012-2025 by Barr Group. | Barr Group's logo is a U.S.-registered ® trademark.

SITEMAP  |  PRIVACY