• Stars
    star
    967
  • Rank 47,309 (Top 1.0 %)
  • Language
    Python
  • License
    Apache License 2.0
  • Created over 9 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Aggegration of ARM Cortex-M (and other) CMSIS SVDs and related tools

CMSIS-SVD Repository and Parsers

CI Results

What is this?

This repository seeks to provide value to developers targetting ARM platforms in two main ways:

  1. Provide a convenient place to access and aggregate CMSIS-SVD hardware descriptions from multiple sources.
  2. Provide parsers that make code generation and tooling based on SVD easier to build. Most parsers simply parse a provided SVD file and turn it into a data structure more easily used in that language.

What is CMSIS-SVD

ARM provides the following description of CMSIS-SVD (System View Description)

The CMSIS System View Description format(CMSIS-SVD) formalizes the description of the system contained in ARM Cortex-M processor-based microcontrollers, in particular, the memory-mapped registers of peripherals. The detail contained in system view descriptions is comparable to the data in device reference manuals. The information ranges from high-level functional descriptions of a peripheral all the way down to the definition and purpose of an individual bit field in a memory-mapped register.

The original vision of ARM appears to have been to aggregate SVDs from various sources into a single repository accessible via ARM's CMSIS Website. Currently, however, this site fails to provide a comprehensive repository of CMSIS SVDs. The SVDs in this repository have been previously aggregated as part of the Eclipse Embedded Systems Register View plugin. This repo builds on the shoulders of the developers of EmbSysRegView and seeks to provide a repository of SVDs that is more accessible to a greater number of other projects.

How Can the CMSIS-SVD Be Used

The generic description of each MCUs CPU and hardware registers is very valuable when generating code that can be used for talking to specific target hardware. In fact, much of the code in parts of CMSIS itself are generated based on the SVD. ARM distributes an executable that does this transformation (SVDConvert.exe).

The information can also be used for building debug tooling, test infrastructure, or whatever else.

Contributing

Contributions from Silicon Vendors, as well as community members, are greatly appreciated. Please feel free to create an issue on Github and/or submit Pull Requests with proposed changes to the repository. These will be reviewed and pulled in if deemed appropriate.

License

The licensing for the contents of this repository is dependent on the directory in which files are located as well as the contents of the files themselves. If in doubt, the first parent directory of a file having license information is the license that applies. In all cases, if the file itself has a license specified, that applies.

In general, the following rules apply:

  • Under data, the license from each Vendor is provided along with the SVDs from that vendor. Please review this license before use of the SVDs contained therein. Look for files named the following for license information:
  • All other code is licensed under the terms of the Apache License v2.0 (See LICENSE-APACHE).

If you encounter an issue with the content of this repository or have a question, please do not hesitate to create an issue on Github.

More Repositories

1

linux-programming-interface-exercises

My solutions to The Linux Programming Interface Exercises
C
311
star
2

putio-sync

Python daemon that automatically downloads files from put.io
JavaScript
29
star
3

dbus-python

(DEPRECATED! support now exists upstream) Fork of python-dbus with support for installing via pip
C
26
star
4

rust-systems-programming

Systems Programming in Rust
Rust
21
star
5

rust-pstree

An implementation of pstree in rust based on the exercise from TLPI
Rust
15
star
6

zinc-example-lpc1768

Example project showing use of Zinc from external project
Rust
13
star
7

bugger

Simple Python debugging tools you can hook into your application
Python
10
star
8

lcoap

Pure Lua CoAP Protocol Implementation and Client
Lua
10
star
9

python-browser-console

Get an interactive python console to a live, running app easily
JavaScript
9
star
10

lego-nxt

A collection of source examples, primarily in NXC (a c-like language for the platform).
8
star
11

simpleds

A collection of clean datastructures implemented in simple C
C
7
star
12

mlcollection

A collection (library) of machine learning algorithms and utilities
Python
6
star
13

rust-lpc1768-examples

A collection of rust examples running on the MBED LPC1768 with application board
Rust
6
star
14

java-algorithms

A Collection of Classic Algorithms, Implemented in Java
Java
5
star
15

pygoogleearth

Python Bindings for Google Earth COM API
Python
4
star
16

rust-connman

Rust Connman Client
Rust
3
star
17

Anvil

A Library for making access to Kiln API Simple
Python
3
star
18

rust-gpio

Traits for accessing GPIO devices across all systems from Rust
Rust
3
star
19

learning-python

Implementation of the Excercises in Learning Python (2nd Edition)
Python
2
star
20

mango-website

Mango Website Source Repo
JavaScript
2
star
21

mango-movie-manager

Mango is an open source desktop movie management application written in Java (so it is cross-platform).
2
star
22

sudoku-solver

A sudoku puzzle solver written in python
Python
2
star
23

rustbone

Yocto-based distribution for running Rust on the BeagleBone Black
Python
2
star
24

dnav

Directory Navigator helps you quickly navigate to directories by name
Python
2
star
25

smartthings-edge-drivers

Miscellaneous Edge Drivers, Maybe Something More Ambitious Eventually
Lua
2
star
26

desktop-hardware-monitor

Really simple server for exposing stuff life CPU Temp, Free Memory, etc. Via Restful API
Python
1
star
27

pydev-source-alignment

Source Code Alignment Extensions for Pydev
Python
1
star
28

mbed-hal-k22f

mbed HAL for Freescale K22F MCUs
C
1
star
29

rust-xbee

Library for talking to XBee devices written in pure rust
Rust
1
star
30

wzr-hp-g300nh2-openwrt-flasher

Shell
1
star
31

realtime-schedulability-tool

Analyze a set of tasks to determine if they can be feasibly scheduled using a PFP scheduler (deadline monotonic)
Python
1
star
32

target-frdm-k22f-gcc

yotta target description to compile using GCC for the FRDM-K22F dev board.
CMake
1
star