I am not interested in using ASF. Is there a header file that is used to set register bits as you do with AVR besides using asf.h?

  • \$\begingroup\$ Why can't use you use those files from outside Atmel Studio? \$\endgroup\$ Commented Apr 10, 2015 at 6:20
  • \$\begingroup\$ If you are using avr-libc (and hence avr-gcc) then the avr/io.h header will be available to you - even if you are using it outside AVR studio. How do you think the Arduino IDE manages. \$\endgroup\$ Commented May 12, 2015 at 19:59
  • \$\begingroup\$ @TomCarpenter: Not for ARM processors. \$\endgroup\$ Commented May 12, 2015 at 19:59
  • \$\begingroup\$ @IgnacioVazquez-Abrams sorry, yes missed the ARM reference, just read Atmel and AVR/io.h \$\endgroup\$ Commented May 12, 2015 at 20:00
  • \$\begingroup\$ As an aside, have you looked at the peripheral registers for an ARM chip? They are a lot more complex than an AVR and the vendor libraries can save you a lot of time working through the data sheet flipping bits. Also if you use CMSIS where possible your code will be easier to move to another vendor. \$\endgroup\$
    – Jon
    Commented May 12, 2015 at 21:08

1 Answer 1


I think what you are looking for is the CMSIS standard libraries (Cortex Microcontroller Software Interface Standard)

It is an abstraction layer that is vendor-independent and contains interfaces to the common registers, gpios, etc. For the Atmel, it is included in the ASF, but you don't have to use ASF, just take the CMSIS libraries, or you can download the CMSIS from the ARM website. Also, probably the IDE you are using has a wizard to create new projects that gives you the possibility to include them. It is pretty much the standard interfaces in which every vendor library is built upon.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.