Итак, в настоящее время я использую ядро процессора SiFive soft core на FPGA части Xilinx Zynq UltraScale + MPSo C (Ultra96v2), и я использую sh для отладки ядра с помощью OpenOCD + GDB.
Официальная документация OpenOCD заставляет думать, что файл .cfg для цели / платы должен включать декларацию какого-то типа fla sh bank, который будет передан GDB, позволяя GDB правильно «загружать» программы. Однако FPGA на этом устройстве не имеет локального fla sh (насколько я понимаю, устройство имеет двойные модули QSPI fla sh, но модули находятся на стороне системы обработки (PS), и для доступа к FPGA требуется вид протокола Xilinx c). Таким образом, я хотел бы, чтобы GDB мог загружать мои программы во внутреннюю память программного ядра (область памяти локального хранилища данных или область памяти, тесно интегрированную с инструкциями - я бы предположил, что обе они реализованы на FPGA с использованием блочных ОЗУ).
Как мне go объявить область памяти в файле target / board .cfg OpenOCD, которая соответствует внутренней памяти, которую GDB может интерпретировать и загружать программы?