Giter Site home page Giter Site logo

silica's Introduction

silica

⚠️ EXPERIMENTAL C++ hardware definition header generator using SVD files

Also contains some useful headers for embedded development

Usage

⚠️ This section is incomplete

Create a file named silica.json inside a desired output folder (in this example, the output folder is example). Example follows.

{
    "default_env" : "stm32f0x2",
    "envs" : {
        "stm32f0x2" : {
            "silica_version" : "~> 0.1.0",
            "input_file" : "STM32F0x2.svd",
            "features" : {
                "copy_includes" : false
            }
        }
    }
}

Then

    crystal run ./src/silica.cr -- example

Development

TODO:

  • Field support
    • Field value enumerations
    • Field masks
    • Field offsets
    • Field widths
    • Common values within a register (:warning: WIP)
  • Helper methods
  • Full std::hardware TR implementation
  • Doc generation (:warning: WIP)
  • Custom IRQ handlers
  • Configuration options (:warning: WIP)
    • Feature support
      • Optionally turn off field widths, masks, offsets and common values
      • Docs
      • Copy includes
  • Examples
  • Tests
  • Proper logging
  • Fix C++ warnings
  • Remove unnecessary XPaths
  • Exception handling
  • Peripheral groups support

Contributing

  1. Fork it (https://github.com/unn4m3d/silica/fork)
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create a new Pull Request

Contributors

silica's People

Contributors

unn4m3d avatar

Stargazers

 avatar Skripnikov M.V. avatar Anatolii Cherednichenko avatar

Watchers

 avatar

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.