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' '{}' +