отлаживаем эмулятор raspi2

Только технические вопросы по ЯОС и MINOS. Терминология и прочее - в других форумах.
Ответить
БудДен
Сообщения: 2839
Зарегистрирован: 07.10.18 14:01

отлаживаем эмулятор raspi2

Сообщение БудДен » 21.10.22 23:58

Я не могу понять 3 вещи:
* как правильно работать с таймерами в RPi
* какой из таймеров задействован в кооп. версии
* что эмулируется, а что существует только в железе

Поэтому отлаживаем QEMU. Был ряд проблем:
* В VirtualBox Debian Stretch зависал (частично решается установкой xdm, частично - за счёт большего использования клавиатуры, например, иногда мышь отказывается закрывать QEMU, а Alt-F4 вполне работает).
* Не создавался launch.json по кнопке - но через некоторое время создался, видимо, надо было дождаться, пока прочухается

hw/arm/raspi.c - здесь вызывается raspi_machine_init, к-рая настраивает машину RPi, в т.ч. она как-то соединяет GPIO с периферийными устройствами.

hw/intc/bcm2835_ic.c - файл имитирует контроллер прерываний
include/qom/cpu.h - static inline void cpu_interrupt(CPUState *cpu, int mask)
- с первого раза попал в нужное прерывание (после включения таймера), irq = 0, mask = 2 (хотя пока что это всё ещё волшебные числа)


Пока не понимаю, как определять значения регистров - это бы помогло.

Ответить