Microcontroller-based Design and Embedded Applications
We can practically take a napkin concept drawing, design
the hardware, write the code (mix of C++, C and Assembly), layout the
board, fabricate, test, and hand you a prototype. We can also help you define the end product from your wish-list.
Microcontroller-based
and Embedded designs
are straightforward. Most processors have a slew of integrated peripherals such as
SCI, SPI, IIC, Timers, Clock generators, Flash, and Ram on
the same silicone. Once
the application is identified, it is just a matter of selecting the
right microcontroller, and making the peripherals function with the
internal, or external supporting hardware.
Initially, a functional block diagram provides a visual aid to identify
the major block of the overall process. Each major block is subdivided
for more detailed depiction of each major function. The I/O for each
block is identified, and the interrelationship between Functions is
defined. A well planned, detailed initial description facilitates the
hardware design and code development. The firmware is written using
a tool-set. This tool-set is composed of a compiler, assembler, and Linker
to produce object code. On-chip memory is usually limited so code
efficiency is a must. The object code is loaded in the processor or
microcontroller flash memory using a programming pod via the JTAG
interface. Real-time Operating Systems (RTOS) are available from many
manufacturers that provide libraries of functions, and methods to speed
up code generation. However, they add to the application footprint in
memory, have high initial cost, and normally require some kind of
royalty per device. Efficient code can be developed without RTOS
with little effort in understanding the processor/microcontroller
on-chip peripheral. Once you have written the functions that operate the
on-chip devices, you can develop your own library of reusable code. MC9S08®,
Coldfire®, and i.MX® families are examples of Microcontrollers available
from NXP®.

PE-Micro® provides programming pods for many systems.
Many reputable semiconductor manufacturers produce microcontrollers and
microprocessors of various sizes (data bus, address bus, internal
memory), and architectures. Choice of the microprocessor/microcontroller
heavily depends on your application. 8, 16, 32, and 64-bit processors imply
address space, and instruction size. Also, the choice of architecture
(e.g. RISC) makes an impact on code development. RISK (Reduced Instruction
Set Computing) provides the user many advantages, however care must be
exercised specifying "char", "integer", "long", and "double" type
variables when using compilers. In RISC architecture each step adds
x-number of bits depending on their type, where x is the processor
bit-structure (16, 32, 64, etc.).