1-800-852-4145 info@gandgtech.com

G&G leading in Real Time Embedded Systems programming, development, microprocessor design, device driver development, outsourcing, DSP (Digital Signal Processing) for VxWorks, Intel, Motorola, Embedded Linux, pSOS platforms using Assembler, C, C++, Java/J2ME


Embedded Systems

G&G's real time embedded systems programming group is for outsourcing all your device driver development, microprocessor design and electronic system design needs. We have experienced engineering resources with an in-depth knowledge in micro-controller, mixed signal, DSP (Digital Signal Processing) and analog systems to deliver a turnkey electronic microprocessor design according to your specifications. Our real-time embedded systems programming and development outsourcing group specializes in various device driver development and micro-controller, microprocessor designs. Since G&G has extensive micro processor, controller firmware and software development expertise and we are not closely related to any particular microprocessor vendors G&G would be your best choice for outsourcing and development on a range of microprocessors, micro-controllers, and device driver platforms including, but not limited to: Pentium family, PowerPC, Intel X86, 8051 / 8052 family (Intel 80186 / 80286 or Intel 80386 / 80486 family of devices), Motorola 68020 / 68322 family, Motorola 68HC11 and 68HC08 family, PowerPC, National Semiconductor COP8 and CR16 families and Texas Instruments MSP430 family, Atmel AVR micro controller family, Microchip PIC micro controller family and more using C, C++, Assembler, Java, VxWorks, Object Oriented design, DSP. We develop, test and debug firmware, hardware, and software according to a specification reviewed and approved by you and we deliver the fully documented source code and test result documentation at the end of a project. The targeted realtime embedded systems are mostly embedded control systems for cellular and mobile phones, medical equipment, laboratory test equipment, telecommunication systems, police, fire, emergency communications equipment (including 911 systems), robotic equipment, control panels and manufacturing monitoring of assembly lines.

The following applications for real time embedded system programming and development are generally addressed by G&G:

  • Telecommunications
  • Real time Wireless & mobile applications
  • Appliances
  • Machine to machine (m2m)
  • Automotive
  • Industrial automation
  • Biometrics
  • Security
  • Consumer electronics
  • Gaming
  • Printing
  • Retail
  • Biotechnology
  • Web interfaces to devices
  • Protocol stacks
  • Protocol translation
  • Test equipment
  • Sensors (incl. Temperature sensing)
  • Digital Signal Processing(DSP)
  • Image processing
  • Environmental control
  • Real-time kernel development
  • Bus translations
  • Advanced control systems

Programming languages for real time embedded system programming and development:

  • C / C++
  • Assembler
  • Java
  • Visual C++
  • Visual Basic
  • Ada
  • Fortran
  • LabView
  • MatLab
  • Jovial
  • OOAD/OOP (Object Oriented Design & Programming)
  • XProgramming
  • single board computer SDKs
  • Rapid Applications Development (RAD)
  • Structured Analysis for Real-Time Software

Embedded OSs and platforms:

  • Windows CE
  • Unix Solaris
  • BSD Unix
  • VxWorks
  • pSOS+
  • Embedded Linux
  • QNX Neutrino
  • Motif
  • Mil-Stds

A primer on real-time embedded system design and programming:

As embedded systems have gone mainstream in recent years, many industries are trying to develop real time systems and embedded applications for their various systems and devices. The very basic skills of writing an embedded application include writing reentrant code, learning to use C's volatile keyword properly, and interacting with peripheral control and status registers through memory-mapped I/O, structs, and bitfields. In addition, the basic issues like interrupts, watchdog timers, endianness, and determinism are considered, and the details behind those issues should be discussed and understood.

Real time Java Technology Overview
Java is a much nicer programming language than most, and it would be great if many programmer could start using it today. But the reality is that Java is not the best choice in all situations. Real time embedded systems, in particular, often have limited resources that make the use of Java unreasonable or unwise. A good programmer should compare the Java language to C and C++, try to have a detailed understanding of execution requirements, including the internals of a typical Java Virtual Machine, and understands alternative execution techniques, such as ahead-of-time compilation and Java processors. Programmers should be aware of various issues like garbage collection, determinism, and mixed-language programming.

Java 2 Micro Edition (J2ME)
Since 1999, Java has come in three sizes: standard, enterprise, and micro. The Java 2 Micro Edition (J2ME) is aimed squarely at embedded systems, which have far more resource constraints than other types of computers. Good embedded programmers should understand the details of J2ME, its two configurations and numerous profiles, then focus on the CLDC configuration and MIDP profile. The K virtual machine (KVM) should also be considered in detail, with an emphasis on its customization for specific needs. Because KVM is modular, a 16-bit processor with 128KB of ROM and 32KB of RAM is all that is needed to run many Java programs. In that regard, J2ME represents a significant breakthrough for the use of Java in small embedded systems.