Coder Social home page Coder Social logo

onewingedshark / asn1scc Goto Github PK

View Code? Open in Web Editor NEW

This project forked from maxime-esa/asn1scc

0.0 2.0 1.0 5.87 MB

ASN1SCC: An open source ASN.1 compiler for embedded systems

License: Other

C# 1.05% GAP 0.67% F# 16.11% Batchfile 0.01% Ada 36.69% Shell 0.27% Makefile 0.28% Python 0.26% C 44.00% CSS 0.12% HTML 0.54%

asn1scc's Introduction

Executive summary

This is the source code of the ASN1SCC compiler - an ASN.1 compiler that targets C and Ada, while placing specific emphasis on embedded systems. You can read a comprehensive paper about it here (PDF), or a blog post with hands-on examples here. Suffice to say, if you are developing for embedded systems, it will probably interest you.

Compilation

Common for all OSes

First, install the Java JRE. This is a compile-time only dependency, required to execute ANTLR.

Then depending on your OS:

Under Windows

Install:

  1. A version of Visual Studio with support for F# .

  2. Open Asn1.sln and build the Asn1f2 project (right-click/build)

Under OSX

  1. Install the Mono MDK.

  2. Execute ASN1SCC's ./build.sh - and the compiler will be built.

Under Linux

  1. Install the mono development tools. Under Debian Jessie for example (as of Sep/2014):

    $ mono -V
    Mono JIT compiler version 3.2.8 (Debian 3.2.8+dfsg-7)
    Copyright (C) 2002-2014 Novell, Inc, Xamarin Inc and Contributors.
            TLS:           __thread
            SIGSEGV:       altstack
            Notifications: epoll
            Architecture:  x86
            Disabled:      none
            Misc:          softdebug 
            LLVM:          supported, not enabled.
            GC:            sgen
    
  2. Use the fsharpc compiler inside your distro, or just checkout and compile the Open Source F# compiler...

    git clone https://github.com/fsharp/fsharp && \
        cd fsharp && \
        ./configure && \
        make && sudo make install 
    
  3. Execute 'xbuild' in ASN1SCC directory

Usage

The compiler has many features - it is documented in Chapter 10 of the TASTE manual, and you can see some simple usage examples in a related blog post.

You can also read about how the compiler has been used in the TASTE project to target safety-critical systems - and maybe also check out the official TASTE project site.

Credits

George Mamais ([email protected]), Thanassis Tsiodras ([email protected])

Changelog

3.2.75

Removed the pragma Export in the Ada backend when using ASN.1 constants

3.2.61

Minor bugfixes and improvements of the custom Stg backends New rename policy option New VDM backend

3.2.3

Added error message for unsupported string and UTCTime types

3.2.2

Various minor bugfixes Improvements of ICD backend for ACN

3.2.0

Minor API change in ICD backends - templates now contain code to customize the formatted output of the grammar.

3.1.4

When adding fields to a SEQUENCE in an ACN model, the comments are now propagated to the ICD backends.

3.1.1/2/3

Various minor bugfixes, in particular related to the handling of cyclic dependencies

3.1.0

  • Change in the API of the ICD backends: the comments are not only sent as a string but also as a list, allowing to extract the first line
  • Added a Latex template for ICDs (in contrib) / Experimental

asn1scc's People

Contributors

maxime-esa avatar ttsiodras avatar usr3-1415 avatar hcorg avatar echatzig avatar realpsyence avatar

Watchers

James Cloos avatar  avatar

Forkers

whitten

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.