I have used Atmel processors on numerous boards for over 10 years. I really like Atmel Studio. I selected a SAME54 part and was forced to use START / ASF4 because its not supported in ASF3. Before I get to the really negative parts I will state a few things:
- It's a good idea, and the overall implementation is pretty good.
- I particularly like the pin editor and selecting pins in modules which helps prevent bad pin assignments from pin mux confusion.
- ASF4 is a complete rewrite of the libraries and parts of these libraries are better implemented, specifically asynchronous I2C is better and CAN implementation was better.
Now the part you probably want to hear.
- Yesterday, the server gave me "Failed Loading Project". It persists today. Old archived versions of the project also don't load. My guess is there was a server update that broke my project. It's only a guess because I am given zero information to diagnose the problem.
- Let me be crystal clear to the START developers. I am in the middle of tight deadline and look to be forced to re-enter a complex project from scratch.
- NEVER EVER do this to me, this is a very serious issue. I will never use ASF4 / START again for this reason alone, and probably will need to abandon Atmel processors. This is the exact fear of using an online project configuration tool, it can disappear and break at any time. This is not a toy for me, it is not a hobby. You can't just break project loading and provide zero information on how to correct the problem.
- ASF4 is a complete re-write of the libraries. All my old shared code for multiple boards on this project is non-functional. You cannot mix / match ASF3 and ASF4 code.
- ASF4 documentation is non-existent. What I could find is basically just a list of function calls. ASF3 documentation was stellar in comparison.
- There are almost no example projects for my processor. The code generator has some examples in it but they are inadequate.
- In order to do anything complex you have to go into the library code to figure out what it is doing. This code has sparse documentation and parts of it are written in absurd abstract ways by a code generator that only serious C developers can reverse engineer. Thankfully I can do this, but 20 years ago it would have been a hopeless endeavor.
- The cycle time for loading, changing a minor parameter, exporting is too long. I ended up going into the generated configuration headers and changing it there.
- Some modules aren't well developed yet. The I2S module doesn't allow advanced implementation and the code generator has bugs that I had to track down and fix manually. Every time I export code I have to go back in and re-fix the code.
Summary. Good idea. 95% implemented well. The last 5% are an absolute deal breaker. Things I would like to see:
- Diagnostics on failed project loads and access to previous server implementations.
- Better ASF4 documentation and better examples up to the previous ASF3 standard.
- A less abstracted version of library code.
- Access to library code for modules not in the START project.
- A way to run START when I don't have online access.