silica

SVD-to-C++ generator

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 (⚠️ WIP)
  • Helper methods
  • Full std::hardware TR implementation
  • Doc generation (⚠️ WIP)
  • Custom IRQ handlers
  • Configuration options (⚠️ 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

Repository

silica

Owner
Statistic
  • 3
  • 0
  • 0
  • 0
  • 3
  • about 3 years ago
  • September 16, 2021
License

MIT License

Links
Synced at

Thu, 07 Nov 2024 06:00:53 GMT

Languages