2020-06-11

RISC-V. Part 1: The Board

1 The Hardware

For years I have heard stories about the legendary open-source RISC-V core. Is it just a toy for geeks locked in the ivory towers? Haven’t we got enough CPU cores already? Don’t they work reliably?

To be honest, it rankled me that I failed to de-activate Intel’s management engine which is most certainly an easier prey for malicious hackers than speculative execution bugs (Meltdown, Spectre).

It’s time to think about a more transparent core design. And that’s, where RISC-V steps in.

Recently I came across a 10 € board.

Debugging the SeeedStudio GD32 RISC-V Dev Board

2 The Course Of Action

2.1 An Overview

Where do we begin? Let’s have a look at a development system for embedded systems.

Developing embedded systems
Developing Embedded Systems

Greyed-out objects are terra incognita that we will have to discover. At this time the only known thing is the PC which should have a recent Linux variant installed. Blog by blog we will see how the objects will be colored.

The objectives of this blog series are to set up a practicable development system and to benchmark RISC-V. Therefore, the implementations of the subsystems will be kept as simple as possible. But still, they will be expandable and an appropriate starting point for production-quality code.

2.2 IDEs

“Stop. Keep it simple!” you might argue. “SeeedStudio delivers not only the board, but it also provides a display and a software example. And Seeedstudio recommends platformIO as an IDE.”

  1. IDEs (Integrated Development Environment) — like platformIO or Eclipse — just run the tools under the hood. Wrapping up stand-alone binaries hardly increases the functionality but add complexity and ruin efficiency.
  2. As we will see, some tools are not mature yet. The documented example (see https://wiki.seeedstudio.com/SeeedStudio-GD32-RISC-V-Dev-Board/#platforms-supported) downloads the binaries via the DFU (Device Firmware Upgrade) interface. However, DFU was never designed for development and does only conceal a flaw in FLASH handling. Common practice today is to use the debug probe for flashing and debugging the application.
  3. Eventually, we need the knowledge for more advanced uses.

No comments:

Post a Comment