The OpenHW Group CORE-V IDE: Making It Possible With Eclipse Foundation Development Tools
The OpenHW Group is a non-profit, global organization where industry experts collaborate to develop the CORE-V family of RISC-V-based open source cores and related intellectual property, software, and tools. To work on all of these different aspects, application developers need an integrated frontend. That’s where an IDE comes into play and why the OpenHW Group is developing the CORE-V IDE with Eclipse Foundation development tools.
The OpenHW Group has a close partnership with the Eclipse Foundation. All OpenHW Group projects are hosted at the Eclipse Foundation, and we’re integrating a number of the open source technologies hosted at the Eclipse Foundation into the OpenHW Group CORE-V IDE.
An open source approach to the CORE-V IDE makes sense. Today, open source software is being used across many different technologies. And it's not just about the software. We can see open source benefiting all spheres of life: science, education, government, manufacturing, health, law, and many others. From small startups to large enterprises, companies are choosing open source because it provides high flexibility, lower cost, and greater control. Hardware development is no exception to this trend.
Before I explain how we’re using the open source technologies at the Eclipse Foundation, I want to take a closer look at what we should expect from an IDE.
IDEs Should Be Configurable, Extendable, Scalable
Some people have the opinion that an IDE is not needed at all. If a short list of shell commands works well for your program, I can agree with that belief. However, if your source files grow for any reason, it becomes harder and harder to manage them without a proper IDE. That doesn’t mean the IDE should neglect command-line scenarios. Ideally, all batch operations are available in “headless” mode.
The IDE should be fully configurable and it should help developers focus on the current activity. It should also have enough preferences so developers can pick the right strategy for event and data processing. Here, I could mention artificial intelligence and machine learning, but let’s think about “what” first and select the right “how” later.
The IDE also needs to be extendable. Developers should be able to install support for more hardware, toolchains, debuggers, software development kits (SDKs), and other tools the community can contribute to and vendors can offer. Yes, both free and commercial tools.
Also, we can no longer ignore the scalability problem. Modern systems on a chip (SoCs) bring this challenge, which wasn't typical in the embedded world just a few years ago. Huge headers generated from hardware design and powerful SDKs may exceed all of our expectations about the resources required to parse and represent the compilation unit.
Open Source Projects at the Eclipse Foundation Jump-Start IDE Development
Fortunately, we don’t need to start CORE-V IDE development from scratch because the Eclipse Foundation ecosystem has already developed a lot of the required functionality.
Figure 1 shows the technology components we’ve already integrated in the OpenHW Group CORE-V IDE to establish the starting point of our story, with more to come.
Figure 1: Technology Components in the OpenHW Group CORE-V IDE
The Eclipse Platform project gives us the Open Service Gateway Initiative (OSGi)-based extensible runtime and p2 update engine without binding to a specific language. We can use:
- Workspaces to manage files, folders, and project metadata
- Project Natures and Builders to distinguish and configure content processing
- The Eclipse Standard Widget Toolkit (SWT) and JFace to create reusable user interfaces
- Workbench models to organize activities
- Rich user assistance capabilities such as context-sensitive help, cheat sheets, and more
The Eclipse Modeling Framework (EMF) project is a modeling framework and code generation facility for building tools and other applications based on a structured data model. Everything with a declarative nature can be effectively managed by this technology. It is widely used in the Eclipse Foundation ecosystem, and seems to have great potential to be expanded to more domains.
The Eclipse C/C++ Development Tooling (CDT) project implements the language services for C/C++ projects. We can use this technology to make the leap from a color editor to a fully functional C/C++ IDE that many vendors use as the basis for their products. It is far beyond the scope of this article to enumerate all the Eclipse CDT features, but I do need to mention the extraordinary capabilities for project configuration, rich visualization of debug information, and seamless integration with command line tools.
The Eclipse Embedded CDT project adds numerous out-of-the-box project templates to support different boards, toolchains, and debuggers.
Get Involved in OpenHW Group CORE-V IDE Development
We welcome everyone who wants to participate and help us in our efforts.