First interaction with ChibiStudio may feel overwhelming for a new user, given the multitude of buttons and windows, thus the following article tries to give a macro overview of ChibiStudio as a tool and it’s overall structure. The aim is to make the user more comfortable navigating the tool and understanding how it can help optimize the workflow.
Workbench and Workspace
ChibiStudio is organized in Workbenches. A workbench which is practically the main window. It can be seen as a “bench” where different programming instruments are organized, leading to the existence of different views and editors. Views and editors are tools for manipulating sources and data and can be arranged accordingly to better assist with specific tasks such as exploring, debugging, coding and so on. More details about workbench management are provided later on, when the concept of “perspective” is introduced.
All the configurations related to the workbench, such as the settings, Integrated Development Environment (IDE) related variables, perspectives, history, imported projects, etc. are saved as metadata in a specific location called Workspace.
By default, the fresh ChibiStudio installation comes with several workspaces: a trunk workspace (located under [ChibiStudio Root]\workspace_trunk), a user workspace (located under [ChibiStudio Root]\workspace_user) and several workspaces corresponding to various ChibiOS releases that are coming with ChibiStudio as well as workspaces where different demo project from PLAY Embedded can be found. The user workspace is the default workspace allocated to new users, but additional workspaces can be created at any time to better organize one’s work.
Switching between workspaces
Switching between workspaces can be done from ChibiStudio:
- Go to File
- Select Switch workspace
- Choose one of the folders from the existing list or navigate to a custom location via Other…
A key takeaway before moving further:
The workspace is an actual directory, accessible even from outside ChibiStudio, while workbenches can only be interacted with while actively using the software.
The workbench organization can be set, saved and recalled at any time to better assist and optimize the development flow. These setups are known as perspectives in ChibiStudio.
Perspectives can be switched using the proper button in the top right corner of the Workbench, as highlighted in the figure below. It is also possible to add other perspectives, save or reset the current one to default through the drop-down menu “Window” located in the menu bar. Note that switching perspectives is a matter of organizing one’s view and will not have any impact on the code or files. You can switch perspective as needed or desired without any concern.
The default perspectives that are available at first launch are:
- C/C++ Perspective – designed to facilitate code development
- Debug Perspective – which provides quick and easy access to the most used debugging tools
The two perspectives reflect the way in which code development process is split. Code editing is only a phase of the whole development process and having a successfully compiling code is not enough for a project to be deemed successful. Therefore the development process could be split into two specific parts, corresponding to the two default perspectives.
The software development encompasses topics related to new project creation, code editing, compiling and resolution of errors and warnings. The C/C++ Perspective focuses on providing the necessary tools that come to aid the aforementioned topics, hence why most of the area is dedicated to the code editor.
The following figure highlights the visible windows in the C/C++ Perspective:
- The Project Explorer shows all the projects belonging to the currently active workspace, open or closed. It also allows for navigation within an open project’s folders and files. Note that the Project Explorer is populated by two dummy projects by default – ChibiOS Tools and Documents – these contain the documentation and tools used by ChibiStudio and should always be present and opened in the workspace.
- The Text Editor takes up the most space in the center of the screen and it is were the actual code writing is being done.
- The Outline shows a blueprint of structure files that are open in the editor area
- In the bottom part of the screen, multiple tabs such as Console or Problems provide information about the build process and highlight syntax Warning and Errors as result of it. These tools play a key role in code syntax validation
Ribbon bar – basic buttons
A highlight of the basic and most used buttons of the C/C++ perspective ribbon is shown in the figure below:
- The Build button, to be used always before a new or updated code is run
- The Debug button is useful once the project is ready to be deployed on a platform. The debug options can be access via the black arrow on the right of the button.
- External Tools button provides numerous functionalities necessary for prior to flashing and running the project onto a platform. These functionalities can be accessed by pressing the downward facing black arrow on the right of the button, not by pressing the button directly.
Debugging represents the testing of code functionality, detection of unexpected behavior and evaluation of software performances and consistency. The Debug Perspective is oriented to supporting these topics and offers additional windows to explore code, memory, and variables or to evaluate an expression, connect terminal and much more. In this section we provide an overview over the perspective and some of the most common functionalities, for more in details about how to debug on ChibiStudio, please use this article.
The visible windows in the Debug Perspective, as shown in figure 5, are:
- Debug window is where the currently active execution session can be tracked
- The upper right window features multiple tabs, each offering a unique utility for debugging code. Some of the most useful are:
- Variables window shows the variables that are part of the current function.
- Custom expressions can be written and analyzed in the Expressions window
- Breakpoints window shows existing breakpoints in the code
- The registers of the central processing unit (CPU) are shown in the Registers window
- The Text Editor window has the same functionality as in the C/C++ perspective
- Disassembly window provides a more advance utility where one can track in more details the code execution
- Bottom window provides access to additional helpful features. Some of the most useful are:
- The Console view can display either the output of utilities invoked when building a project or the programs’ output when running or debugging.
- One can get access to a terminal via the Terminal window.
- The Problems view has a similar functionality as in the C/C++ Perspective, it shows problems that occur on code execution.
- In the EmbSys Registers window, the peripheral registers are shown. Not to be confused with the registers on the CPU which were addressed earlier.
- The Memory window allows for microcontroller RAM memory exploration.
Ribbon bar – basic buttons
Some of the most used buttons brought forward in the Debug perspective are highlighted in figure 6 and explained below:
- Resume button, resumes the code execution. If it shows in bright green color, then it means the project is not actually running and it needs to be pressed to run the code.
- Pause button, pauses the code execution without breaking the debug session. Resume and Pause are usually used complementary.
- The Stop button terminates the current code execution session, breaking the debug session. Different from the Pause button, which allows for the code to be resumed, the Stop button does not allow this and the code needs to be run again.
- Step buttons are a collection of buttons that allow partial or step by step execution of the code as limited by the breakpoints are placed in the script.
At first launch, ChibiStudio shows a welcome window which can be safely closed. The C/C++ perspective should be the view that becomes visible afterwards and the corresponding windows should be easily identifiable. If using ChibiStudio Preview 20 or higher, the default starting workspace is the user workspace and the project explorer should contain only the two dummy projects representing the documentation and the tools as mentioned in the Project Explorer breakdown earlier on.
From this point on please refer to the How to articles to learn more about managing projects in ChibiStudio.