В этой категории собраны статьи связанные с процессорной архитектурой RISC-V ISA. Будем запускать микропроцессор RISC-V в плате Марсоход3.

RISC-V для платы Марсоход3bis

m3bis 7seg

Недавно я занимался портированием системы Syntacore RISC-V на плату Марсоход3. В принципе, это было не очень трудно, так как на этой плате используется емкий FPGA чип MAX10 с 50ю тысячами логических элементов. А можно ли запустить хоть какой-то RISC-V на более слабом FPGA чипе? Попробую плату Марсоход3bis. На этой плате, как и на плате Марсоход3, стоит Intel MAX10, но здесь всего 8 тысяч логических элементов. На плате Марсоход3bis стоит микросхема FPGA 10M08SAE144C8. Так получится или нет?

Hello SCR1

 

В этом видео ролике я показываю, как запустить простую RISC-V программу в плате Марсоход3. Программа написана для системы Syntacore RISC-V SCR1.

В оригинальных синтакоровских исходниках есть простой пример sw/hello, но он уж совсем простой и скучный - эта программа запускается и выводит в консоль, через последовательный порт сообщение "Hello SCR1" и все.

Я сделал свою программу helloEx. Она чуть похитрее. Её исходники есть на нашем github в папке sw/helloEx. Дальше расскажу, что делает эта программа и как запускить её в нашей FPGA RISC-V системе.

Портирование RISC-V системы на плату Марсоход3

github screenshot

Итак, портируем RISC-V систему SCR1 от компании Syntacore на плату Марсоход3. Я уже писал, почему я выбрал именно эту систему для изучения в предыдущей статье. Что нужно для запуска этой системы на нашу плату? Посмотрим, что там у них в исходниках на github: https://github.com/syntacore/scr1-sdk

В репозитории есть директории doc, fpga, images, scr1, sw. При этом, директория fpga и scr1 это субмодули git, указывающие на другие репозитории. Внутри папки sw так же есть два субмодуля это папки sc-bl и zephir. Ну что ж, приступим к работе!

Компиляция bootloader для системы Syntacore RISC-V Scr1

gitbash compile

В своей предыдущей статье я обещал, что расскажу, как скомпилировать загрузчик для системы Syntacore RISC-V Scr1 работающей в плате Марсоход3. У нас уже есть все исходники проекта взятые на github. У нас есть и само ядро RISC-V от Syntacore и FPGA обвязка к нему - мы её уже портировали на плату Марсоход3. Есть у нас и некоторые программы для scr1 и в том числе загрузчик. Загрузчик, или bootloader - это первое, что запускается при старте системы. Программная часть проекта scr1-sdk находится в директории sw. Тут есть поддиректории hello, sc-bl, tests, zephyr. Это разные программы, которые работают в scr1. Программа начального загрузчика находится в папке sw/sc-bl. Её и буду компилировать в первую очередь.

Начинаем изучать RISC-V

risc v logo 

Что такое RISC-V?

Многие из нас конечно знают про существование различных процессорных архитектур. Наиболее известные это 32х битные x86 от компании Intel и ARM от ARM Limited. Их развитие со временем привело к 64х битным системам x86-64 AMD, Intel64 от Intel и AARCH64 от ARM. Конечно существуют или существовали и другие процессорные архитектуры такие как Sparc, IA-64, PowerPC, MIPS.

Есть еще одна процессорная архитектура, которая стоит особняком и на которую вероятно стоит обратить внимание это RISC-V. В чем её особенность?