Software Engineering

 

C++

Microcode is committed to an Object-Oriented methodology.

Using repeatable patterns, framework infrastructure, and c++ coding the development is very fast.

All projects are hardware and OS independent. The software remains clear and simple.

Every project is built as a root to other projects.

 

Microsoft .NET

 

.NET

Microsoft .NET environment provides vast amount of complete applications –

Operating system, Communication, Wireless, Security, GUI, disk storage, Data-Base, and much more.

Together with miniature PC like hardware, Windows become an important player in the embedded market –

Control systems, Management, GUI, etc.

 

Micro Processors

 

Micro Processors

Our main core of activity is Micro-Processors.

For years we deal with different projects, processors, tools and operating systems –

Texas Instruments, NXP-Freescale, Nios, FreeRTOS, GCC, IAR and much more.

The technology is a second nature – Infra structure, Hardware, Peripherals, Drivers, BSP.

Changing processor or tools is very easy at any time.

 

Window Simulation

 

Is it possible to complete the software before the hardware is ready? Sure yes.

Visual Studio

An in-house simulation framework allows us to test hardware components –

Registers, Timers, Interrupts, DMA, Inter-Processor communication, Shared memory, and more.

The code under simulation is the exact operational code. No duplications.

Windows simulation speeds up development up to 5 times faster.

 

Multi-Core processors

 

Multi-Core processor is the new embedded technology. It is a performance multiplier.

Adapting an existing software to a multi-processor architecture is very difficult.

Multi-Core

The software demands parallelism. This is a new field that requires new expertise.

Microcode designed and developed systems with 6 and 8 cores and well prepared in this technology.

 

The ideal environment for developing multi-core software is under simulation.

Under the built-in simulator, every core runs independently. All cores can run concurrently.

Any core can be stopped, investigated, and continued at any moment.

 

Internet-of-Things (IoT)

 

Internet-of-Things

Wireless sensors are everywhere – these are the Bluetooth-Low-Energy (BLE).

Operated on a coin battery and accessible on any mobile phone this technology will dominate the coming future.

The wireless media is very software centric - Embedded and Mobile.

The IoT has also a broader characteristic; a Cloud connectivity.

With IPv6 protocol (6LowPAN), every sensor is accessible on the wide internet.

 

Real-Time OS

 

The most popular Real-Time operating systems are now free (*).

Real-Time OS

Among are FreeRTOS, Texas-Instruments TI-RTOS, Freescale MQX, Keil Rtx, and others.

Projects immediately get Tcp/Ip, USB, and File system support.

Large and sophisticated software can be developed on small and inexpensive processors.

 

For projects that cannot use 3rd party software,

Microcode provides an in-house Task-Scheduler (2K) to preserve the Multi-Tasking scheme.

 

Matlab

 

Signal analysis is usually developed under Matlab.

Matlab

Once the algorithm is completed it is re-written to an embedded DSP.

The process is complex, expensive and prone to errors.

Microcode provides a solution in a form of Remote-Procedure-Call protocol.

During the development, the DSP code runs from within Matlab and remotely use the DSP processor.

This allows to develop both Matlab & DSP code concurrently and to test each other along the way.

 

Documentation

 

Doxygen

Code clarity is a major component in software management.

The code is documented to fully comply with Doxygen rules.

Everything up to the last field in any structure is documented.

The result is a human friendly HTML document that can be viewed by any browser.