
SDK Development for RISC-V Semiconductor Company
About the Client
Company’s Request
Technology Set
RISC-V Unprivileged ISA | The set of instructions allows regular applications to run on RISC-V processors without needing advanced permissions. It covers the basic commands needed for everyday software operations. |
RISC-V Privileged ISA | This instruction set includes commands for operating system kernels and other system-level software to manage hardware resources, such as memory and process execution. |
OpenOCD | The debugger. Provides tools for debugging, programming, and testing embedded devices. It helps developers find and fix issues in hardware during development. |
SDK Design | The process of creating a set of development tools that developers use to build applications. It includes libraries, tools, and documentation necessary for software development on specific platforms. |
Vivado Design Suite | This software suite is used for designing systems on FPGA hardware. It includes tools for building, testing, and optimizing digital circuits. |
FreeRTOS for RISC-V | Is an operating system for real-time applications, modified for RISC-V. It supports effective multitasking and is well-suited for embedded devices where resources are limited. |
SoftCPU Testing with FPGA | Involves setting up and evaluating processor designs on FPGA technology. It allows for adjusting and refining processor functionality before final production. |
Keystone Enclave | Provides a secure area within RISC-V processors that keeps sensitive data and operations away from the rest of the system to protect them from unauthorized access. |
QEMU | A machine emulator that mimics the functions of a physical machine, allowing software meant for one type of machine to run on another type. |
BSP | Board Support Packages. Include software and drivers necessary for an operating system to run on a specific hardware board, helping the system to operate correctly. |
Spike | The simulator for RISC-V processors. It allows developers to run and test their applications in a simulated environment without physical RISC-V hardware. |
Verilator | Converts Verilog code to C++ or SystemC, making it possible to simulate digital circuits quickly and test them before physical production. |
Chisel | A hardware design language that enables designers to write high-level code to produce detailed and complex hardware designs efficiently. |
Porting Projects to RISC-V | Adapting existing software to run on RISC-V involves changing the software so it can use the features of RISC-V processors effectively. |
Porting OSes to RISC-V | Modifying operating systems to work on RISC-V processors often involves significant adjustments to take full advantage of the RISC-V architecture. |
Freedom E SDK | A toolkit for developing applications on SiFive’s RISC-V cores, providing developers with compilers, libraries, and hardware abstraction layers. |
Device Driver Development | This process involves creating software that allows operating systems to interact with hardware devices. It ensures that the operating system can effectively manage and use hardware resources. |
Solution
Providing Complete Assistance
The primary focus of our team’s work is to provide comprehensive support for the freeRTOS kernel across a wide array of kernels, which currently number over a hundred. The end user will have the flexibility to utilize it if required. However, the core aspect of Sirin Software’s work lies in delivering the core element known as the SDK. This SDK consists of fundamental programming primitives that simplify the development process for programmers.
Code Maintenance and Dynamic SDK Enhancements
Our team prides itself on upholding the utmost level of program code, guaranteeing complete compatibility and optimization for every core. Furthermore, we consistently integrate cutting-edge features into the SDK as per the demands of our clients.
The Comprehensive SDK for RISC-V Development
The SDK comprises compilers (GCC, clang), debuggers, libc, linker scripts, and project examples for various on-chip peripherals. It supports existing Software Development Kit features and contributes to developing a brand new bare-metal SDK for RISC-V. The new SDK includes caching, prefetching, libc porting, MMU support, a hardware cryptographic acceleration driver, mbedTLS support for RISC-V, and support for the vector extension instruction set.