Atmel Studio Glossary
For users who came here through search engine, searching for a specific word, please search for that keyword from the browser find button, because this is a very generic post that might also cover something that you are not at all interested. Sorry!
Why this post: A lot of people ask about the terms used inside Atmel studio, and they wonder why they were named that way. The answer is quiet rational. They are either derived from conventions of Visual Studio or AVR studio 4 and 32. Domain related stuff are derived from AVR studio 4 and 32 and technology related stuff is derived from Visual studio. Why? We want people to easily migrate to Atmel studio with similar terms and in the process, educate them Visual studio environment (if they are not familiar). I would try to start with some terms and update the post perpetually, perhaps. J Unlike regular glossary, this would not be in any order. They are purely based on what goes on in my mind. You are free to use Ctrl+F to find the term you want, or go through each of them. J All of these writings are based on my own understanding and are supposed to be very correct, but my employer has nothing to do with this J.
Note : Some of the content of this post are copied from other sources to maintain originality and clarity. I could perhaps have linked, but since they are not exactly in the context of Atmel studio, I just copied them and tailored to my needs, to be honest. The images are not copied as they are licensed and not to be distributed across.
Solution (*.avrsln, *.atsln)
Atmel Studio provides two containers to help you efficiently manage the items that are required by your development effort, such as files, tool chain properties, folders, library references. These containers are called solutions and projects. Also, Atmel Studio provides Solution Folders to organize related projects into groups and then perform actions on those groups of projects. Solution Explorer, an interface for viewing and managing these containers and their associated items, is part of the integrated development platform (IDP). Initially when we started with AVR studio 5.0 we use the extension .avrsln for the solution files. But when we transformed to a multiple architecture IDE we discarded the .avrsln and used the .atsln extension. I believe this will not change in future, as it is generic enough to express any architecture.
A solution can contain multiple projects and a project typically contains multiple items. These containers enable you to take advantage of the IDP in the following ways:
- Manage settings for your solution as a whole or for individual projects.
- Use Solution Explorer to handle the details of file management while you focus on items that make up your development effort.
- Add items that are useful to multiple projects in the solution or to the solution without referencing the item in each project.
- Work on miscellaneous files that are independent from solutions or projects.
Projects (*.avrgccproj, *.cproj, *.cppproj, *.avrasm, *.asmproj)
To help you to organize and perform common tasks on the items that you are developing, Atmel Studio projects are used as containers within a solution to logically manage, build, and debug the items that comprise your application. The output of a project is usually an executable program, a static library file. Refer this image
A project can be as simple or as complex as you need to meet your requirements. A simple project might consist of a single c/c++/assembly file with default toolchain settings and a default device. A complex project can be a project file with dependencies on other projects, linked with custom libraries, contains ASF content, custom tool chain etc. Initially there were lot of file extensions for projects, but now they are only 3. For C language projects it's .cproj and for C++ they are .cppproj and for Assembly they are .asmproj. Project items can be files, references to libraries, folders that are within the project container. Some items represent a physical item you can locate in storage. Other items are links and represent pointers to other items that may reside outside the project directory. Refer this image . However, most of your work is likely to be on the files you use to determine the parts of your application. How these files are managed within a project is determined by the project itself. Solution Explorer displays the file or set of files needed to develop that item.
ASF (Atmel Software Framework)
The Atmel® Software Framework (ASF) is a MCU software library providing a large collection of embedded software for Atmel flash MCUs: megaAVR, AVR XMEGA, AVR UC3 and SAM devices.
- It simplifies the usage of microcontrollers, providing an abstraction to the hardware and high-value middlewares
- ASF is designed to be used for evaluation, prototyping, design and production phases
- ASF is integrated in the Atmel Studio IDE with a graphical user interface or available as standalone for GCC, IAR compilers
- ASF can be downloaded for free
Access the ASF documentation.
Note: ASF in Atmel Studio does not require a specific download. Use Atmel Studio Extension Manager (Tools->Extension Manager) or visit Atmel Gallery to update ASF in Atmel Studio.
VAssistX is an extension to atmel studio that supports intellisense for c, c++ projects. Its powerful and it is also available for the Visual studio environment.
Visual studio Isolated shell
The Visual Studio isolated shell allows you to create stand-alone applications that can run side-by-side with other versions of Visual Studio. It is used primarily to host specialized tools that can use Visual Studio services but also have a customized appearance and branding. Visual Studio features and menu command groups can be easily turned on and off. Application titles, application icons, and splash screens are fully customizable. The Atmel Studio IDE is completely written on top of the Visual Studio Isolated shell and is fully customized. That's why you see that Atmel studio is dependent on the Visual studio isolated shell during installation.
Atmel studio backend, atbackend.exe
The backend or the atbackend.exe is a primary component in the Atmel studio environment that talks to the device driver, connected devices and tools and performs the programming and communication. This is shipped as part of the Atmel studio installation and cannot be installed separately.
atprogram, command line programming
The atprogram.exe or atp.exe is the command line tool that could be used to program, query information on connected tools in Atmel studio. This uses the backend. This tool can be ran without installing the frontend.
Atmel studio frontend
The frontend is the UI portion of the Atmel studio that communicates with the backend. The frontend constitutes the Project, Build, Debug frontend, Editor, Debug visualizers etc
Atmel Studio includes a tool named Extension Manager that lets you add, remove, enable, and disable Atmel Studio extensions. To open Extension Manager, on the Tools menu, click Extension Manager. Extension developers are advised to uninstall previous versions of extensions in progress, and uninstall or disable potentially conflicting extensions to prevent conflicts during development. The Extension Manager window is divided into three panes. The left pane lets you select by group: installed extensions and new extensions from the online gallery.
The extensions are displayed in the middle pane. You can sort the list by name or author from the combobox above the list. When you select an extension in the middle pane, information about it appears in the right pane. Extension installed by the current user can be uninstalled or disabeled, extensions distrubutetd with Atmel Studio cannot be changed. The Extension Manager window also includes a search box. Depending on the selection in the left pane, you can search installed extensions, the online gallery, or available updates. Online Gallery Extension Manager can install extensions from the Atmel Studio Gallery. These extensions may be packages, templates, or other components that add functionality to Atmel Studio. To get started with the extension manager check the Installing new extensions in Atmel Studio. Extension Manager supports extensions in the VSIX package format, which may include project templates, item templates, toolbox items, Managed Extension Framework (MEF) components, and VSPackages. Extension Manager can also download and install MSI-based extensions, but it cannot enable or disable them. Atmel Studio Gallery contains both VSIX and MSI extensions. If a user tries to install an extension that has dependencies, the installer verifies that those dependencies are already installed. If they are not installed, Extension Manager shows the user a list of dependencies that must be installed before the extension can be installed. Extensions that have been packaged in .vsix files may be available in locations other than the Atmel Studio Gallery. Extension Manager cannot detect these files. However, you can install a .vsix file by double-clicking it and then following the Setup instructions. When the extension is installed, you can use Extension Manager to enable it, disable it, or remove it. You can also login to http://gallery.atmel.com and download extensions from there and install them.
The VSIX file is the unit of deployment for a Visual Studio 2010 Extension. Visual Studio will recognize the VSIX extension and install the contents of the file to the right location. A VSIX file is a zip file that uses the Open Packaging Convention. You can rename the .VSIX extension to .ZIP and use any zip browser (including the Windows File Explorer) to browse its contents. During installation, Atmel Studio will unzip the contents of the VSIX file into: %LocalAppData%\Atmel\AtmelStudio\6.1\Extensions\<Company>\<Product>\<Version>
On launch, Atmel Studio will look in the Extensions folder and its child folders for extensions and load them. Extensions that are installed by Atmel Studio either through the Extension Manager UI, or through the out of process installer launched by double clicking on a VSIX file, will automatically be enabled. Extensions that are copied to that location as a raw folder layout will be disabled by default. They can be enabled via the Extension Manager UI inside of Atmel Studio.