Cross Development Tools for Embedded Systems:
Cross Development Tools for various embedded processors
We have sucessfully finished 5 projects and delivered complete integrated cross development tool chains for various embedded processors (RISC MCU, VLIW DSP, 2 RISC DSPs). Some target processors had ASP (Application Specific Programmable) type, which provides tailored H/W and S/W partitioning for customers, but makes cross tools development quite challenging because the tools should be configurable by end-user without recompilation (i.e. user can add new instructions or/and HW units on-the-fly). In the projects mentioned, our group has developed the following tools for various target architectures:
- Cycle Accurate Simulators
- Macro Assemblers
- Library Managers
- Optimizing C Compilers (including DSP-C/Embedded-C extensions)
- Source Level Debuggers
- Various Types Profilers
- Program Analysis and Statistics Tools
- All the tools are integrated into Integrated Development Environments that provide application programmers with full set of advanced programming and debugging features
Some tool chains support instruction set customization, i.e. user can extend processor instruction set with application specific instructions (coprocessors in real life) and all the tools will understand the modified system starting from Simulator to Assembler and even syntax highlighting for new instructions in the IDE editor.
Cross Development Tools Construction Framework
The project involved development of a framework that supports automated cross development tools construction. The framework is based on the Architecture Description Languages concept. Target hardware model is specified using a special language developed in ISP RAS. Automatic source generators produce ready SW tools components based on the specification in this language. Reusable parametrized IP blocks are also used in addition to automatic source generation. Manual optimizations are performed to achieve maximum tools effectiveness (e.g. high simulator speed) and fine tuning for target hardware specifics. The framework was commercially tested.
Dynamically Configured Assembler/Disassembler
Dynamically configured universal assembler/disassembler modules were developed as a result of this project. Dynamic means that assembler reads target instruction set description dynamically along with the input file in assembly language. This allows to reach high retargetability options. Then, these components became a part of the MetaDSP framework. UniAsm was used to develop an assembler for a commercial DSP and to create a GNU compatible assembler for ARM v4T architecture.
Object Database Emulating System on the Top Of Relations
This project was developed as a part of the former students practice work for Master Degree in Computer Science. The project task was to develop a framework environment for relational database systems (RDBMS) that allows pure object oriented access for storing Java objects. ODESTOR is an intermediary layer that wraps RDBMS and implements on its top the Object Oriented Database (OODBMS) API in conformance with ODMG 3.0 standard. Thus making OODBMS from RDBMS and allowing effective maintenance of both new Java applications and old legacy systems.