Name Last Update
..
include Loading commit data...
README.md Loading commit data...

README.md

CMSIS from Atmel Software Foundation (ASF)

The include files in the directory tree are copied from ASF. See https://spaces.atmel.com/gf/project/asf/frs/?action=FrsReleaseBrowse&frs_package_id=4 (dd. 2016-07-15 ASF version 3.30 was used)

The directory tree was copied "as is" and its structure is as follows:

cmsis
└── samd21
    ├── include
    │   ├── component
    │   ├── instance
    │   └── pio
    └── source
        ├── gcc
        └── iar

There is only one include file (per CPU variant) that should be included in the source code. For SAMD21 that is cmsis/samd21/include/samd21.h. But that will only work if the proper define is set. The define is named after the variant, for example __SAMD21J18A__. This define must be set in the Makefile.include of the board.

Be aware that if you want to make changes to any file in this tree that the changes will be lost when a new ASF release is going to be used.

Trailing White Space

Because of the whitespace check (dist/tools/whitespacecheck/check.sh) all the trailing white space had to be removed. Please take this into account when comparing to the original ASF distribution.

find include/ -name '*.h' -exec sed -i 's/\s*$//' '{}' +

LITTLE_ENDIAN

These include files define LITTLE_ENDIAN. But we think this is wrong. It seems more logical to let the compiler decide in which mode the ARM code is to be translated. In include/machine/endian.h there is already a define of LITTLE_ENDIAN (and BIG_ENDIAN) for a different purpose.

So, we decided to remove the define from the ASF CMSIS files. The command for it (running from this directory) is:

find include/ -name '*.h' -exec sed -i '/^#define\s\s*LITTLE_ENDIAN/d' '{}' +