{"id":989,"date":"2026-05-03T15:24:18","date_gmt":"2026-05-03T22:24:18","guid":{"rendered":"https:\/\/sysprogs.com\/tutorials\/?p=989"},"modified":"2026-05-03T18:44:14","modified_gmt":"2026-05-04T01:44:14","slug":"creating-embedded-projects-on-windows","status":"publish","type":"post","link":"https:\/\/sysprogs.com\/CodeVROOM\/tutorials\/stm32\/windows\/","title":{"rendered":"Creating Embedded Projects on Windows"},"content":{"rendered":"<p>This tutorial shows how to create a basic STM32 project using CodeVROOM on Windows. For other platforms, see the Linux and MacOS tutorials.<\/p>\n<ol>\n<li>Download the <a href=\"https:\/\/sysprogs.com\/CodeVROOM\/download\/\">latest CodeVROOM executable<\/a> and run it:<a href=\"https:\/\/sysprogs.com\/tutorials\/wp-content\/uploads\/2026\/05\/01-vroom.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-990\" src=\"https:\/\/sysprogs.com\/tutorials\/wp-content\/uploads\/2026\/05\/01-vroom.png\" alt=\"\" width=\"786\" height=\"393\" srcset=\"https:\/\/sysprogs.com\/tutorials\/wp-content\/uploads\/2026\/05\/01-vroom.png 786w, https:\/\/sysprogs.com\/tutorials\/wp-content\/uploads\/2026\/05\/01-vroom-300x150.png 300w, https:\/\/sysprogs.com\/tutorials\/wp-content\/uploads\/2026\/05\/01-vroom-768x384.png 768w\" sizes=\"(max-width: 786px) 100vw, 786px\" \/><\/a><\/li>\n<li>You can run it in place or install to either %LOCALAPPDATA% or Program Files. Installation only takes a few seconds and can be easily undone via the Add\/Remove Programs window. Once CodeVROOM is started or installed, its main window will look like this:<a href=\"https:\/\/sysprogs.com\/tutorials\/wp-content\/uploads\/2026\/05\/02-window.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-1001\" src=\"https:\/\/sysprogs.com\/tutorials\/wp-content\/uploads\/2026\/05\/02-window.png\" alt=\"\" width=\"1176\" height=\"742\" srcset=\"https:\/\/sysprogs.com\/tutorials\/wp-content\/uploads\/2026\/05\/02-window.png 1176w, https:\/\/sysprogs.com\/tutorials\/wp-content\/uploads\/2026\/05\/02-window-300x189.png 300w, https:\/\/sysprogs.com\/tutorials\/wp-content\/uploads\/2026\/05\/02-window-1024x646.png 1024w, https:\/\/sysprogs.com\/tutorials\/wp-content\/uploads\/2026\/05\/02-window-768x485.png 768w\" sizes=\"(max-width: 1176px) 100vw, 1176px\" \/><\/a><\/li>\n<li>Use the File-&gt;New-&gt;Project command or the toolbar button to create a new project:<a href=\"https:\/\/sysprogs.com\/tutorials\/wp-content\/uploads\/2026\/05\/03-new.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-1000\" src=\"https:\/\/sysprogs.com\/tutorials\/wp-content\/uploads\/2026\/05\/03-new.png\" alt=\"\" width=\"1175\" height=\"740\" srcset=\"https:\/\/sysprogs.com\/tutorials\/wp-content\/uploads\/2026\/05\/03-new.png 1175w, https:\/\/sysprogs.com\/tutorials\/wp-content\/uploads\/2026\/05\/03-new-300x189.png 300w, https:\/\/sysprogs.com\/tutorials\/wp-content\/uploads\/2026\/05\/03-new-1024x645.png 1024w, https:\/\/sysprogs.com\/tutorials\/wp-content\/uploads\/2026\/05\/03-new-768x484.png 768w\" sizes=\"(max-width: 1175px) 100vw, 1175px\" \/><\/a><\/li>\n<li>Select the Embedded project wizard:<a href=\"https:\/\/sysprogs.com\/tutorials\/wp-content\/uploads\/2026\/05\/04-emb.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-999\" src=\"https:\/\/sysprogs.com\/tutorials\/wp-content\/uploads\/2026\/05\/04-emb.png\" alt=\"\" width=\"812\" height=\"416\" srcset=\"https:\/\/sysprogs.com\/tutorials\/wp-content\/uploads\/2026\/05\/04-emb.png 812w, https:\/\/sysprogs.com\/tutorials\/wp-content\/uploads\/2026\/05\/04-emb-300x154.png 300w, https:\/\/sysprogs.com\/tutorials\/wp-content\/uploads\/2026\/05\/04-emb-768x393.png 768w\" sizes=\"(max-width: 812px) 100vw, 812px\" \/><\/a><\/li>\n<li>The Embedded Project Wizard is a simplified version of the VisualGDB&#8217;s project wizard and offers similar choices. Proceed with creating a default application:<a href=\"https:\/\/sysprogs.com\/tutorials\/wp-content\/uploads\/2026\/05\/05-app.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-998\" src=\"https:\/\/sysprogs.com\/tutorials\/wp-content\/uploads\/2026\/05\/05-app.png\" alt=\"\" width=\"800\" height=\"600\" srcset=\"https:\/\/sysprogs.com\/tutorials\/wp-content\/uploads\/2026\/05\/05-app.png 800w, https:\/\/sysprogs.com\/tutorials\/wp-content\/uploads\/2026\/05\/05-app-300x225.png 300w, https:\/\/sysprogs.com\/tutorials\/wp-content\/uploads\/2026\/05\/05-app-768x576.png 768w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/><\/a><\/li>\n<li>If you have tried VisualGDB on that machine, CodeVROOM will automatically pick up the toolchains and BSPs from it. If not, locate the ARM toolchain installer in the list and select it:<a href=\"https:\/\/sysprogs.com\/tutorials\/wp-content\/uploads\/2026\/05\/06-toolch.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-997\" src=\"https:\/\/sysprogs.com\/tutorials\/wp-content\/uploads\/2026\/05\/06-toolch.png\" alt=\"\" width=\"800\" height=\"600\" srcset=\"https:\/\/sysprogs.com\/tutorials\/wp-content\/uploads\/2026\/05\/06-toolch.png 800w, https:\/\/sysprogs.com\/tutorials\/wp-content\/uploads\/2026\/05\/06-toolch-300x225.png 300w, https:\/\/sysprogs.com\/tutorials\/wp-content\/uploads\/2026\/05\/06-toolch-768x576.png 768w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/><\/a><\/li>\n<li>Select the installation folder and press &#8220;Install&#8221;:<a href=\"https:\/\/sysprogs.com\/tutorials\/wp-content\/uploads\/2026\/05\/07-install.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-996\" src=\"https:\/\/sysprogs.com\/tutorials\/wp-content\/uploads\/2026\/05\/07-install.png\" alt=\"\" width=\"600\" height=\"171\" srcset=\"https:\/\/sysprogs.com\/tutorials\/wp-content\/uploads\/2026\/05\/07-install.png 600w, https:\/\/sysprogs.com\/tutorials\/wp-content\/uploads\/2026\/05\/07-install-300x86.png 300w\" sizes=\"(max-width: 600px) 100vw, 600px\" \/><\/a><\/li>\n<li>Once the toolchain is installed, VisualGDB will display the devices compatible with that toolchain. Select the STM32F407VG (used in STM32F4-Discovery) and click &#8220;Install&#8221;:<a href=\"https:\/\/sysprogs.com\/tutorials\/wp-content\/uploads\/2026\/05\/08-more.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-995\" src=\"https:\/\/sysprogs.com\/tutorials\/wp-content\/uploads\/2026\/05\/08-more.png\" alt=\"\" width=\"856\" height=\"602\" srcset=\"https:\/\/sysprogs.com\/tutorials\/wp-content\/uploads\/2026\/05\/08-more.png 856w, https:\/\/sysprogs.com\/tutorials\/wp-content\/uploads\/2026\/05\/08-more-300x211.png 300w, https:\/\/sysprogs.com\/tutorials\/wp-content\/uploads\/2026\/05\/08-more-768x540.png 768w, https:\/\/sysprogs.com\/tutorials\/wp-content\/uploads\/2026\/05\/08-more-130x90.png 130w\" sizes=\"(max-width: 856px) 100vw, 856px\" \/><\/a><\/li>\n<li>Once the device support is installed, CodeVROOM will show the device configuration options equivalent to the ones from VisualGDB. Proceed with the default settings:<a href=\"https:\/\/sysprogs.com\/tutorials\/wp-content\/uploads\/2026\/05\/09-device.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-994\" src=\"https:\/\/sysprogs.com\/tutorials\/wp-content\/uploads\/2026\/05\/09-device.png\" alt=\"\" width=\"856\" height=\"602\" srcset=\"https:\/\/sysprogs.com\/tutorials\/wp-content\/uploads\/2026\/05\/09-device.png 856w, https:\/\/sysprogs.com\/tutorials\/wp-content\/uploads\/2026\/05\/09-device-300x211.png 300w, https:\/\/sysprogs.com\/tutorials\/wp-content\/uploads\/2026\/05\/09-device-768x540.png 768w, https:\/\/sysprogs.com\/tutorials\/wp-content\/uploads\/2026\/05\/09-device-130x90.png 130w\" sizes=\"(max-width: 856px) 100vw, 856px\" \/><\/a><\/li>\n<li>The next page allows selecting between basic samples and the samples from the device vendor (ST). Select the <strong>STM32CubeMX samples<\/strong> option:<a href=\"https:\/\/sysprogs.com\/tutorials\/wp-content\/uploads\/2026\/05\/10-sample.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-993\" src=\"https:\/\/sysprogs.com\/tutorials\/wp-content\/uploads\/2026\/05\/10-sample.png\" alt=\"\" width=\"856\" height=\"602\" srcset=\"https:\/\/sysprogs.com\/tutorials\/wp-content\/uploads\/2026\/05\/10-sample.png 856w, https:\/\/sysprogs.com\/tutorials\/wp-content\/uploads\/2026\/05\/10-sample-300x211.png 300w, https:\/\/sysprogs.com\/tutorials\/wp-content\/uploads\/2026\/05\/10-sample-768x540.png 768w, https:\/\/sysprogs.com\/tutorials\/wp-content\/uploads\/2026\/05\/10-sample-130x90.png 130w\" sizes=\"(max-width: 856px) 100vw, 856px\" \/><\/a><\/li>\n<li>Pick the &#8220;FatFS_USBDisk&#8221; sample and click &#8220;Finish&#8221;:<a href=\"https:\/\/sysprogs.com\/tutorials\/wp-content\/uploads\/2026\/05\/10-usb.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-992\" src=\"https:\/\/sysprogs.com\/tutorials\/wp-content\/uploads\/2026\/05\/10-usb.png\" alt=\"\" width=\"856\" height=\"602\" srcset=\"https:\/\/sysprogs.com\/tutorials\/wp-content\/uploads\/2026\/05\/10-usb.png 856w, https:\/\/sysprogs.com\/tutorials\/wp-content\/uploads\/2026\/05\/10-usb-300x211.png 300w, https:\/\/sysprogs.com\/tutorials\/wp-content\/uploads\/2026\/05\/10-usb-768x540.png 768w, https:\/\/sysprogs.com\/tutorials\/wp-content\/uploads\/2026\/05\/10-usb-130x90.png 130w\" sizes=\"(max-width: 856px) 100vw, 856px\" \/><\/a><\/li>\n<li>Once the project is loaded, use the <strong>Project-&gt;Build<\/strong> command to build it:<a href=\"https:\/\/sysprogs.com\/tutorials\/wp-content\/uploads\/2026\/05\/11-build.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-991\" src=\"https:\/\/sysprogs.com\/tutorials\/wp-content\/uploads\/2026\/05\/11-build.png\" alt=\"\" width=\"1220\" height=\"797\" srcset=\"https:\/\/sysprogs.com\/tutorials\/wp-content\/uploads\/2026\/05\/11-build.png 1220w, https:\/\/sysprogs.com\/tutorials\/wp-content\/uploads\/2026\/05\/11-build-300x196.png 300w, https:\/\/sysprogs.com\/tutorials\/wp-content\/uploads\/2026\/05\/11-build-1024x669.png 1024w, https:\/\/sysprogs.com\/tutorials\/wp-content\/uploads\/2026\/05\/11-build-768x502.png 768w\" sizes=\"(max-width: 1220px) 100vw, 1220px\" \/><\/a>Now that you got the project building, check this tutorial for an overview of <a href=\"https:\/\/sysprogs.com\/CodeVROOM\/tutorials\/cpp\/editing\/\">editing features<\/a> that are supported in the latest version.<\/li>\n<\/ol>\n","protected":false},"excerpt":{"rendered":"<p>This tutorial shows how to create a basic STM32 project using CodeVROOM on Windows. For other platforms, see the Linux<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[64],"tags":[74,75],"_links":{"self":[{"href":"https:\/\/sysprogs.com\/tutorials\/wp-json\/wp\/v2\/posts\/989"}],"collection":[{"href":"https:\/\/sysprogs.com\/tutorials\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/sysprogs.com\/tutorials\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/sysprogs.com\/tutorials\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/sysprogs.com\/tutorials\/wp-json\/wp\/v2\/comments?post=989"}],"version-history":[{"count":3,"href":"https:\/\/sysprogs.com\/tutorials\/wp-json\/wp\/v2\/posts\/989\/revisions"}],"predecessor-version":[{"id":1009,"href":"https:\/\/sysprogs.com\/tutorials\/wp-json\/wp\/v2\/posts\/989\/revisions\/1009"}],"wp:attachment":[{"href":"https:\/\/sysprogs.com\/tutorials\/wp-json\/wp\/v2\/media?parent=989"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/sysprogs.com\/tutorials\/wp-json\/wp\/v2\/categories?post=989"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/sysprogs.com\/tutorials\/wp-json\/wp\/v2\/tags?post=989"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}