MicroC Overview

MicroC Overview

 

MicroC is a graphical software design and implementation tool that supports the development of embedded real-time software for micro-controllers. The focus of the tool is to support the process of developing software pieces while targeting small micro-controllers. The support to design-level debugging, testing – both interactively and in batch mode and analysis of runs is implemented through various instrumentation of the generated code. The output of the tool is a compact, readable ANSI C code, with support to local extensions of the standard C, as well as automatically generated design documentation. MicroC uses an Operating System Implementation (OSI) definition to describe the implementation of the software and hardware target environment for a given design. Any one OSI might support only a subset of the design concepts referred to above. As a general rule, the tool tries to make use of any such design aspect/concept it encounters in the model. If the given OSI has no support for that design aspect/concept, an error message is produced.

Code is generated directly within MicroC based on a graphical model that represents the full functionality of the application being designed. There are four basic graphical tools used to define the application. These include:

Each graphical tool has an associated graphical design language that allows the designer to be very precise in defining the functional role of each graphical element. The graphical elements can be supplemented by linking in user supplied C and/or Assembly Language code.

All of the graphical elements are stored in an internal database that contains associated data about each element. The Data Dictionary tool is used to define and manage the various data elements as well as various other properties of both the textual and the graphical entities in the model.

Properties can be applied to data or to tasks. Data properties are typically defined as Exact Type, although integer types can be BYTE-defined for as appropriate for specific system architectures. Task properties are defined with a Task Priority in the model.

MicroC also includes a Check Model utility that serves as a model checker (somewhat like a precompiler) to detect and warn of incomplete definitions as well as common design pitfalls to help reduce development time and increase the quality of the generated code.