Первый поднятый проект - RTOS (операционная система реального времени) для микроконтроллеров RISC-V.
Я использую гнушный тулчейн и D с кросскомпиляцией через LDC и запуском на Qemu.
У RISC-V высокая модульность. Но на практике выходит разброс в этих многочисленных расширениях, в одной версии тулчейн компилит с одними расширениями, в других - с другими.
При этом оно может быть 32-битным и 64. Бонусом может быть одноядерным и многоядерным, а какие-то данные могут шариться между ядрами ради удешевления плат.
Например, пишут, что регистры таймеров (mtime, mtimecmp и т.д) 64-разрядные на обоих системах. В этом случае, если 64-й код может записать по выровненному адресу атомарно, то 32 должен писать в два этапа, сначала в одну половину регистра, а потом в другую, между которыми другое ядро технически может увидеть битый регистр. Это требует барьеров памяти и\или какой-то синхронизации, хм...