Main Page
From UcgnWiki
(Xtivbhqi) |
(→Introduction) |
||
Line 1: | Line 1: | ||
- | + | = Introduction = | |
- | + | The Unified Codegeneration project (UCGN) provides an open-source framework for the generation of high quality source code which is suitable for safety-critical applications and certification (e.g ([http://en.wikipedia.org/wiki/DO-178B DO-178B])). Currently a Simulink and Stateflow front-end and a C-language back-end are included. | |
- | + | Some of the strengths of UCGN: | |
+ | * Clearly readable source-code | ||
+ | * Separation of functionality and parameters ("tunable parameters") | ||
+ | * Robust data storage (compile-time static structures in favor of pointer run-time constructs) | ||
+ | * Clear software architecture, direct correspondence to the model architecture | ||
+ | * Separation of reusable library code | ||
+ | * Simplicity and uniformity of software interfaces (for testing etc.) | ||
- | + | The following features are supported by the Simulink/UCGN | |
+ | * Discrete single-rate Simulink models and libraries | ||
+ | * Block library with 50+ standard Simulink blocks | ||
+ | * Periodic, condition-driven Stateflow charts (including flowgraphs, loops) | ||
+ | * Structured data types through bus objects | ||
+ | * Simulink native enumerations | ||
- | |||
- | + | [[Introduction]]: Project background, overview | |
- | + | = News = | |
+ | |||
+ | June 18, 2010: This project just came online... so bear with us as we keep adding documentation to this Wiki | ||
+ | |||
+ | June 21, 2010: Released the UCGN Simulink Distribution 1.0.1, including a "Hello World" Simulink example | ||
+ | |||
+ | June 28, 2010: Released SimulinkUcgnDistribution_1.0.2.zip, fixing two bugs (expression precedence and array copy indexing) | ||
+ | |||
+ | July 7, 2010: Released 1.0.3 which contains some minor bug fixes and robustness additions. Also, environment variables (with the syntax %VAR%) can now be used in the working directory property of the project xml files. | ||
+ | |||
+ | February 1, 2011: Released 1.0.4, enabling the use of Simulink enumerated types in Simulink and Stateflow models. This release also contains several bug fixes. | ||
+ | |||
+ | February 17, 2011: Released 1.1.0, the use of flowgraph loops in Stateflow is now enabled. | ||
+ | |||
+ | May 27, 2011: Released 1.1.1, bundling some smaller bugfixes. | ||
+ | |||
+ | August 30, 2011: Released 1.1.2, just some smaller bugfixes | ||
+ | |||
+ | March 29, 2012: Released 1.1.3, bugfixes and stability; also, updated to Simulink's new way of handling of Lookup/Interpolation, added sizeof operation to Stateflow | ||
+ | |||
+ | = SourceForge = | ||
+ | |||
+ | Visit the UCGN project [http://sourceforge.net/projects/ucgn on SourceForge]. | ||
+ | |||
+ | Download the latest UCGN Simulink [http://sourceforge.net/projects/ucgn/files/ distribution]. | ||
+ | |||
+ | |||
+ | = Semantic Meta-model = | ||
+ | |||
+ | The Semantic Meta-model is the interface to the UCGN Code-generation. The meta-model uses XML/XSD to describe an abstract higher-order programming language, with object oriented features. | ||
+ | |||
+ | [[Semantic Meta-model]]: Features, concept | ||
+ | |||
+ | |||
+ | = Model Transformation: Simulink = | ||
+ | |||
+ | Currently included with the project is a Simulink model transformation layer. Matlab m-files are provided to export Simulink models and libraries into a domain-specific XML representation. The model transformation layer, which is implemented in Java, then takes this XML-model as an input and transforms it into a Semantic Model, for which the UCGN framework can generate source code. | ||
+ | |||
+ | [[Model Transformation: Simulink]]: Overview, features, constraints, modeling guide | ||
+ | |||
+ | [[Simulink Supported Blocks]] ([[Simulink_Supported_Block_Details|details]]) | ||
+ | |||
+ | |||
+ | = Tutorials = | ||
+ | |||
+ | [[Simulink UCGN Hello World | Simulink UCGN "Hello World"]] step by step example | ||
+ | |||
+ | |||
+ | = Developers' Corner = |