Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
en:iot-open:introductiontoembeddedprogramming2:developmentplatforms [2023/11/17 16:42] – [Developers Middleware and Support Tools] pczekalskien:iot-open:introductiontoembeddedprogramming2:developmentplatforms [2024/05/24 09:52] (current) pczekalski
Line 1: Line 1:
 ====== Software Development Tools and Platforms ====== ====== Software Development Tools and Platforms ======
 +{{:en:iot-open:czapka_b.png?50| General audience classification icon }}{{:en:iot-open:czapka_m.png?50| General audience classification icon }}{{:en:iot-open:czapka_e.png?50| General audience classification icon }}\\
 Software development in the bare metal model requires a development toolchain installed on the developer's computer. The vendor of the MCU usually provides a set of tools. This set frequently includes a dedicated compiler, linker, library management tools, configuration tools, debugger software, etc. These tools are command lines in most cases. Using a GCC ((https://gcc.gnu.org/)) C/C++ compiler is also quite common. On top of it, a GUI with a rich UI interface is built to simplify software development. Some vendors provide their own GUIs, such as STMicroelectronics' STM32CubeIDE (image {{ref>sdt_stm32cubeide}}). In contrast, others use already available universal code editing solutions and integrate with them, e.g. in the form of plugins or extensions.  Software development in the bare metal model requires a development toolchain installed on the developer's computer. The vendor of the MCU usually provides a set of tools. This set frequently includes a dedicated compiler, linker, library management tools, configuration tools, debugger software, etc. These tools are command lines in most cases. Using a GCC ((https://gcc.gnu.org/)) C/C++ compiler is also quite common. On top of it, a GUI with a rich UI interface is built to simplify software development. Some vendors provide their own GUIs, such as STMicroelectronics' STM32CubeIDE (image {{ref>sdt_stm32cubeide}}). In contrast, others use already available universal code editing solutions and integrate with them, e.g. in the form of plugins or extensions. 
  
 <note>Vendors barely develop their own GUI solutions from scratch; instead, they adapt existing open-source ones, e.g. STM32CubeIDE is built on top of the Eclipse IDE ((https://www.eclipse.org/ide/)).</note> <note>Vendors barely develop their own GUI solutions from scratch; instead, they adapt existing open-source ones, e.g. STM32CubeIDE is built on top of the Eclipse IDE ((https://www.eclipse.org/ide/)).</note>
 +
 +Detailed instructions on the tools necessary to set the development environment, e.g., the STM32 WB chip family, are presented on the STM's YouTube channel ((https://www.youtube.com/watch?v=YSyaH5v3hys)).
  
 <figure sdt_stm32cubeide> <figure sdt_stm32cubeide>
-{{ :en:iot-open:introductiontoembeddedprogramming2:stm32cubeide.png?600 | Eclipse for STM32 developers}}+{{ :en:iot-open:introductiontoembeddedprogramming2:stm32cubeide.png?660 | Eclipse for STM32 developers}}
 <caption>STM32CubeIDE: Eclipse for STM32 developers</caption> <caption>STM32CubeIDE: Eclipse for STM32 developers</caption>
 </figure> </figure>
  
-Because documentation for the command line tools composing SDK is usually available, there are also universal solutions that enable developers to use a single GUI environment for various tasks and microcontrollers, switching among them quickly, such as Visual Studio Code (figure {{ref>sdt_vscode}}). Each platform requires its dedicated toolchain, anyway, and integration with universal code editors such as the aforementioned VS Code may be tricky. Luckily, there are tools to help with the automated installation of all required components, such as PlatformIO ((https://platformio.org/)), that we describe below. +Because documentation for the command line tools composing SDK is usually available, there are also universal solutions that enable developers to use a single GUI environment for various tasks and microcontrollers, switching among them quickly, such as Visual Studio Code (figure {{ref>sdt_vscode}}). Each platform requires its dedicated toolchain, anyway, and integration with universal code editors such as the aforementioned VS Code may be tricky. Luckily, there are tools to help with the automated installation of all required components, such as PlatformIO ((https://platformio.org/))), which we describe below. 
  
 <figure sdt_vscode> <figure sdt_vscode>
-{{ :en:iot-open:introductiontoembeddedprogramming2:vscodeide.png?600 | Universal development environment}}+{{ :en:iot-open:introductiontoembeddedprogramming2:vscodeide.png?660 | Universal development environment}}
 <caption>VS Code: a universal development environment</caption> <caption>VS Code: a universal development environment</caption>
 </figure> </figure>
Line 19: Line 22:
  
 <figure sdt_arduinoide> <figure sdt_arduinoide>
-{{ :en:iot-open:introductiontoembeddedprogramming2:arduinoide.png?600 | Arduino IDE: an entry-level IDE for beginners}}+{{ :en:iot-open:introductiontoembeddedprogramming2:arduinoide.png?660 | Arduino IDE: an entry-level IDE for beginners}}
 <caption>Arduino IDE: an entry-level IDE for beginners</caption> <caption>Arduino IDE: an entry-level IDE for beginners</caption>
 </figure> </figure>
Line 25: Line 28:
  
 ===== Developers Middleware and Support Tools ===== ===== Developers Middleware and Support Tools =====
-Several additional tools usually come with the development toolchain provided by the hardware vendors. They include programmers (flashers, injecting firmware into the IoT device), configuration tools, power consumption calculators, etc. Installation is not always straightforward, and updating is tricky. Developers who use a variety of platforms (MCUs) struggle with instant updates and browsing the web for tools, samples and libraries. Moreover, handling libraries they use for development is time-consuming and involves instant monitoring of changes, manual copy-paste operations on files, etc. Moreover, it has to be done for every project individually.+Several additional tools usually come with the development toolchain provided by the hardware vendors. They include programmers (flashers, injecting firmware into the IoT device), configuration tools, power consumption calculators, etc. Installation is not always straightforward, and updating is tricky. Developers who use a variety of platforms (MCUs) struggle with instant updates and browsing the web for tools, samples and libraries. Moreover, handling libraries they use for development is time-consuming and involves instant monitoring of changes, manual copy-paste operations on files, etc. Moreover, it has to be done individually for every project.
  
  
Line 32: Line 35:
  
 <figure std_pio1> <figure std_pio1>
-{{ :en:iot-open:introductiontoembeddedprogramming2:pio1.png?600 | VSCode with PlatformIO: starting page}}+{{ :en:iot-open:introductiontoembeddedprogramming2:pio1.png?660 | VSCode with PlatformIO: starting page}}
 <caption>VSCode with PlatformIO: starting page</caption> <caption>VSCode with PlatformIO: starting page</caption>
 </figure> </figure>
  
 <figure std_pio2> <figure std_pio2>
-{{ :en:iot-open:introductiontoembeddedprogramming2:pio2.png?600 | VSCode with PlatformIO: library management}}+{{ :en:iot-open:introductiontoembeddedprogramming2:pio2.png?660 | VSCode with PlatformIO: library management}}
 <caption>VSCode with PlatformIO: library management</caption> <caption>VSCode with PlatformIO: library management</caption>
 </figure> </figure>
  
 <figure std_pio3> <figure std_pio3>
-{{ :en:iot-open:introductiontoembeddedprogramming2:pio3.png?600 | VSCode with PlatformIO: toolchain management}}+{{ :en:iot-open:introductiontoembeddedprogramming2:pio3.png?660 | VSCode with PlatformIO: toolchain management}}
 <caption>VSCode with PlatformIO: toolchain management</caption> <caption>VSCode with PlatformIO: toolchain management</caption>
 </figure> </figure>
en/iot-open/introductiontoembeddedprogramming2/developmentplatforms.1700239327.txt.gz · Last modified: 2023/11/17 16:42 by pczekalski
CC Attribution-Share Alike 4.0 International
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0