How to get CMSIS for GCC and SAMD2x and SAMr21 under Linux?

Go To Last Post
26 posts / 0 new
Author
Message
#1
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Hi freaks,

 

I spend several evenings on how to find an official and managable way to get an pure CMSIS tree with

a "Linux only" environment.

 

What I have found so far is:

 

- CMSIS comes with the Atmel ARM Toolchain

- a standalone package of the Atmel ARM Toolchain/Atmel-CMSIS for Linux does not exist on the Web

- formerly there was a standalone package of Atmel ARM Toolchain/Atmel-CMSIS for Windows, but this seems to be gone

  at least I could not find it.

- Arduino 1.6.x comes with a ARM Toolchain but just a partial CMSIS (Arduino relevant MCUs)

- parts of the CMSIS tree seems to be included in the ASF standalone package, but as far as I have seen this is not complete.

 

So, imagine the scenario:

 - you have no friends who have Windows,

 - you are not willing to install Windows, just to get a CMSIS tree.

 

How do you would proceed ?

 

=== Please don't send me CMSIS trees via Mail/PM - meanwhile I have one -- but 1000 thanks for the empathy! ===

 

Regards, Axel.

 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

a standalone package of the Atmel ARM Toolchain/Atmel-CMSIS for Linux does not exist on the Web

Are you sure? Atmel certainly issue .tar.gz's for standalone avr-gcc and avr32-gcc so I'd be kind of surprised if they haven't also got the standalone for ARM

 

EDIT: I have to go out but have you explored here...

 

http://distribute.atmel.no/tools...

 

and perhaps specifically here:

 

http://distribute.atmel.no/tools...

Last Edited: Tue. Jun 2, 2015 - 02:46 PM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Clawson, thanks for the reply, I did not find it ... so if anybody knows a link, just post it here ... I could not find it, but maybe I'm too stupid.

 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

See my edits.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Top Tips:

  1. How to properly post source code - see: https://www.avrfreaks.net/comment... - also how to properly include images/pictures
  2. "Garbage" characters on a serial terminal are (almost?) invariably due to wrong baud rate - see: https://learn.sparkfun.com/tutorials/serial-communication
  3. Wrong baud rate is usually due to not running at the speed you thought; check by blinking a LED to see if you get the speed you expected
  4. Difference between a crystal, and a crystal oscillatorhttps://www.avrfreaks.net/comment...
  5. When your question is resolved, mark the solution: https://www.avrfreaks.net/comment...
  6. Beginner's "Getting Started" tips: https://www.avrfreaks.net/comment...
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Hm unfortunately there is no cmsis at http://distribute.atmel.no/tools/opensource/Atmel-ARM-GNU-Toolchain/4.8.4/

$ tar tvf arm-gnu-toolchain-4.8.4.371-linux.any.x86_64.tar.gz  | egrep -i "samr|cmsis"
$

Some patches in the download area at atmel.no but no CMSIS.

 

 

 https://launchpad.net/gcc-arm-embedded this the compiler I initially found, it is a freeware project, but why

should opensource people take the burden to host vendor code, just for Atmel the CMSIS tree is several MBytes.

 

So there is no CMSIS here too:

$ tar tvf gcc-arm-none-eabi-4_9-2015q1-20150306-linux.tar.bz2 | egrep -i "cmsi|samr"
$

 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 1

For CMSIS stuff you need to download ASF (still available as a standalone ZIP, I believe), disregard all the drivers stuff and just take header files. That will basically constitute all that Atmel has for CMSIS.

 

NOTE: I no longer actively read this forum. Please ask your question on www.eevblog.com/forum if you want my answer.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Another option might be to download the free 'Lite' version from Keil (an ARM company) - and see if you can take it from there ... ?

Top Tips:

  1. How to properly post source code - see: https://www.avrfreaks.net/comment... - also how to properly include images/pictures
  2. "Garbage" characters on a serial terminal are (almost?) invariably due to wrong baud rate - see: https://learn.sparkfun.com/tutorials/serial-communication
  3. Wrong baud rate is usually due to not running at the speed you thought; check by blinking a LED to see if you get the speed you expected
  4. Difference between a crystal, and a crystal oscillatorhttps://www.avrfreaks.net/comment...
  5. When your question is resolved, mark the solution: https://www.avrfreaks.net/comment...
  6. Beginner's "Getting Started" tips: https://www.avrfreaks.net/comment...
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

ASF is online here:

 

https://github.com/avrxml/asf/tr...

 

(that being the CMSIS stuff in particular).

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 1

clawson wrote:
ASF is online here:
I would not use header files from 6 months ago. They get fixed all the time, so always try to use the latest version.

NOTE: I no longer actively read this forum. Please ask your question on www.eevblog.com/forum if you want my answer.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 1

awneil wrote:

Another option might be to download the free 'Lite' version from Keil (an ARM company) - and see if you can take it from there ... ?

There is no Keil for Linux and the header files are packed and not available without installation.

 

Also, I think compiler vendors abandoned that idea to keep 100's of megabytes of auto-generated headers from various companies. I see that in the recent IAR compilers you need to download support packages for MCUs you are interested in.

NOTE: I no longer actively read this forum. Please ask your question on www.eevblog.com/forum if you want my answer.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

http://www.atmel.com/webdoc/atme...

In case if you have deleted any files in cmsis folder and want to revert it back or if you have changed the device, just Right Click the Project and click "CMSIS Update from Atmel" to get the appropriate files.

I wonder if that could be captured to see what it is getting and from where...

 

 

 

You can put lipstick on a pig, but it is still a pig.

I've never met a pig I didn't like, as long as you have some salt and pepper.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

alexru wrote:
There is no Keil for Linux and the header files are packed and not available without installation.

Yes - true. 

 

It would mean installing on a Win machine, and then taking the files from there.

 

It was just an idea.

Top Tips:

  1. How to properly post source code - see: https://www.avrfreaks.net/comment... - also how to properly include images/pictures
  2. "Garbage" characters on a serial terminal are (almost?) invariably due to wrong baud rate - see: https://learn.sparkfun.com/tutorials/serial-communication
  3. Wrong baud rate is usually due to not running at the speed you thought; check by blinking a LED to see if you get the speed you expected
  4. Difference between a crystal, and a crystal oscillatorhttps://www.avrfreaks.net/comment...
  5. When your question is resolved, mark the solution: https://www.avrfreaks.net/comment...
  6. Beginner's "Getting Started" tips: https://www.avrfreaks.net/comment...
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 1

There is really no need to do any of this. Just download http://www.atmel.com/tools/avrso... and all the header files will be there.

NOTE: I no longer actively read this forum. Please ask your question on www.eevblog.com/forum if you want my answer.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Hi alexru,

 

the asf standalone package misses some header files (a), I have seen that sam.h and samr.h are missing. Even the file structure is

different than the one in the ARM-GCC package that comes with AS6 (b)

 

a) causes to include MCU specific header files in the user code (that has to be maintained ervery time a new MCU appears on the horizont)

b) causes different -I switches

 

So it looks that we stuck with the option "grep CMSIS from AS6 on a windows platform" - bad luck for the penguins and Apple users.

 

I wish there were something portable like avr-gcc/avr-libc and friends for ARM.

 

 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 1

That is really strange. The packages have to be identical, that's the idea. It might be a bug, because if this is intentional, then ASF is even worse than I thought it was, and that's really hard to achieve :)

 

For a selected number of MCUs I have starter projects that include header files, which I try to keep up to date https://github.com/ataradov/mcu-...

 

I usually just create a dummy application from AS wizzard whenever I have access to a Windows machine and just rip off the files from there.

NOTE: I no longer actively read this forum. Please ask your question on www.eevblog.com/forum if you want my answer.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 1

As far as I can see they are the same. CMSIS parts headers end on series header, like samd21.h. I don't see sam.h and samr.h files in projects created from the studio.

 

There is no real "file structure" in the projects created from AS. They are a mix of parts pulled from different places. Standalone version has a file structure, of course. There are good reasons for that. For example Makefiles are hand-crafted in the standalone version and generated from the project file in AS. But I don't see why that would be a problem, you can use standalone version without even knowing that there is some other version.

 

Also, different liker switches are to be expected for different devices, am I missing something here?

 

 

NOTE: I no longer actively read this forum. Please ask your question on www.eevblog.com/forum if you want my answer.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

I downloaded the link Alex gave...

 

~/windows/xdk-asf-3.24.1$ find . -name sam\*.h | grep -i cmsis
./sam/utils/cmsis/sam4l/include/sam4ls8a.h
./sam/utils/cmsis/sam4l/include/sam4lc8b.h
./sam/utils/cmsis/sam4l/include/sam4ls2b.h
./sam/utils/cmsis/sam4l/include/sam4ls4c.h
./sam/utils/cmsis/sam4l/include/sam4lc2a.h
./sam/utils/cmsis/sam4l/include/sam4ls4b.h
./sam/utils/cmsis/sam4l/include/sam4ls8b.h
./sam/utils/cmsis/sam4l/include/sam4lc4c.h
./sam/utils/cmsis/sam4l/include/sam4lc2b.h
./sam/utils/cmsis/sam4l/include/sam4ls2a.h
./sam/utils/cmsis/sam4l/include/sam4ls2c.h
./sam/utils/cmsis/sam4l/include/sam4lc4a.h
./sam/utils/cmsis/sam4l/include/sam4lc8c.h
./sam/utils/cmsis/sam4l/include/sam4lc8a.h
./sam/utils/cmsis/sam4l/include/sam4ls8c.h
./sam/utils/cmsis/sam4l/include/sam4lc2c.h
./sam/utils/cmsis/sam4l/include/sam4l.h
./sam/utils/cmsis/sam4l/include/sam4lc4b.h
./sam/utils/cmsis/sam4l/include/sam4ls4a.h
./sam/utils/cmsis/sam3s8/include/sam3sd8c.h
./sam/utils/cmsis/sam3s8/include/sam3sd8b.h
./sam/utils/cmsis/sam3s8/include/sam3s8b.h
./sam/utils/cmsis/sam3s8/include/sam3s8.h
./sam/utils/cmsis/sam3s8/include/sam3s8c.h
./sam/utils/cmsis/sam3x/include/sam3x8e.h
./sam/utils/cmsis/sam3x/include/sam3x8c.h
./sam/utils/cmsis/sam3x/include/sam3x4c.h
./sam/utils/cmsis/sam3x/include/sam3x4e.h
./sam/utils/cmsis/sam3x/include/sam3xa.h
./sam/utils/cmsis/sam3x/include/sam3x8h.h
./sam/utils/cmsis/sam3x/include/sam3a8c.h
./sam/utils/cmsis/sam3x/include/sam3a4c.h
./sam/utils/cmsis/samg/samg51/include/samg51.h
./sam/utils/cmsis/samg/samg51/include/samg51g18.h
./sam/utils/cmsis/samg/samg53/include/samg53.h
./sam/utils/cmsis/samg/samg53/include/samg53n19.h
./sam/utils/cmsis/samg/samg53/include/samg53g19.h
./sam/utils/cmsis/samg/samg54/include/samg54.h
./sam/utils/cmsis/samg/samg54/include/samg54j19.h
./sam/utils/cmsis/samg/samg54/include/samg54n19.h
./sam/utils/cmsis/samg/samg54/include/samg54g19.h
./sam/utils/cmsis/samg/samg55/include/samg55j19.h
./sam/utils/cmsis/samg/samg55/include/pio/samg55j19.h
./sam/utils/cmsis/samg/samg55/include/pio/samg55g19.h
./sam/utils/cmsis/samg/samg55/include/pio/samg55g18.h
./sam/utils/cmsis/samg/samg55/include/pio/samg55n19.h
./sam/utils/cmsis/samg/samg55/include/pio/samg55j18.h
./sam/utils/cmsis/samg/samg55/include/samg55g19.h
./sam/utils/cmsis/samg/samg55/include/samg55.h
./sam/utils/cmsis/samg/samg55/include/samg55g18.h
./sam/utils/cmsis/samg/samg55/include/samg55n19.h
./sam/utils/cmsis/samg/samg55/include/samg55j18.h
./sam/utils/cmsis/sam3u/include/sam3u1c.h
./sam/utils/cmsis/sam3u/include/sam3u4c.h
./sam/utils/cmsis/sam3u/include/sam3u2c.h
./sam/utils/cmsis/sam3u/include/sam3u.h
./sam/utils/cmsis/sam3u/include/sam3u1e.h
./sam/utils/cmsis/sam3u/include/sam3u2e.h
./sam/utils/cmsis/sam3u/include/sam3u4e.h
./sam/utils/cmsis/sam3s/include/sam3s1b.h
./sam/utils/cmsis/sam3s/include/sam3s2a.h
./sam/utils/cmsis/sam3s/include/sam3s.h
./sam/utils/cmsis/sam3s/include/sam3s4b.h
./sam/utils/cmsis/sam3s/include/sam3s1c.h
./sam/utils/cmsis/sam3s/include/sam3s4a.h
./sam/utils/cmsis/sam3s/include/sam3s2c.h
./sam/utils/cmsis/sam3s/include/sam3s1a.h
./sam/utils/cmsis/sam3s/include/sam3s2b.h
./sam/utils/cmsis/sam3s/include/sam3s4c.h
./sam/utils/cmsis/sam4s/include/sam4s2a.h
./sam/utils/cmsis/sam4s/include/sam4s16c.h
./sam/utils/cmsis/sam4s/include/sam4sa16b.h
./sam/utils/cmsis/sam4s/include/sam4s8c.h
./sam/utils/cmsis/sam4s/include/sam4s4b.h
./sam/utils/cmsis/sam4s/include/sam4sd32b.h
./sam/utils/cmsis/sam4s/include/sam4sd16c.h
./sam/utils/cmsis/sam4s/include/sam4s8b.h
./sam/utils/cmsis/sam4s/include/sam4sd16b.h
./sam/utils/cmsis/sam4s/include/sam4sa16c.h
./sam/utils/cmsis/sam4s/include/sam4sd32c.h
./sam/utils/cmsis/sam4s/include/sam4s.h
./sam/utils/cmsis/sam4s/include/sam4s4c.h
./sam/utils/cmsis/sam4s/include/sam4s2c.h
./sam/utils/cmsis/sam4s/include/sam4s16b.h
./sam/utils/cmsis/sam4s/include/sam4s4a.h
./sam/utils/cmsis/sam4s/include/sam4s2b.h
./sam/utils/cmsis/sam4c/include/sam4c4c_1.h
./sam/utils/cmsis/sam4c/include/sam4c8c_0.h
./sam/utils/cmsis/sam4c/include/sam4c8c_1.h
./sam/utils/cmsis/sam4c/include/sam4c16c_1.h
./sam/utils/cmsis/sam4c/include/sam4c32c_1.h
./sam/utils/cmsis/sam4c/include/sam4c32e_1.h
./sam/utils/cmsis/sam4c/include/sam4c32c_0.h
./sam/utils/cmsis/sam4c/include/sam4c4c_0.h
./sam/utils/cmsis/sam4c/include/sam4c32e_0.h
./sam/utils/cmsis/sam4c/include/sam4c.h
./sam/utils/cmsis/sam4c/include/sam4c16c_0.h
./sam/utils/cmsis/sam4n/include/sam4n8a.h
./sam/utils/cmsis/sam4n/include/sam4n16b.h
./sam/utils/cmsis/sam4n/include/sam4n8c.h
./sam/utils/cmsis/sam4n/include/sam4n16c.h
./sam/utils/cmsis/sam4n/include/sam4n.h
./sam/utils/cmsis/sam4n/include/sam4n8b.h
./sam/utils/cmsis/sam4cm32/include/pio/sam4cmp32c.h
./sam/utils/cmsis/sam4cm32/include/pio/sam4cms32c.h
./sam/utils/cmsis/sam4cm32/include/sam4cms32c_0.h
./sam/utils/cmsis/sam4cm32/include/sam4cm32.h
./sam/utils/cmsis/sam4cm32/include/sam4cmp32c_1.h
./sam/utils/cmsis/sam4cm32/include/sam4cmp32c_0.h
./sam/utils/cmsis/sam4cm32/include/sam4cms32c_1.h
./sam/utils/cmsis/sam3n/include/sam3n4c.h
./sam/utils/cmsis/sam3n/include/sam3n4a.h
./sam/utils/cmsis/sam3n/include/sam3n0c.h
./sam/utils/cmsis/sam3n/include/sam3n2b.h
./sam/utils/cmsis/sam3n/include/sam3n0b.h
./sam/utils/cmsis/sam3n/include/sam3n2c.h
./sam/utils/cmsis/sam3n/include/sam3n2a.h
./sam/utils/cmsis/sam3n/include/sam3n4b.h
./sam/utils/cmsis/sam3n/include/sam3n.h
./sam/utils/cmsis/sam3n/include/sam3n1b.h
./sam/utils/cmsis/sam3n/include/sam3n1a.h
./sam/utils/cmsis/sam3n/include/sam3n00a.h
./sam/utils/cmsis/sam3n/include/sam3n0a.h
./sam/utils/cmsis/sam3n/include/sam3n00b.h
./sam/utils/cmsis/sam3n/include/sam3n1c.h
./sam/utils/cmsis/sam4cm/include/sam4cmp16c_1.h
./sam/utils/cmsis/sam4cm/include/sam4cms16c_1.h
./sam/utils/cmsis/sam4cm/include/pio/sam4cmp8c.h
./sam/utils/cmsis/sam4cm/include/pio/sam4cms8c.h
./sam/utils/cmsis/sam4cm/include/pio/sam4cms16c.h
./sam/utils/cmsis/sam4cm/include/pio/sam4cmp16c.h
./sam/utils/cmsis/sam4cm/include/pio/sam4cms4c.h
./sam/utils/cmsis/sam4cm/include/sam4cmp16c_0.h
./sam/utils/cmsis/sam4cm/include/sam4cms4c_0.h
./sam/utils/cmsis/sam4cm/include/sam4cms4c_1.h
./sam/utils/cmsis/sam4cm/include/sam4cm.h
./sam/utils/cmsis/sam4cm/include/sam4cms8c_0.h
./sam/utils/cmsis/sam4cm/include/sam4cms16c_0.h
./sam/utils/cmsis/sam4cm/include/sam4cmp8c_1.h
./sam/utils/cmsis/sam4cm/include/sam4cmp8c_0.h
./sam/utils/cmsis/sam4cm/include/sam4cms8c_1.h
./sam/utils/cmsis/sam4cp/include/sam4cp16b_1.h
./sam/utils/cmsis/sam4cp/include/sam4cp_1.h
./sam/utils/cmsis/sam4cp/include/sam4cp.h
./sam/utils/cmsis/sam4cp/include/sam4cp_0.h
./sam/utils/cmsis/sam4cp/include/sam4cp16b_0.h
./sam/utils/cmsis/sam4e/include/pio/sam4e16e.h
./sam/utils/cmsis/sam4e/include/pio/sam4e8c.h
./sam/utils/cmsis/sam4e/include/pio/sam4e8e.h
./sam/utils/cmsis/sam4e/include/pio/sam4e16c.h
./sam/utils/cmsis/sam4e/include/sam4e16e.h
./sam/utils/cmsis/sam4e/include/sam4e8c.h
./sam/utils/cmsis/sam4e/include/sam4e8e.h
./sam/utils/cmsis/sam4e/include/sam4e.h
./sam/utils/cmsis/sam4e/include/sam4e16c.h
./sam0/utils/cmsis/samr21/include/samr21g16a.h
./sam0/utils/cmsis/samr21/include/samr21.h
./sam0/utils/cmsis/samr21/include/pio/samr21g16a.h
./sam0/utils/cmsis/samr21/include/pio/samr21g18a.h
./sam0/utils/cmsis/samr21/include/pio/samr21e16a.h
./sam0/utils/cmsis/samr21/include/pio/samr21e17a.h
./sam0/utils/cmsis/samr21/include/pio/samr21e18a.h
./sam0/utils/cmsis/samr21/include/pio/samr21g17a.h
./sam0/utils/cmsis/samr21/include/samr21g18a.h
./sam0/utils/cmsis/samr21/include/samr21e16a.h
./sam0/utils/cmsis/samr21/include/samr21e17a.h
./sam0/utils/cmsis/samr21/include/samr21e18a.h
./sam0/utils/cmsis/samr21/include/samr21g17a.h
./sam0/utils/cmsis/saml21/include/saml21e15a.h
./sam0/utils/cmsis/saml21/include/pio/saml21e15a.h
./sam0/utils/cmsis/saml21/include/pio/saml21j17a.h
./sam0/utils/cmsis/saml21/include/pio/saml21g16a.h
./sam0/utils/cmsis/saml21/include/pio/saml21e17a.h
./sam0/utils/cmsis/saml21/include/pio/saml21g18a.h
./sam0/utils/cmsis/saml21/include/pio/saml21e16a.h
./sam0/utils/cmsis/saml21/include/pio/saml21g17a.h
./sam0/utils/cmsis/saml21/include/pio/saml21j16a.h
./sam0/utils/cmsis/saml21/include/pio/saml21j18a.h
./sam0/utils/cmsis/saml21/include/saml21j17a.h
./sam0/utils/cmsis/saml21/include/saml21.h
./sam0/utils/cmsis/saml21/include/saml21g16a.h
./sam0/utils/cmsis/saml21/include/saml21e17a.h
./sam0/utils/cmsis/saml21/include/saml21g18a.h
./sam0/utils/cmsis/saml21/include/saml21e16a.h
./sam0/utils/cmsis/saml21/include/saml21g17a.h
./sam0/utils/cmsis/saml21/include/saml21j16a.h
./sam0/utils/cmsis/saml21/include/saml21j18a.h
./sam0/utils/cmsis/samda1/include/samda1e14a.h
./sam0/utils/cmsis/samda1/include/samda1j14a.h
./sam0/utils/cmsis/samda1/include/samda1g16a.h
./sam0/utils/cmsis/samda1/include/samda1e15a.h
./sam0/utils/cmsis/samda1/include/pio/samda1e14a.h
./sam0/utils/cmsis/samda1/include/pio/samda1j14a.h
./sam0/utils/cmsis/samda1/include/pio/samda1g16a.h
./sam0/utils/cmsis/samda1/include/pio/samda1e15a.h
./sam0/utils/cmsis/samda1/include/pio/samda1j15a.h
./sam0/utils/cmsis/samda1/include/pio/samda1g14a.h
./sam0/utils/cmsis/samda1/include/pio/samda1j16a.h
./sam0/utils/cmsis/samda1/include/pio/samda1e16a.h
./sam0/utils/cmsis/samda1/include/pio/samda1g15a.h
./sam0/utils/cmsis/samda1/include/samda1j15a.h
./sam0/utils/cmsis/samda1/include/samda1.h
./sam0/utils/cmsis/samda1/include/samda1g14a.h
./sam0/utils/cmsis/samda1/include/samda1j16a.h
./sam0/utils/cmsis/samda1/include/samda1e16a.h
./sam0/utils/cmsis/samda1/include/samda1g15a.h
./sam0/utils/cmsis/samd21/include/samd21j18a.h
./sam0/utils/cmsis/samd21/include/samd21g18a.h
./sam0/utils/cmsis/samd21/include/samd21j17a.h
./sam0/utils/cmsis/samd21/include/samd21j15b.h
./sam0/utils/cmsis/samd21/include/pio/samd21j18a.h
./sam0/utils/cmsis/samd21/include/pio/samd21g18a.h
./sam0/utils/cmsis/samd21/include/pio/samd21j17a.h
./sam0/utils/cmsis/samd21/include/pio/samd21j15b.h
./sam0/utils/cmsis/samd21/include/pio/samd21e16b.h
./sam0/utils/cmsis/samd21/include/pio/samd21e16a.h
./sam0/utils/cmsis/samd21/include/pio/samd21e16bu.h
./sam0/utils/cmsis/samd21/include/pio/samd21e16l.h
./sam0/utils/cmsis/samd21/include/pio/samd21e15bu.h
./sam0/utils/cmsis/samd21/include/pio/samd21j16a.h
./sam0/utils/cmsis/samd21/include/pio/samd21g17au.h
./sam0/utils/cmsis/samd21/include/pio/samd21e15l.h
./sam0/utils/cmsis/samd21/include/pio/samd21g15a.h
./sam0/utils/cmsis/samd21/include/pio/samd21j16b.h
./sam0/utils/cmsis/samd21/include/pio/samd21e17a.h
./sam0/utils/cmsis/samd21/include/pio/samd21g15b.h
./sam0/utils/cmsis/samd21/include/pio/samd21g17a.h
./sam0/utils/cmsis/samd21/include/pio/samd21g16b.h
./sam0/utils/cmsis/samd21/include/pio/samd21e15b.h
./sam0/utils/cmsis/samd21/include/pio/samd21g18au.h
./sam0/utils/cmsis/samd21/include/pio/samd21g16a.h
./sam0/utils/cmsis/samd21/include/pio/samd21j15a.h
./sam0/utils/cmsis/samd21/include/pio/samd21e18a.h
./sam0/utils/cmsis/samd21/include/pio/samd21e15a.h
./sam0/utils/cmsis/samd21/include/samd21e16b.h
./sam0/utils/cmsis/samd21/include/samd21e16a.h
./sam0/utils/cmsis/samd21/include/samd21e16bu.h
./sam0/utils/cmsis/samd21/include/samd21e16l.h
./sam0/utils/cmsis/samd21/include/samd21e15bu.h
./sam0/utils/cmsis/samd21/include/samd21j16a.h
./sam0/utils/cmsis/samd21/include/samd21g17au.h
./sam0/utils/cmsis/samd21/include/samd21e15l.h
./sam0/utils/cmsis/samd21/include/samd21g15a.h
./sam0/utils/cmsis/samd21/include/samd21j16b.h
./sam0/utils/cmsis/samd21/include/samd21e17a.h
./sam0/utils/cmsis/samd21/include/samd21g15b.h
./sam0/utils/cmsis/samd21/include/samd21g17a.h
./sam0/utils/cmsis/samd21/include/samd21g16b.h
./sam0/utils/cmsis/samd21/include/samd21.h
./sam0/utils/cmsis/samd21/include/samd21e15b.h
./sam0/utils/cmsis/samd21/include/samd21g18au.h
./sam0/utils/cmsis/samd21/include/samd21g16a.h
./sam0/utils/cmsis/samd21/include/samd21j15a.h
./sam0/utils/cmsis/samd21/include/samd21e18a.h
./sam0/utils/cmsis/samd21/include/samd21e15a.h
./sam0/utils/cmsis/samd10/include/samd10d12as.h
./sam0/utils/cmsis/samd10/include/samd10c12a.h
./sam0/utils/cmsis/samd10/include/samd10d13as.h
./sam0/utils/cmsis/samd10/include/pio/samd10d12as.h
./sam0/utils/cmsis/samd10/include/pio/samd10c12a.h
./sam0/utils/cmsis/samd10/include/pio/samd10d13as.h
./sam0/utils/cmsis/samd10/include/pio/samd10c14a.h
./sam0/utils/cmsis/samd10/include/pio/samd10d14as.h
./sam0/utils/cmsis/samd10/include/pio/samd10d12am.h
./sam0/utils/cmsis/samd10/include/pio/samd10d13am.h
./sam0/utils/cmsis/samd10/include/pio/samd10d14am.h
./sam0/utils/cmsis/samd10/include/pio/samd10c13a.h
./sam0/utils/cmsis/samd10/include/samd10c14a.h
./sam0/utils/cmsis/samd10/include/samd10d14as.h
./sam0/utils/cmsis/samd10/include/samd10d12am.h
./sam0/utils/cmsis/samd10/include/samd10d13am.h
./sam0/utils/cmsis/samd10/include/samd10.h
./sam0/utils/cmsis/samd10/include/samd10d14am.h
./sam0/utils/cmsis/samd10/include/samd10c13a.h
./sam0/utils/cmsis/samd20/include/samd20e14.h
./sam0/utils/cmsis/samd20/include/samd20g14.h
./sam0/utils/cmsis/samd20/include/samd20g17u.h
./sam0/utils/cmsis/samd20/include/samd20g18.h
./sam0/utils/cmsis/samd20/include/pio/samd20e14.h
./sam0/utils/cmsis/samd20/include/pio/samd20g14.h
./sam0/utils/cmsis/samd20/include/pio/samd20g17u.h
./sam0/utils/cmsis/samd20/include/pio/samd20g18.h
./sam0/utils/cmsis/samd20/include/pio/samd20e18.h
./sam0/utils/cmsis/samd20/include/pio/samd20j17.h
./sam0/utils/cmsis/samd20/include/pio/samd20e17.h
./sam0/utils/cmsis/samd20/include/pio/samd20e16.h
./sam0/utils/cmsis/samd20/include/pio/samd20e15.h
./sam0/utils/cmsis/samd20/include/pio/samd20g18u.h
./sam0/utils/cmsis/samd20/include/pio/samd20j18.h
./sam0/utils/cmsis/samd20/include/pio/samd20j16.h
./sam0/utils/cmsis/samd20/include/pio/samd20j14.h
./sam0/utils/cmsis/samd20/include/pio/samd20g16.h
./sam0/utils/cmsis/samd20/include/pio/samd20g17.h
./sam0/utils/cmsis/samd20/include/pio/samd20g15.h
./sam0/utils/cmsis/samd20/include/pio/samd20j15.h
./sam0/utils/cmsis/samd20/include/samd20e18.h
./sam0/utils/cmsis/samd20/include/samd20j17.h
./sam0/utils/cmsis/samd20/include/samd20e17.h
./sam0/utils/cmsis/samd20/include/samd20e16.h
./sam0/utils/cmsis/samd20/include/samd20e15.h
./sam0/utils/cmsis/samd20/include/samd20g18u.h
./sam0/utils/cmsis/samd20/include/samd20j18.h
./sam0/utils/cmsis/samd20/include/samd20j16.h
./sam0/utils/cmsis/samd20/include/samd20j14.h
./sam0/utils/cmsis/samd20/include/samd20g16.h
./sam0/utils/cmsis/samd20/include/samd20g17.h
./sam0/utils/cmsis/samd20/include/samd20g15.h
./sam0/utils/cmsis/samd20/include/samd20.h
./sam0/utils/cmsis/samd20/include/samd20j15.h
./sam0/utils/cmsis/samd11/include/pio/samd11c14a.h
./sam0/utils/cmsis/samd11/include/pio/samd11d14am.h
./sam0/utils/cmsis/samd11/include/pio/samd11d14as.h
./sam0/utils/cmsis/samd11/include/samd11.h
./sam0/utils/cmsis/samd11/include/samd11c14a.h
./sam0/utils/cmsis/samd11/include/samd11d14am.h
./sam0/utils/cmsis/samd11/include/samd11d14as.h

Exactly what is it we think is missing from this and where can one see these missing files in another implementation anyway? (It's true the above - even without the "cmsis" filter) dos not include either sam.h nor samr.h

 

Googling "samr.h atmel" about the only relevant hit I can find is this:

 

https://github.com/giseburt/Mota...

 

Is that one of the "missing" files then?

Last Edited: Wed. Jun 3, 2015 - 04:54 PM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

That's the same file contents as samr21.h, I assume it just got renamed for obvious reasons.

 

Those files change all the time, that's why I'm saying that you should use newest possible version for new projects. Usually renaming is done for a good reason, even if it is a bit annoying.

 

For example, files recently lost double prefixes, so things like "sam0/utils/cmsis/samd21/include/component/component_ac.h" became "sam0/utils/cmsis/samd21/include/component/ac.h".

NOTE: I no longer actively read this forum. Please ask your question on www.eevblog.com/forum if you want my answer.

Last Edited: Wed. Jun 3, 2015 - 05:22 PM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

A nice starter project.

 

Currently I'm a bit unsure how important it is, to have the original file CMSIS file structure, which is

+ CMSIS
| + ...
+ Device
| + ...

I mean ARM had some intention to have this structure ... into CMSIS there will go the ARM-core files,

while in Device reside Atmel and the other vendors peacefull side by side.

 

So personally I prefer to have the original ARM structure.

 

Additionally I'll post this on the bug tracker on MyAtmel, just curious what is the official interpretation

of the current situation, so I'll come back to here with the response.

 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

@clawson, yes your link points exactly to one of the files that is missing, but knitting an personal 

CMSIS tree can't be the right way. There must be a way to get all relevant files (preferably in the right

structure) from source of information, e.g. from the people who make the hardware.

 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

The trouble is, "the people who make the hardware" knit their CMSIS stuff into ASF - so you have to unpick it from there.

 

I don't know if it would be any easier to unpick from Keil's knitting ... ?

 

Top Tips:

  1. How to properly post source code - see: https://www.avrfreaks.net/comment... - also how to properly include images/pictures
  2. "Garbage" characters on a serial terminal are (almost?) invariably due to wrong baud rate - see: https://learn.sparkfun.com/tutorials/serial-communication
  3. Wrong baud rate is usually due to not running at the speed you thought; check by blinking a LED to see if you get the speed you expected
  4. Difference between a crystal, and a crystal oscillatorhttps://www.avrfreaks.net/comment...
  5. When your question is resolved, mark the solution: https://www.avrfreaks.net/comment...
  6. Beginner's "Getting Started" tips: https://www.avrfreaks.net/comment...
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 1

I don't think it is important to have those files in any structure at all. CMSIS is a good idea for standardized header files format, but the rest of is not that great and support for devices is spotty, so it is not all that useful in the end.

NOTE: I no longer actively read this forum. Please ask your question on www.eevblog.com/forum if you want my answer.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Now maybe, if my ticket will achieve that sam.h and samr.h goes into the standalone ASF package, then I'm willing to make a script that extracts CMSIS from ASF - but hey, coding is fun ;-)

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 1

Why would they go there if they are not part of the AS package?

 

samr.h was renamed to samr21.h and is present in the standalone version. Otherwise it is exactly the same file. It was a mistake to name it samr.h in a first place.

NOTE: I no longer actively read this forum. Please ask your question on www.eevblog.com/forum if you want my answer.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Hi freaks,

 

yesterday Atmel Support replied to my ticket.

 

So they confirmed, that there is currently no other way as copying the CMSIS tree from the Windows-Toolchain to Linux/FreeBSD/MAC.

 

There is a internal ticket created, so it will be hopefully fixed soon.

 

Additionaly I found that AS6, when creating a SAM0-project from scratch stumbles across the same missing files sam.h/samr.h

fiels in ASF and I had to change "#include <sam.h>" into "#include <samr21.h>" even in an AS6 generated GCC project. I

send this observation in reply to my ticket.

 

We will see, if this issue is adressed in the next release.

Last Edited: Tue. Jun 9, 2015 - 07:57 AM