{"id":5483,"date":"2019-12-03T20:20:35","date_gmt":"2019-12-04T04:20:35","guid":{"rendered":"https:\/\/visualgdb.com\/w\/?p=5483"},"modified":"2019-12-04T10:39:50","modified_gmt":"2019-12-04T18:39:50","slug":"importing-atmel-start-project-templates-into-visualgdb","status":"publish","type":"post","link":"https:\/\/visualgdb.com\/tutorials\/arm\/atmel\/start\/","title":{"rendered":"Importing Atmel START Project Templates into VisualGDB"},"content":{"rendered":"<p>This tutorial shows how to import a project template generated by the <a href=\"https:\/\/start.atmel.com\/\">Atmel START tool<\/a> into VisualGDB and use it to create new projects.<\/p>\n<p>Before you begin, install VisualGDB 5.5 Preview 2 or later.<\/p>\n<ol>\n<li>Before you begin open <a href=\"https:\/\/start.atmel.com\/\">Atmel START<\/a> in your browser and click &#8220;Create New Project&#8221;:<a href=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2019\/11\/01-start-1.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-5497\" src=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2019\/11\/01-start-1.jpg\" alt=\"\" width=\"1132\" height=\"786\" \/><\/a><\/li>\n<li>Select and configure your device, optionally choose the board and click &#8220;Create New Project&#8221; again:<a href=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2019\/11\/02-device-1.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-5498\" src=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2019\/11\/02-device-1.png\" alt=\"\" width=\"1132\" height=\"786\" \/><\/a><\/li>\n<li>The Atmel START tool will create a basic project based on the selected device. You can tweak it using various configuration buttons, or click &#8220;Export Project&#8221; to go to the export page:<a href=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2019\/11\/03-generated-1.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-5499\" src=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2019\/11\/03-generated-1.png\" alt=\"\" width=\"1132\" height=\"786\" \/><\/a><\/li>\n<li>Make sure you have selected &#8220;Makefile (standalone)&#8221; in the export settings, as otherwise Atmel START will not generate a linker script for GCC. Then click &#8220;Download Pack&#8221;: <a href=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2019\/11\/04-export-1.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-5500\" src=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2019\/11\/04-export-1.png\" alt=\"\" width=\"1132\" height=\"786\" \/><\/a>Save the <strong>.atzip <\/strong>file produced by Atmel Start. We will import it into VisualGDB later.<\/li>\n<li>Start Visual Studio and locate the VisualGDB Embedded Project Wizard:<a href=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2019\/11\/05-emb.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-5488\" src=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2019\/11\/05-emb.png\" alt=\"\" width=\"1024\" height=\"710\" \/><\/a><\/li>\n<li>Enter the name and location for the project you are creating:<a href=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2019\/11\/06-prjname.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-5489\" src=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2019\/11\/06-prjname.png\" alt=\"\" width=\"1024\" height=\"710\" \/><\/a><\/li>\n<li>On the first page of the VisualGDB Embedded Project Wizard select &#8220;Create a new project -&gt; Embedded Binary -&gt; MSBuild&#8221;:<a href=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2019\/11\/07-binary-1.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-5490\" src=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2019\/11\/07-binary-1.png\" alt=\"\" width=\"886\" height=\"693\" \/><\/a><\/li>\n<li>On the next page select an ARM toolchain and click the &#8220;Import an Atmel START Project&#8221; link at the bottom of the page:<a href=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2019\/11\/08-import-2.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-5502\" src=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2019\/11\/08-import-2.png\" alt=\"\" width=\"886\" height=\"693\" \/><\/a><\/li>\n<li>VisualGDB will ask for the location of the <strong>.atzip<\/strong> file downloaded from the Atmel START website. Select it and confirm the import. The imported device will now appear in the device list (note the lightning symbol), replacing any older device definitions shipped with VisualGDB:<a href=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2019\/11\/09-cpu.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-5492\" src=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2019\/11\/09-cpu.png\" alt=\"\" width=\"886\" height=\"693\" \/><\/a>You can use the &#8220;Show legacy devices&#8221; checkbox to use the older device definition based on the older offline versions of Atmel SDKs.<\/li>\n<li>On the next page of the wizard proceed with the default sample:<a href=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2019\/11\/10-project.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-5493\" src=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2019\/11\/10-project.png\" alt=\"\" width=\"886\" height=\"693\" \/><\/a><\/li>\n<li>Finally, choose the debug settings that match your configuration. Use the &#8220;Test&#8221; button to validate the connection:<a href=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2019\/11\/11-saml-1.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-5503\" src=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2019\/11\/11-saml-1.png\" alt=\"\" width=\"886\" height=\"694\" \/><\/a><\/li>\n<li>Press &#8220;Finish&#8221; to create the project. VisualGDB will import the sample code, peripheral drivers and additional frameworks selected in the Atmel START interface into an MSBuild-based project. Build it by pressing Ctrl-Shift-B:<a href=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2019\/11\/12-built-1.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-5504\" src=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2019\/11\/12-built-1.png\" alt=\"\" width=\"1132\" height=\"786\" \/><\/a><\/li>\n<li>Set a breakpoint inside the main() function and press F5 to start debugging. The breakpoint will get triggered:<a href=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2019\/11\/debug.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-5505\" src=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2019\/11\/debug.png\" alt=\"\" width=\"1132\" height=\"786\" \/><\/a><\/li>\n<li>When you imported a project generated by Atmel START into VisualGDB, it got converted into a BSP (board support package). A BSP contains peripheral drivers, libraries and other support files, such as linker scripts, required to build code for your device. Each time you create a new Visual Studio project based on the imported BSP, it will reference those shared files instead of creating an independent copy (this can be overridden via <a href=\"https:\/\/visualgdb.com\/tutorials\/arm\/standalone\/\">stand-alone projects<\/a>). You can manage all BSPs (shipped with VisualGDB or imported from Atmel START) via Tools-&gt;VisualGDB-&gt;Manage VisualGDB Packages:<a href=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2019\/11\/13-manage.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-5496\" src=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2019\/11\/13-manage.png\" alt=\"\" width=\"1186\" height=\"793\" \/><\/a>If you decide to change the Atmel START project parameters, simply re-import it into VisualGDB from either the project wizard, or the VisualGDB Package Manager window, and the changes will automatically get applied to all projects that were created based on this SDK.<\/li>\n<li>If the Atmel START project contained any libraries beyond the regular peripheral drivers, you can reference them from your projects via the Embedded Frameworks page of VisualGDB Project Properties:<a href=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2019\/11\/fw.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-5506\" src=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2019\/11\/fw.png\" alt=\"\" width=\"979\" height=\"708\" \/><\/a><\/li>\n<\/ol>\n","protected":false},"excerpt":{"rendered":"<p>This tutorial shows how to import a project template generated by the Atmel START tool into VisualGDB and use it<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[89],"tags":[132,41],"_links":{"self":[{"href":"https:\/\/visualgdb.com\/w\/wp-json\/wp\/v2\/posts\/5483"}],"collection":[{"href":"https:\/\/visualgdb.com\/w\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/visualgdb.com\/w\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/visualgdb.com\/w\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/visualgdb.com\/w\/wp-json\/wp\/v2\/comments?post=5483"}],"version-history":[{"count":2,"href":"https:\/\/visualgdb.com\/w\/wp-json\/wp\/v2\/posts\/5483\/revisions"}],"predecessor-version":[{"id":5508,"href":"https:\/\/visualgdb.com\/w\/wp-json\/wp\/v2\/posts\/5483\/revisions\/5508"}],"wp:attachment":[{"href":"https:\/\/visualgdb.com\/w\/wp-json\/wp\/v2\/media?parent=5483"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/visualgdb.com\/w\/wp-json\/wp\/v2\/categories?post=5483"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/visualgdb.com\/w\/wp-json\/wp\/v2\/tags?post=5483"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}