The bootloader is largely irrelevant - it's just a way to get code onto the chip. The Arduino IDE does provide a useful "abstraction" that can be implemented on MANY processors, but that's a result of it being very simplified, and not supporting most of the features of the fancier processors.
I guess I did use a poor wording there; my point was that I wish that it was as easy as using Arduino IDE, at least for the basics. With their abstraction, they made a breeze to interact with microcontrollers, and it really help when you move to a different chip. Obviously for more advanced features, you must specialize with one specific model of microcontrollers. It remind me of the old days where you need to learn ASM to write good code (which was mostly the Motorola one or the Intel one).
ASF attempts to push a particular project structure. "asf.h" ends up including various configuration files, including "board.h" that defines items present on a particular board (similar to "variant.h" in the arduino world.) One of the nice things about using Arduino Studio is that you can right-click on a symbol like "LED_0_PIN" and select "goto implementation" to see where and how it is defined. (and one of the sad things about ASF is how many times you'll have to do that before getting to the actual definition. Some of it is "inline" and nicely optimizes away before the final object code...)
I miss the Arduino way: you just need to know which pin, based on the pre-made list of microcontrollers included in the IDE.
From your experience, would you say that it would be convenient to use the "import arduino project", in Atmel Studio, since that would automatically assign everything for me? I would like to learn but the lack of tutorials that are generic enough; is giving me hard time.
Huh? There's a 1000+ page datasheet that is the primary reference. As it is for AVRs. It's not too bad, as datasheets go. And there's lots of ASF documentation, plus all the source code, plus all the examples (200+ for SAMD21)
Yep, but I do not recall examples for the specific chip, that show how to do anything. I did find a lot of explanations about the inner workings; which are good if you did work in the past with a similar microcontoller; but if you are a total newbie, it is not really walking you through the basics.
Not blamig Atmel; the fault is on my side; but they do not put any effort in trying to address also to people that are totally new to the subject. This is probably the greatest achievement that made Arduino, the worldwide platform that it is now.
Huh? (again!) Professional developers use eval boards all the time, for learning the basics of a new chip (or even "early development" of their own software, before their hardware is ready.) That's one of the things that these boards are FOR.
I see; so the issue is my lack of understanding, because from what I get from your comment, I assume that the code written for the example shall work 1:1 on a bare chip (assuming that you put buttons and LED in the same place where they are addressed in the eval board).
I did start with Arduino, so probably my lack of knowledge is to blame. As long as a chip support the Arduino IDE, it just work with the same code.
I did look at the examples coming with Atmel studio and I did not have any luck in having them working with my bare chip; most likely because I need to learn where to look for pin assignments probably. Time to get some generic tutorials and see if I can get something out of these